Ce este un line follower?
Un line follower este o masina care poate urmari un drum. Drumul este vizibil ca o linie neagra pe o suprafata alba sau invers.
De ce sa construim un robot line follower?
Sa “simta” linia, sa manevrezi robotul sa stea pe traseu si sa creezi cod pentru acest lucru ni s-a parut o provocare. Este primul pas in crearea unei inteligente artificiale si proiectul perfect pentru a invata.
Aplicatii practice: il putem folosi ulterior sa faca lucruri mai complicate cum ar fi masinile viitorului care vor invata un traseu(ex: casa-scoala) si il vor urma fara sa fie nevoie de interactiune umana.
Robotul va fi coordonat de microcontrolerul ATMega 16 la care se va conecta puntea H si linia de senzori. Linia de senzori va fi legata la un convertor care va trimite semnale digitale pinilor de la microcontroler.
Cum functioneaza?
Microcontrolerul va fi alimetat de 6 baterii de 1.5V adica 9V in total.Pentru a evita arderea placutei il vom conecta la stabilizatorul de tensiune. Din placuta vom alimenta si linia de senzori iar motoarele vor fi alimentate separat la 6V.
Puntea va controla cele 2 motoare.
Am conectat pinii 2,7,10,15 pe portul D al microcontrolerului iar pinii 3,6 la motorul fata respectiv 11,14 motorul spate. Pinii de enable 1,9 impreuna cu vs(pinul 8) si vss(pinul 16) i-am conectat la VCC. Pinii de ground sunt conectati la masa. Pentru alimentarea motoarelor folosim 4 baterii de 1.5V. Motoarele se alimenteaza separat de placuta si senzori.
Linia de senzori a fost facuta folosind 4 diode IR si 4 fototranzistori, un potentiometru pentru setarea unei tensiuni de referinta si un comparator LM324. Fiecare senzor a fost conectat astfel:
Fototranzistorul are emitatorul legat la ground impreuna cu catodul diodei. La colectorul fototranzistorlui am conectat o rezistenta de 10KΩ iar la anodul diodei o rezistenta de 330Ω. Acestea se leaga pe pinii comparatorului.
Pentru a distinge intre cele 2 culori, alb negru am folosit un potentiometru pentru a seta tensiunea de referinta. Fototranzistorul emite o tensiune de sub 2V pe alb si >4V pe negru. Aceste rezultate sunt trimise comparatorului care trimite o valoare digitala microcontrolerului(pe portul A).Am ales aceasta varianta cu diode si fototranzistori in locul uneia cu senzori gata cumparati in scop financiar si pentru ca ne-a placut provocarea.
Trebuie mentionat ca linia de senzori trebuie ferita de lumina exterioara astfel se evita erorile.Am folosit o improvizatie: banda izoliera neagra, care nu lasa lumina din jur sa patrunda la dioda sau fototranzistor ele fiind orientate in jos. In functie de valoarea senzorilor motoarele se misca astfel:
Pentru implementarea codului am folosit AVR Studio. Ca si la laborator am redenumit pinii pe care sunt conectati senzorii si puntea H.Codul este simplu si in functie de datele primite de la senzori microcontrolerul trimite puntii H decizia. Am setat portul A de intrare(DDRA=0x00) iar portul D ca iesire DDRD=0xFF (conectat la motoare). Am folosit operatii simple pe biti.
Codul il puteti gasi la sectiunea de download.
Am reusit sa facem o masina functionala, linia de senzori sa detecteze cele doua culori. Din pacate nu am reusit sa racim puntea H mai mult masinuta fiind capabila sa functioneze doar 30 de secunde inainte sa fie nevoie sa o oprim pentru a nu arde puntea H.
In urma realizari proiectului am aflat cum sa alimentam placuta la un voltaj mai mare de 5V, cum putem sa ardem 2 microcontrolere in aceeasi zi nepunand alimentarea unde trebuie, cum sa reducem sensibilitatea liniei de senzori si ca ar trebui sa folosim baterii de calitate din prima pentru ca se vor consuma repede. Bateriile de 9V nu au putere sa alimenteze motoarele dar 4 baterii de 1.5 pot.