Light Seeker

Introducere

Scopul proiectului este de a crea un robot autonom care sa poata urmari o sursa de lumina folosind o pereche de senzori de lumina (diode fotosensibile) pentru a calcula directia dorita si o pereche de motoare pentru deplasare.

Descriere generala

Schema bloc:

Dupa cum se vede in schema am folosit alimentare separata pentru motoare si pentru placuta ca sa evit resetarea microcontroller-ului. Comunicarea intre uc si L293NE se face pe 4 pini + 2 de alimentare. Senzorii au cate 3 pini fiecare, 2 de alimentare si unul de semnal ce va fi conectat la una dintre intrarile convertorului analog-digital integrat.

Hardware design

Componente

  • 1x L293NE
  • 2x motoare 3-6V
  • 1x cutie viteze Tamyia
  • 2x roti
  • 1x suport bila
  • 2x senzori lumina arduino brick
  • 4x baterii 1,5V
  • 1x suport baterii
  • conectori
  • fire

imag0056.jpg imag0057.jpg imag0058.jpg

Cutia de viteze cu motoarele au venit in cutie si au necesitat montaj.

imag0060.jpg

L293NE a fost conectat la ATmega16 cu 4 pini de semnal pentru controlul motoarelor si inca 2 pini pentru alimentare si semnale de enable. Inca 2 perechi de fire au fost necesare pentru legarea motoarelor de punte si inca o legatura pentru alimentarea lor.

imag0070.jpg

Cele 3 fire portocalii legate sunt conectate la +5V pentru semnalele de enable si alimentarea L293NE. Din fiecare din perechile de fire verde/verde-alb si maro/maro-alb, una este legata la pinii de semnal ai ATmega16, iar clealalta la motorul comandat de respectivii pini. Firul portocaliu singur reprezinta alimentarea motoarelor (6V), iar cei patru pini conectati cu firul maro sunt legati la GND.

Senzorii au venit gata montati si au 3 pini, 2 de alimentare si unul de semnal ce va fi conectat la una din intrarile convertorului analog-digital al ATmega16.

imag0069.jpg

Software design

Codul a fost destul de simplu avand in vedere ca valorile citite de la senzori sunt intregi pe 10 biti. Astfel, vom avea 2 praguri de diferentiere configurabile. Daca diferenta dintre valorile senzorilor depaseste doar unul din praguri o roata va fi blocata si una va merge in fata, iar daca sunt depasite amandoua o roata se va roti inainte iar cealalta inapoi. Pentru o mai buna precizie, am introdus si calcularea mediei valorilor date de senzori pe un numar configurabil de esantioane.

Rezultate obtinute

imag0061.jpg imag0062.jpg imag0063.jpg imag0064.jpg imag0065.jpg imag0066.jpg imag0067.jpg

Probleme intampinate

Desi robotul functioneaza corect, este nevoie de o sursa de lumina destul de puternica pentru a sesiza diferenta de valori intre cei doi senzori.

Cod

Bibliografie

pm/prj2011/pgp/lightseeker.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