- Materials necessaris:
- Conceptes de seguidor de línia
- Diagrama del circuit del robot seguidor de la línia Raspberry Pi i explicació:
- Programació del vostre Raspberry PI:
- Seguidor de la línia Raspberry Pi en acció:
Com tots sabem, Raspberry Pi és una meravellosa plataforma de desenvolupament basada en microprocessador ARM. Amb la seva elevada potència computacional i opcions de desenvolupament, pot fer meravelles en mans dels aficionats a l’electrònica o dels estudiants. Per obtenir més informació sobre Raspberry Pi i com funciona, provem de construir un robot Line Follower amb Raspberry Pi.
Si us interessa la robòtica, hauríeu de conèixer molt bé el nom de " Line Follower Robot ". Aquest robot és capaç de seguir una línia, només utilitzant un parell de sensors i motors. Pot ser que no sembli eficient utilitzar un potent microprocessador com Raspberry Pi per construir un robot senzill. Però aquest robot us dóna espai per a un desenvolupament infinit i robots com Kiva (robot de magatzem d’Amazon) en són un exemple. També podeu consultar els nostres altres robots de seguiment de línia:
- Robot de seguiment de línia mitjançant microcontrolador 8051
- Robot de seguiment de línia que utilitza Arduino
Materials necessaris:
- Raspberry Pi 3 (qualsevol model hauria de funcionar)
- Sensor IR (2Nos)
- Motor d'engranatges de CC (2Nos)
- Controlador de motor L293D
- Chaises (També podeu crear-ne de vostres amb cartrons)
- Banc d'alimentació (qualsevol font d'alimentació disponible)
Conceptes de seguidor de línia
Line Follower Robot és capaç de rastrejar una línia amb l'ajut d'un sensor IR. Aquest sensor té un transmissor IR i un receptor IR. El transmissor IR (LED IR) transmet la llum i el receptor (fotodiode) espera que la llum transmesa torni. Una llum IR només tornarà si es reflecteix en una superfície. Tot i que totes les superfícies no reflecteixen una llum IR, només el blanc pot reflectir-les completament i la superfície de color negre les observarà completament, tal com es mostra a la figura següent. Obteniu més informació sobre el mòdul del sensor IR aquí.



Ara utilitzarem dos sensors IR per comprovar si el robot està en pista amb la línia i dos motors per corregir el robot si es mou fora de la pista. Aquests motors requereixen un corrent elevat i han de ser bidireccionals; per tant, fem servir un mòdul de controlador de motor com L293D. També necessitarem un dispositiu computacional com Raspberry Pi per instruir els motors en funció dels valors del sensor IR. A continuació es mostra un diagrama de bloc simplificat del mateix.

Aquests dos sensors IR es col·locaran un a banda i banda de la línia. Si cap dels sensors no detecta cap línia negra, PI indica als motors que avancin tal com es mostra a continuació

Si el sensor esquerre surt en línia negra, el PI indica al robot que giri a l'esquerra girant la roda dreta sola.

Si el sensor dret surt en línia negra, el PI indica al robot que giri a la dreta girant la roda esquerra sola.

Si els dos sensors es posen en línia negra, el robot s’atura.

D'aquesta manera, el robot podrà seguir la línia sense sortir de la pista. Ara vegem com són el circuit i el codi.
Diagrama del circuit del robot seguidor de la línia Raspberry Pi i explicació:
A continuació es mostra el diagrama complet del circuit d’aquest robot seguidor de la línia Raspberry Pi

Com podeu veure, el circuit consisteix en dos sensors IR i un parell de motors connectats al Raspberry pi. El circuit complet està alimentat per un banc de potència mòbil (representat per una bateria AAA al circuit anterior).
Com que els detalls dels pins no s’esmenten al Raspberry Pi, hem de verificar els pins mitjançant la imatge següent

Com es mostra a la imatge, el pin de la cantonada superior esquerra del PI és el pin de + 5V, fem servir aquest pin de + 5V per alimentar els sensors IR com es mostra al diagrama del circuit (cablejat vermell). A continuació, connectem els pins de terra a la terra del sensor IR i del mòdul Motor Driver mitjançant un fil negre. El fil groc s’utilitza per connectar el pin de sortida del sensor 1 i 2 als pins GPIO i 3 respectivament.
Per conduir els motors, necessitem quatre pins (A, B, A, B). Aquests quatre pins estan connectats des de GPIO14,4,17 i 18 respectivament. El cable taronja i el blanc formen la connexió d’un motor. Per tant, tenim dos parells d’aquest tipus per a dos motors.
Els motors estan connectats al mòdul de controlador de motor L293D tal com es mostra a la imatge i el mòdul de controlador està alimentat per un banc de potència. Assegureu-vos que la terra del banc d’alimentació estigui connectada a la terra del Raspberry Pi, només així la vostra connexió funcionarà.
Programació del vostre Raspberry PI:
Un cop hàgiu acabat el muntatge i les connexions, el robot hauria de tenir un aspecte semblant.


Ara és el moment de programar el nostre bot i fer-lo funcionar. El codi complet d’aquest bot es troba a la part inferior d’aquest tutorial. Obteniu més informació sobre Programar i executar codi a Raspberry Pi aquí. A continuació s’expliquen les línies importants
Importarem un fitxer GPIO de la biblioteca, la funció següent ens permet programar pins GPIO de PI. També estem canviant el nom de "GPIO" per "IO", de manera que al programa sempre que vulguem referir-nos als pins GPIO utilitzarem la paraula "IO".
importar RPi.GPIO com a IO
De vegades, quan els pins GPIO, que estem intentant utilitzar, poden estar fent algunes altres funcions. En aquest cas, rebrem avisos mentre executem el programa. L'ordre següent indica al PI que ignori les advertències i que continuï amb el programa.
IO.setwarnings (fals)
Podem referir els pins GPIO de PI, ja sigui pel número de pin a bord o pel seu número de funció. Igual que el "PIN 29" al tauler és "GPIO5". Així doncs, aquí expliquem que aquí representarem el passador per "29" o "5".
IO.setmode (IO.BCM)
Estem configurant 6 pins com a pins d'entrada / sortida. Els dos primers pins són els pins d’entrada per llegir el sensor IR. Els quatre següents són els pins de sortida dels quals els dos primers s’utilitzen per controlar el motor dret i els dos següents per al motor esquerre.
IO.setup (2, IO.IN) #GPIO 2 -> Esquerra IR fora IO.setup (3, IO.IN) #GPIO 3 -> IR dreta IO.setup (4, IO.OUT) #GPIO 4 - > Motor 1 terminal A IO.setup (14, IO.OUT) #GPIO 14 -> Motor 1 terminal B IO.setup (17, IO.OUT) #GPIO 17 -> Motor Left terminal A IO.setup (18, IO.OUT) #GPIO 18 -> Motor Terminal B esquerre
El sensor IR emet "True" si es troba sobre una superfície blanca. Així, sempre que el sensor digui “True”, podem avançar.
if (IO.input (2) == True i IO.input (3) == True): #tant els blancs avancen IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, cert) # 2A + IO. sortida (18, fals) # 2B-
Hem de fer un gir a la dreta si el primer sensor IR arriba per sobre d’una línia negra. Això es fa llegint el sensor IR i, si es compleix la condició, aturem el motor dret i girem el motor esquerre sol com es mostra al codi següent
elif (IO.input (2) == False i IO.input (3) == True): #turn right IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, cert) # 2A + IO.output (18, fals) # 2B-
Hem de fer un gir a l’esquerra si el segon sensor IR arriba per sobre d’una línia negra. Això es fa llegint el sensor IR i, si es compleix la condició, aturem el motor esquerre i girem el motor dret sol, tal com es mostra al codi següent
elif (IO.input (2) == True i IO.input (3) == False): #turn left IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, cert) # 2A + IO.output (18, cert) # 2B-
Si tant el sensor arriba per sobre d’una línia negra, significa que el robot s’ha d’aturar. Això es pot fer fent que els dos terminals del motor siguin certs tal com es mostra al codi següent
else: #stay still IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
Seguidor de la línia Raspberry Pi en acció:
Pengeu el codi python del seguidor de línia al vostre Raspberry Pi i executeu-lo. Necessitem una font d'alimentació portàtil, en aquest cas un banc d'energia es fa útil, per tant, he utilitzat el mateix. El que faig servir inclou dos ports USB, de manera que he utilitzat per alimentar el PI i un altre per alimentar el controlador del motor, tal com es mostra a la imatge següent.

Ara tot el que heu de fer és configurar la vostra pròpia pista de color negre i deixar anar el bot al damunt. He utilitzat una cinta d'aïllament de color negre per crear la pista que podeu utilitzar amb qualsevol material de color negre, però assegureu-vos que el vostre color de terra no sigui fosc.

El funcionament complet del robot es pot trobar al vídeo que es mostra a continuació. Espero que hagueu entès el projecte i us hagi agradat construir-ne un. Si teniu alguna pregunta, publiqueu-los a la secció de comentaris de sota.
