- Materials necessaris:
- Conceptes de seguidor de línia
- Diagrama del circuit i explicació:
- Programació del microcontrolador PIC:
- Seguidor de la línia PIC en acció:
Un robot Line Follower és un robot senzill però fascinant per a la majoria dels estudiants / aficionats. En aquest tutorial aprendrem com funciona un robot de seguiment de línia i com podem construir-ne un mitjançant el microcontrolador PIC PIC16F877A. PIC16F877A és un MCU polivalent de 40 pins de Microchip, hem utilitzat aquest CI a la nostra sèrie completa de tutorials PIC. Si sou nou, aquí és possible que vulgueu fer una ullada a aquests tutorials PIC per conèixer els conceptes bàsics d’aquest IC i com penjar programes al microcontrolador. Com que ja hem cobert aquesta informació als nostres tutorials, les ometrem a l'explicació següent.
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. 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
- Robot de seguiment de línia amb Raspberry Pi
Materials necessaris:
- PIC16F877A
- 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 microcontrolador com PIC 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, el microcontrolador PIC indica als motors que avancin com es mostra a continuació.

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

Si el sensor dret surt en línia negra, el microcontrolador 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 i explicació:
A continuació es mostra el diagrama complet del circuit d’aquest robot de seguiment de línia basat en PIC

El circuit utilitza dos sensors IR i un parell de motors d'engranatges de corrent continu juntament amb un mòdul de controlador de motor, tal com es mostra més amunt. El mòdul de controlador de motor utilitzat en aquest projecte és L293D, necessitarem un controlador de motor perquè el pin de sortida del microcontrolador PIC no pot generar prou corrent perquè els motors funcionin. Aquest mòdul s'alimentarà directament de la font d'alimentació (5V) tal com es mostra al circuit. El mòdul té quatre pins (dos per a cada motor) que es connecten al PIC per controlar la direcció dels motors. També tenim dos sensors IR que actuen com a entrada al microcontrolador PIC. Aquests sensors augmentaran (1) si estan sobre una superfície blanca i baixaran (0) quan superen una superfície negra. Les connexions de pin completes es mostren a la taula següent.
|
S.No |
Connectat des de |
Connectat a |
|
1 |
Sensor IR Pin deixat fora |
RD2 (pin 21) |
|
2 |
Sensor IR Pin fora |
RD3 (pin 22) |
|
4 |
Motor 1 canal A. Pin |
RC4 (pin 23) |
|
5 |
Motor 1 canal B. pin |
RC5 (pin 25) |
|
6 |
Motor 2 canals A |
RC6 (pin 26) |
|
7 |
Motor 2 canals B. pin |
RC7 (pin 27) |
Al maquinari real he utilitzat un banc de potència que donarà una sortida de + 5 V directament a través del seu port USB; per tant, he passat per alt el regulador de voltatge 7805 i he alimentat el PIC, els sensors i els motors utilitzant el mateix. Podeu fer el mateix fent servir una bateria de 12V juntament amb un regulador com es mostra al circuit.


Programació del microcontrolador PIC:
Un cop estigueu llest amb el vostre maquinari, és hora de començar a programar. El programa complet d’aquest projecte de robot de seguiment de la línia PIC es dóna al final d’aquesta pàgina. No obstant això, els trossos importants s’expliquen a continuació.
Inicialitzeu els pins d'E / S per les línies següents. Els 2 pins del sensor IR actuen com a entrada i els quatre pins del motor actuen com a pins de sortida.
TRISD2 = 1; TRISD3 = 1; // Al bany, els pins del sensor IR es declaren com a entrada TRISC4 = 0; TRISC5 = 0; // Motor 1 pins declarat com a sortida TRISC6 = 0; TRISC7 = 0; // Motor 2 pins declarats com a sortida
Ara, hem de llegir l’estat del sensor IR i controlar el motor en conseqüència. Per exemple, si els dos sensors són alts (no entra sota la línia negra), fem moure els dos motors cap endavant tal com es mostra al programa següent.
if (RD2 == 1 && RD3 == 1) // Ambdós sensors no superen la línia de negre {RC4 = 0; RC5 = 1; // Motor 1 cap endavant RC6 = 1; RC7 = 0; // Motor 2 cap endavant}
Si el sensor esquerre passa per sobre de la línia negra , fem un gir a la dreta mantenint el motor 1 quiet i girant el motor 2 en direcció endavant. Aquest tipus de tornejat s’anomena gir diferencial.
else if (RD2 == 0 && RD3 == 1) // El sensor esquerre està sobre la línia negra {RC4 = 1; RC5 = 1; // Parada 1 del motor RC6 = 1; RC7 = 0; // Motor 2 cap endavant}
De la mateixa manera, si el sensor dret passa per sobre de la línia negra , el bot es fa girar a l'esquerra mantenint el segon motor quiet i girant el primer motor sol en direcció endavant, tal com es mostra a continuació.
en cas contrari, si (RD2 == 1 && RD3 == 0) // El sensor dret està sobre la línia negra {RC4 = 0; RC5 = 1; // Motor 1 cap endavant RC6 = 1; RC7 = 1; // Parada del motor 2}
Finalment, si tots dos sensors es troben sota una línia negra, és hora de parar el bot. Això es pot fer elevant tots els passadors dels dos motors. A continuació es mostra el codi per fer el mateix
else // Ambdós sensor sobre la línia negra {RC4 = 1; RC5 = 1; // Parada 1 del motor RC6 = 1; RC7 = 1; // Parada del motor 2}
És a dir, el programa està llest i es pot penjar al PIC mitjançant qualsevol programador com PicKit.
Seguidor de la línia PIC en acció:
Un cop el maquinari i el codi estiguin preparats, és hora de fer alguna acció. Com he dit anteriorment, he utilitzat un banc de potència per alimentar el bot, així que només he de connectar el banc de potència al bot que té el maquinari configurat i el codi ja carregat.
La placa PIC Perf va ser creada per a la nostra sèrie de tutorials PIC, en què vam aprendre a utilitzar el microcontrolador PIC. És possible que vulgueu tornar a aquests tutorials PIC Microcontroller amb MPLABX i XC8 si no sabeu com gravar un programa amb Pickit 3, ja que saltaré tota aquesta informació bàsica.

Ara, simplement llança el bot sobre una línia negra i hauries de mirar-lo seguint la línia.
És possible que tingueu dificultats al principi, en aquest cas llegiu més endavant. Si les rodes giren en sentit oposat, simplement intercanvieu la polaritat del motor que gira en sentit contrari. Si el bot es desvia de la línia, intercanvieu el sensor IR i tot hauria de ser bo.
El funcionament complet del robot es pot trobar al vídeo que es mostra a continuació. Espero que us agradi el projecte i us hagi agradat construir quelcom similar. Si teniu problemes per aconseguir que això funcioni, podeu publicar-los a la secció de comentaris següent per resoldre-ho o utilitzar els nostres fòrums per debatre continguts tècnics.
