Table of Contents

Mihail-Lucian OANCEA, Ana-Maria BALABAN - Line Follower

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

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.

Descriere generală

untitled_diagram.jpg

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.

Hardware Design

Scheme:
driver.jpg
schema_mare.jpg

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

Software Design

  • Programmer's Notepad
  • WinAVR

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.

Rezultate Obţinute

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

Concluzii

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.

Download

Arhiva cu sursa+makefile → wobbly.zip

Jurnal

Poze parcurs:
placa_senzor.jpg
driver_spate.jpg
driver_fata.jpg

Bibliografie/Resurse