- Concepte de robot Line Follower
- Components necessaris
- Esquema de connexions
- Programació Atmega16 per al robot Line Follower
Aquí construirem un altre projecte amb el microcontrolador AVR Atmega16. Si no coneixeu els microcontroladors AVR, podeu referir-vos a tutorials i projectes AVR anteriors.
Construir un robot sempre és una emoció per a tots els aficionats a l’electrònica. I aquesta emoció es pot maximitzar si el robot pot fer algunes coses automàticament sense instruccions externes. Un dels robots més construïts pels principiants en electrònica és Line Follower Robot. Com el seu nom indica, el robot seguirà la línia traçada a la superfície. La línia no ha de ser necessàriament una línia recta. A més, les línies poden ser de qualsevol color.
Anteriorment, vam crear projectes de Line Follower Robot mitjançant diferents controladors:
- Robot de seguiment de línia mitjançant microcontrolador 8051
- Robot de seguiment de línia mitjançant microcontrolador PIC
- Robot de seguiment de línia que utilitza Arduino
- Robot de seguiment de línia amb Raspberry Pi
- Robot de seguiment de línia mitjançant MSP430 Launchpad
Avui utilitzarem el microcontrolador AVR per construir un robot seguidor de línia.
Sobretot els sensors IR s’utilitzen per detectar línies. Els sensors IR són bons per detectar superfícies blanques o negres. Tot i que podeu utilitzar altres sensors sofisticats que siguin capaços de detectar tots els colors i puguin fabricar un robot que pugui seguir totes les línies de colors. El robot hauria de ser capaç de detectar la línia, fins i tot si el camí s’altera canviant l’angle i seguir seguint la línia. A més, hauria d’aturar-se allà on aparegui la zona d’aturada a la línia.
Els robots seguidors de línia s’utilitzen àmpliament ara fa dies en indústries manufactureres, aplicacions mèdiques, domèstiques i magatzems de mercaderies. Els robots no es limiten només a aquestes aplicacions i poden ampliar les seves aplicacions en moltes aplicacions futures.
Concepte de robot Line Follower
Els sensors IR són el protagonista en aquest projecte. Els sensors IR es col·loquen a la part frontal del robot per rastrejar la línia negra dibuixada i la superfície. El robot es col·loca entre la línia i amb l'ajut de sensors IR el robot fa un seguiment de la línia. Els sensors IR transmeten la lectura al microcontrolador i, amb l’ajuda de la lectura IR, el microcontrolador mou els motors cap a l’esquerra o cap a la dreta i torna a portar el robot al camí.
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 ATmega16 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 AVR 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.
Components necessaris
- Motors d'engranatges de CC (2 unitats)
- Mòdul de sensor IR (2 unitats)
- Mòdul L293D
- Font d'alimentació sense fils (per exemple, bateria, banc d'alimentació)
- Robots Chaises
- CI de microcontrolador Atmega16
- Oscil·lador de vidre de 16 MHz
- Dos condensadors 100nF
- Dos condensadors de 22pF
- Polsador
- Jumper Wires
- Taula de pa
- USBASP v2.0 (per programar Atmega16)
Esquema de connexions
Connecteu tots els components tal com es mostra a continuació al diagrama del circuit

Programació Atmega16 per al robot Line Follower
Aquí l'Atmega16 es programa mitjançant USBASP i Atmel Studio7.0. Si no sabeu com es pot programar Atmega16 mitjançant USBASP, visiteu l'enllaç. El programa complet es dóna al final del projecte, només cal que pengeu el programa a Atmega16 mitjançant el programador JTAG i Atmel Studio 7.0, tal com s’explica al tutorial anterior.
Hem intentat que el codi sigui el més breu i senzill possible. Per tant, utilitzem registres de funcions Macros i especials en aquest codi.
if (bit_is_clear (PINA , leftSen)) { // comproveu si el sensor esquerre està DESACTIVAT
Aquesta afirmació comprova si el PA0 on està connectat el sensor esquerre és BAIX o ALT.
Si voleu obtenir més informació sobre aquesta afirmació i altres macros, aneu a aquest enllaç
Hi ha quatre condicions que seguim per llegir a través de sensors IR. Els sensors IR es denominen segons la seva ubicació a la part frontal del robot. El IR esquerre és el sensor esquerre i el IR dret és el sensor dret. Les següents condicions determinaran el moviment del robot.

Hem escrit el codi segons les condicions anteriors. L'únic canvi és que només estem utilitzant dos pins d'entrada del L293D per accionar els dos motors.
A continuació es mostra el codi complet amb un vídeo de demostració.
