Autorul poate fi contactat la adresa: Login pentru adresa
Acest proiect consta in constructia si programarea unui robot de tip line follower. Scopul acestui robot este de a urmari o linie neagra pe un fundal alb. Am descoperit acest proiect uitandu-ne printre proiectele colegilor nostri din anii trecuti, si l-am gasit ca fiind foarte interesat. Cum nu am mai lucrat cu asa ceva pana acum, el reprezinta pentru noi o introducere in lucrul cu roboti autonomi.
Senzorii infrarosu trimit catre microcontroller informatii referitoare la suprafata scanata. Microcontroller-ul proceseaza aceste informatii si ia decizii pe baza lor. El trimite comenzi driver-ului de motoare. In functie de comenzile primite driver-ul trimite input la motoare pentru a le controla.
Lista de piese:
Nume | Cantitate |
---|---|
ATMEGA324PA-PU | 1 |
Condensator neelectrolitic 15 pF | 2 |
LED 3mm Rosu | 2 |
K2X10 2×10 | 1 |
K1X10 WSL040 1×40 | 1 |
Rezistenta 10K | 1 |
Rezistenta 1K | 2 |
Rezistenta 100 | 3 |
Rezistenta 2.2K | 1 |
PUSHBUTTON | 2 |
Soclu Microcontroller | 1 |
Conector USB B Cvilux | 1 |
Dioda Zener | 2 |
Condensatoare 100nF | 3 |
Jumper | 1 |
TO-220 | 1 |
Condensator electrolitic 25V | 1 |
Condensator neelectrolitic 100 nF | 3 |
Kit FlexyBot | 1 |
Bara sezori infrarosu | 1 |
Driver L298N | 1 |
Diode | 8 |
Placa de test | 1 |
Folosim PWM pe porturile PD5, PD4 pentru a controla cele 2 motoare, prin OCR1A si OCR1B. Pentru citirea datelor de la senzori folosim ADC pe porturile PA0-PA7 ale microcontroller-ului.
Algoritmul functioneaza in felul urmator: Fiecarei valori intoarsa de senzor i-am asociat o pondere: -1 pentru cei 4 senzori din stanga si 1 pentru cei 4 senzori din dreapta. In functie de inputul de la senzori care depaseste valoarea de prag 340, determinam care dintre ei se afla pe linia neagra. Facem suma ponderilor senzorilor care se afla pe linia neagra si: daca suma e pozitiva robotul se misca spre dreapta, daca e negativa se misca spre stanga, si daca e egala cu 0 se misca inainte.
In plus, daca robotul nu detecteaza deloc linia neagra merge spre directia in care se indrepta cand a vazut ultima oara linia.
Am reusit sa facem un robot functional care urmareste o line neagra.Din pacate, din lipsa de timp nu am apucat sa implementam un algoritm mai complex.
Am testat pe doua trasee din laborator:
https://www.youtube.com/watch?v=WeQbIUIJNoc
https://www.youtube.com/watch?v=Fm7Jbe2kZ80
A fost un proiect foarte interesant si foarte amuzant in acelasi timp.Cea mai grea parte a fost realizare hardware-ului ,in special driver-ul pentru motoare la care am muncit destul de mult.Am ales sa construim noi driver-ul de motoare deoarece uitandu-ne pe proiectele din anii trecuti am aflat ca un driver custom made se comporta mai bine decat alternativa, adica un driver gata facut.
Arhiva cu sursa+makefile → wobbly.zip