Un Line Follower este o masina autonoma care este capabila sa urmareasca o linie deseneta pe un fundal de o culoare diferita.
Schema bloc hardware
Masina foloseste senzori de lumina pentru a detecta linia.
Cand robotul incepe sa paraseasca linia, senzorii aditionali vor detecta negru.
In acest moment microcontroller-ul va comanda motoarele astfel incat robotul sa revina pe linie
Robotul foloseste senzori de lumina pentru a se ghida pe traseu. Un senzor este compus dintr-un LED cu infrarosu (emitator) si un fototranzistor cu infrarosu (receptor). Acestea functioneaza dupa urmatorul principiu:
Schema electrica senzor:
Pe o suprafata alba lumina reflectata este suficienta pentru a deschide fototranzistorul. Acesta se satureaza si tensiunea VOUT va fi undeva in jurul 0,4V.
Pe o suprafata neagra fototranzistorul este blocat (sau deschis in regiunea activa, departe de saturatie), iar VOUT va fi aproximativ 2-3V.
Schema placa:
Outputul senzorilor de lumina sunt citite cu ADC-ul.
Implementarea algoritmului este una simpla, folosindu-ne de senzorii plasati pe masinuta, aceasta se va incadra astfel incat sa urmareasca linia. Daca unu din senzorii de pe extremitati detecteaza alta culoare, robotul se va intoarce putin pe partea in care e senzorul. Astfel el va ramane tot timpul pe linie. Acesti pasi se efectueaza intr-o bucla inifinta.
while (1){ #ifdef debug if(rep<255) rep++; if(prev!=PINA) { prev=PINA; printf("%u\r",rep); for(i=0;i<8;i++) printf("%u\t",(prev>>i)&0x01); rep=0; } #endif if(PINA!=255){ rotpow=255; ldev=rdev=0; if(PINA.3==0) rdev=1; if(PINA.2==0) rdev=2; if(PINA.1==0) rdev=3; if(PINA.0==0) rdev=4; if(PINA.4==0) ldev=1; if(PINA.5==0) ldev=2; if(PINA.6==0) ldev=3; if(PINA.7==0) ldev=4; if(rdev>ldev) move(R,0,195+12*rdev); if(rdev<ldev) move(L,0,195+12*ldev); if(rdev==ldev) move(FWD,0,200); } else { for(i=0,dirl=0;i<MAX;i++) { if(history[i]==L) {dirl++;} } if(rotpow<160) {rotpow=160;} if(rotpow<255) {rotpow++;} if(dirl>HMAX) {move(CW,0,rotpow);} else {move(CCW,0,rotpow);} } }; }
Mai exista si alte functii de miscare.
In curand…
Partea hardware a fost cea mai grea de facut, dar cu experianta dobandita la laboratoarele de PM a trecut cu bine :)