Line Follower

Introducere

Un robot line follower este o mașină autonomă ce poate urmări o anumită traiectorie reprezentată printr-o linie neagră, de aproximativ 2 centimetri lățime, pe un fundal alb.

Descriere generală

Roboțelul este construit din 3 module:

  • Plăcuța de bază cu microcontrolerul ATMega16 (etapa I proiect PM);
  • Modulul de detecție a liniei, format din 3 senzori;
  • Modulul de mișcare a mașinuței, format din driver-ul integrat L298N și două motoare.

Robotul va fi coordonat de microcontrolerul ATMega16 la care vor fi conectați cei 3 senzori și driver-ul care comandă cele două motoare.

Algoritmul după care este ghidată mașina este următorul:

  • dacă senzorul din mijloc detectează negru, atunci mașina va merge înainte;
  • dacă un senzor lateral detectează negru, atunci mașina va vira în direcția corespunzătoare;
  • dacă toți senzorii detectează alb, atunci mașinuța va vira sau va merge înainte conform comenzii precedente;
  • dacă toți senzorii detectează negru, mașina se va opri.

Hardware Design

Componente:

  • Plăcuța etapa I PM;
  • Kit Robot-Broască, care conține șasiu, două motoare și 3 roți dintre care două sunt legate la motoare;
  • 3 senzori home-made, realizați din diode care emit infraroșu și fototranzitori;
  • driver-ul L298N care comandă cele două motoare (puntea H).
Kit Robot

Senzori

Robotul folosește senzorii de contrast pentru a se ghida pe traseu. Un senzor este compus dintr-un LED cu infraroșu (emițător) și un fototranzistor pentru infraroșu (receptor).

Senzorii funcționează după următorul principiu:

  • Pe o suprafață albă lumina reflectată este suficientă pentru a deschide fototranzistorul. Acesta se saturează și tensiunea la ieșire va fi undeva în jurul 0,4V.
  • Pe o suprafață neagră, lumina va fi absornită iar fototranzistorul va blocat, tensiunea de iesire fiind de aproximativ 2-3V.
L298N

Pentru controlul motorului am folosit driverul integrat L298N. Intrările ENABLE_A și ENABLE_B ale driverului sunt conectate pe ieșirile de PWM ale microncotroller-ului. Astfel se poate seta din program turația motoarelor.

Alimentare

Alimentarea se realizează cu ajutorul unei baterii de 9V pentru placa de bază (stabilizatorul de tensiune asigurand tensiunea corespunzătoare, de 5V pentru microcontroler) și cu ajutorul a 3 baterii de 1,5V pentru motoare. Mașinuța mai dispune de un buton pentru pornirea și oprirea alimentării.

Schema Hardware

Software Design

Mediul de dezvoltare folosit a fost AVR Studio. Pentru încarcarea programului pe placuță am folosit avrusbboot.

Algoritmul de funcționare al robotului este unul simplu:

  • se inițializează modulele adc și pwm;
  • într-o buclă infinită se verifică valorile obținute de la cei trei senzori și în funcție de acestea se stabilește sensul de funcționare a celor două motoare. De exemplu, pentru a vira la stânga, motorul din stânga va merge înapoi, iar cel din dreapta înainte;
  • dacă toți cei 3 senzori sunt pe alb se va retransmite comanda anterioară;
  • robotul se va opri daca va ajunge cu toți cei 3 senzori pe negru.

Pentru a controla motoarele am folosit fast PWM cu prescaler 1024 , non-inverting mode.

Rezultate Obţinute

Robotul reușește de cele mai multe ori să urmeze linia, având uneori probleme la virajele strâmte. O altă problema a mașinuței pare să fie lumina prea puternică. Deși senzorii sunt teoretic de infraroșu, lumina înfluențează valorile pe care aceștia le recepționează.

Concluzii

Proiectul a fost unul interesant. Am avut ceva probleme cu realizarea senzorilor, dar până la urmă au ieșit. Totuși, credem că senzorii “de cumpărat” ar fi fost ceva mai preciși și mai eficienți. Implementarea software nu a ridicat probleme deoarece ne-au ajutat laboratoarele și algoritmul nu a fost deloc complicat.

Download

Bibliografie/Resurse

pm/prj2012/pbara/uber_line_follower.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0