Iulian-Marian BARBU (78306) - Line Follower Robot

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

  • Scopul proiectului este de a realiza un Line Follower.
  • Line Follower este un robot autonom care urmărește o linie neagră delimitată de linii albe, sau o linie albă delimitată de linii negre. Robotul trebuie să detecteze liniile centrale și să poată să le urmărească pe parcursul mișcării.
  • Utilitatea proiectului la aceasta scară nu este semnificativă, însă la scara mare, conceptele de mașini autonome urmează un principiu asemănător, unde informațiile de la diverși senzori sunt folosite pentru ca mașina să se deplaseze în siguranță, pe un traseu, spre o anumită locație.

Descriere generală

  • Următoarea schemă bloc specifică care vor fi componentele principale ale robotului:

Hardware Design

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

Schema electrica pe care o voi implementa este urmatoarea:

Software Design

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:

  • Daca output C este LOW actionez ambele motoare intrucat sunt centrat oarecum pe banda neagra.
  • Daca output-urile L si C sunt HIGH, actionez motorul pentru roata stanga si il opresc pe cel pentru roata dreapta, intrucat senzorul L a iesit de pe banda neagra, iar masina trebuie indreptata.
  • Daca output-urile R si C sunt HIGH, asemanator cu cazul 2, se actioneaza motorul pentru roata dreapta, iar cel pentru roata stanga este oprit.

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

Rezultate Obţinute

Concluzii

Proiectul a fost o experienta interesanta. Poate fi imbunatatit la capitolul impachetare.

Download

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

Bibliografie/Resurse

pm/prj2018/astratulat/lfbim_332cc.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