Maria-Cristina BUCUR , Constantin-Razvan CHIVU - Line follower

Autorul poate fi contactat la adresa: Login pentru adresa

si Login pentru adresa

Introducere

Line follower basic : urmareste o linie (neagra) , un traseu .

Descriere generală

Schema bloc simpla : avem microcontrollerul care comunica cu senzorii si driverul pentru motor

Idee :

Microcontroller-ul va lua informatiile de la senzori , va aplica un algoritm pentru a urmarii linia si in functie de aceasta decizie, va comunica cu driver-ul pentru motoare, inaintand / virand dupa caz.

Intr-o implementare simplista , 3 senzori sunt indeajuns pentru a urmari o linie . Acestia sunt amplasati in fata sasiului , in linie , unul pe mijloc, 2 laterali [pentru a putea urmari linia cand merge inainte si cand face stanga/dreapta ].

Hardware Design

Componente

  1. Placuta de baza (cu ATmega 324) : 1
  2. Driver motor L293D : 1
  3. Senzori : 3
  4. Roti : 2 + 1(ball caster)
  5. Sasiu : 1
  6. Conector alimentare : 2 (pentru 3 baterii fiecare)
  7. Cablu USB : 1
  8. Fire , Pini : ++

Design hardware :

Avem sasiul cu cele 2 roti in spate + un ball caster in fata. Senzorii sunt montati in fata , pe sasiu. Tot pe sasiu avem montati conectorii pentru alimentare , alaturi de driverul pentru motoare.

Software Design

Mediu de dezvoltare : Notepad++

Scurta descriere algoritm :

Se fac initializarile pentru : senzori , PWM , lcd(in debug mode) , pini in/out

Se asteapta apasarea pe buton pentru a porni algoritmul de linefollowing care merge pe urmatoarea idee :

pot merge inainte (imi raspunde senzorul din mijloc) ? 
--[da]-- pot face stanga/dreapta ?
		--[da]-- fa stanga/dreapta
		--[nu]-- mergi inainte
--[nu]-- pot face stanga/dreapta ?
		--[da]-- fa stanga/dreapta
		--[nu]-- niciun senzor nu este pe traseu , deci sunt in cadrul unui viraj .
			

Pentru acest ultim caz imi retin atat ultima miscare facuta , cat si ultimul viraj inceput ( stanga / dreapta ). In cazul in care niciun senzor nu este pe traseu inseamna ca am inceput un viraj si pur si simplu continuu sa fac acel viraj.

Pentru viraje am abordat o metoda simplista : viraj cu pivotare , in sensul ca opresc un motor si aplic PWM pe canalul corespunzator celuilalt , astfel ca se vira , avand ca pivot motorul oprit.

Rezultate Obţinute

In urma muncii depuse a rezultat un linefollower decent [cu multe lucruri care ar putea fi inbunatatite - poate pe viitor] in sensul ca isi atinge scopul si nu arata ca in spate nu sunt decat niste metode simpliste prin care ia cateva decizii.

multumim Lidl pt ajutor [poza asta e pt voi !]

design-ul : click pt design : kyRwZwDh6J8

Echipa noastra va multumeste :

in the meantime : watch

si live @pmfair15 : Image-53.png

Concluzii

Un proiect la care ne-a facut placere sa participam si in urma caruia am ramas cu destule lucruri noi .

Hands-on experience is the best kind of experience.

Download

Arhiva cu codul sursa , makefile , scheme , comentarii , datasheet-uri , bootloader

pm.rar

pm/prj2015/avoinescu/ccrbmc.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