Line follower toy car

Introducere

O masinuta ce urmareste o linie neagra pe un fond alb

Descriere generală

O masinuta de jucarie avand doua motoare, unul pentru deplasare inainte si inapoi iar celalalt pentru viraje. Motoarele sunt comandate de integratul L293B, comandat la randul lui de microcontrollerul AVR ATMEGA16, pe baza raspunsului oferit de 4 perechi de senzori optici emitor-receptor, dispusi in partea frontala a masinii.

Hardware Design

Senzorii

Am ales sa folosim 4 perechi de senzori optici emitor-receptor RPR220. Atunci cand o pereche de senzori se afla deasupra unei suprafete ce reflecta lumina, receptorul va genera o tensiune nenula, in timp ce in cazul unei suprafete ce absoarbe lumina, tensiunea generata de receptor este apropiata de 0.

Am folosit un comparator pe 4 canale LM324N care preia iesirile celor 4 receptori, alaturi de o tensiune de referinta (in funcite de nivelul careia pune pe fiecare iesire “0” sau “1” logic) furnizata de un divizor de tensiune reglabil (un potentiometru de 10K legat intre VCC si GND).

Motoarele

Moroarele sunt comandate prin intermediul circuitului integrat L293B. Acesta primeste alimentare pentru logica de la alimentarea micorcontrollerului, iar pentru motoare exista o alimentare separata de 7.5V. Bitii de comanda sunt setati de microcontroller, fiecare motor fiind comandat prin 3 biti: un bit de activare si 2 biti ce stabilesc sensul de rotire al motorului. Pentru a reduce viteza, unul dintre acesti biti va fi furnizat de iesirea OC0/OC2 a microcontrolleru-ului (iesirile celor doua timere pe 8 biti, configurate in modul phase correct PWM), iar celalalt va fi setat pe “0” sau “1” logic in functie de care se stabileste sensul motorului.

Software Design

Programul ce ruleaza pe microcontroller comanda masina sa se deplaseze initial inainte. Apoi citeste in mod repetat starea senzorilor, in functie de care decide necesitatea efectuarii unui viraj dreapta sau stanga, mai lung sau mai scurt. Pentru a stabili o viteza acceptabila, am folosit cele 2 timere pe 8 biti puse la dispozitie de microcontroller configurate in mod phase correct PWM. In urma testelor, am stabilit valoarea de 70 pentru OC0/OC2 ideala pentru o viteza accepabila a motoarelor.

Rezultate Obţinute

In timpul testarii (ce parea in regula) am compromis functionalitatea senzorilor. Accidental, i-am acoperit cu adeziv.

Download

Sursa programului impreuna cu makefile-ul

src.zip

Bibliografie/Resurse

pm/prj2011/dloghin/linefollower.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