LineFollower
Introducere
Descriere generală
Este construit din mai multe module:
Schema bloc:
Mod de functionare:
Fiind vorba de 8 senzori, acestia sunt impartiti 4 (L) - 4 (R). Daca numarul celor care vad linia neagra din partea stanga este egal cu al celor din dreapta, ambele roti vor fi comandate sa mearga in fata. In cazul in care diferenta este diferita de 0, o roata va merge in spate, iar alta in fata, determinand robotul sa vireze.
Pentru alimentare am folosit o baterie de 9V ce alimenteaza placuta prin stabilizatorul de tensiune; driverul primeste VSS de la unul din pinii de VCC ai placutei si VS (power supply) de la 4 baterii de 1.5V (motivul pentru care nu am alimentat de la aceeasi baterie si driverul si placuta a fost acela ca motoarele s-ar fi ars la o tensiune de 9V)
Hardware Design
Lista de piese:
Schema electrica:
Pinii 6 si 11 (EN A, EN B) se leaga la pinii PD4 si PD5 de pe microcontroler (OC1A si OC1B) pentru a putea fi controlati prin PWM (vezi schema de mai jos)
Tensiunea VSS a driverului este adusa de la placuta de baza (5V) (pinul 9 din schema)
Tensiunea VS (power supply pentru motoare) este _neaparat_ adusa dintr-o sursa externa
Deasemenea trebuie avut grija ca masa pentru driver sa fie aceeasi ca masa pentru placuta de baza
Pinii de input de pe driver sunt legati la PORT C de pe microcontroler
Pinul 8 al driverului lipseste din schema (este GND)
Senzorii:
Avantajul acestor senzori este ca au iesire digitala, astfel nu este nevoie de folosirea convertorului ADC
Sunt legati la PORT A pe microcontroler
Software Design
Mediul de dezvoltare folosit este AVR Studio
Algoritmul folosit este relativ simplu si intuitiv: intr-o bucla infinita, in functie de outputul senzorilor sunt comandate cele doua motoare prin intermediul driverului; pentru detalii de implementare vezi sursele atasate in arhiva
Rezultate Obţinute
De la ce am inceput
Si unde am ajuns
watch
( Observatie: in film alimentarea este facuta de la priza cu un adaptor pe 16V, deoarece nu am avut baterie de 9V )
Concluzii
M-am apucat destul de (foarte) tarziu de acest proiect, motiv pentru care am apelat la componente mai scumpe (vezi senzorii…exista si varianta mai ieftina, aceea de a-i construi)
Chiar daca a fost un proiect mai greu si se putea lucra in doi la el, am ales sa il fac singur pentru a nu exista cearta de dupa “cui ramane”
Pentru cei ce se tin de treaba, nu ar trebui sa dureze mai mult de 3-4 zile de lucrat (lipit, testat, codat), insa trebuie acordat putin timp si pentru documentare (datasheet, tutoriale, proiecte facute de altii)
Pentru alte intrebari, detalii : horatiu.popescu@cti.pub.ro
Download
Arhiva cu codul c si makefile-ul corespunzator:
lf_code.zip
Bibliografie/Resurse