Autorul poate fi contactat la adresa: Login pentru adresa
Piesă | Cantitate |
---|---|
Placa de baza | 1 |
Componente obligatorii | 1 |
Roata cauciuc | 2 |
DC motor | 2 |
Modul senzori urmarit linie | 1 |
Punte H | 1 |
Sasiu | 1 |
Design-ul software este modest. Acesta se bazeaza pe natura ultra aplicativa a modulului line tracer FunDuino, pe care l-am folosit. Acest line tracer module imi ofera trei output-uri, L(eft), R(ight), C(enter), output-uri care atunci cand sunt LOW, detecteaza banda neagra, iar atunci cand sunt HIGH, detecteaza iesirea senzorului corespunzator in afara perimetrului benzii negre.
Astfel, logica care ruleaza pe microcontrollerul ATmega actioneaza motoarele in diferite situatii:
Aceasta logica simpla nu este de ajuns, intrucat masina poate iesi cu modulul line trace de pe banda, iar toate output-urile sa fie HIGH.
In aceasta situatie, algoritmul va redresa masina in directia acelui senzor care a fost pus pe HIGH ultimul. Spre exemplu, daca masina iese de pe banda, mai intai cu senzorul R, dupa cu C, si in final cu L, va fi actionat motorul opus, adica cel drept pentru a aduce masina din nou deasupra benzii negre.
Masina a fost testata si se poate observa in videoclipul de alaturi ca urmareste un traseu curbat. watch
Proiectul a fost o experienta interesanta. Poate fi imbunatatit la capitolul impachetare.
Pentru compilarea codului am folosit avr-libc si avr-gcc, pe Debian 9 Stretch. Ca sa urc pe placa cod, am folosit bootloadHID pus la dispozitie de echipa PM.
Arhiva cu codul si Makefile se gaseste la linkul de alaturi. linefollower_barbuiulianmarian332cc.zip