Line follower

line.jpg

Introducere

Proiectul nostru consta intr-un masinuta care urmareste o linie neagra pe fundal alb. Am ales acest proiect deoarece ni s-a parut destul de interesant si o adevarata provocare.

Descriere generala

Pentru construirea robotelului, am pornit de la placa de baza realizata in cadrul laboratorului. Pe post de carcasa am cumparat o masinuta cu doua motoare, careia i-am dezasamblat caroseria. Pe suportul oferit de aceasta masinuta am pozitionat celelalte elemente.

Hardware design

Lista de piese

Placa de baza

Punte h

punteh.jpg
schema_punte.jpg

Bara de senzori

senzori.jpg

5 condensatori de 100nF

Software design

Mediul de dezvoltare folosit a fost AVR Studio. Algoritmul folosit este unul destul de simplu, deoarece nu am urmarit ca robotelul sa se deplaseze si cu viteza. In primul rand, se realizeaza initializarile necesare: ADC (responsabil pentru citirea valorilor de la senzori), port A, port B, port C si timer-ul.

La inceput se face o prima citire a valorilor senzorilor, pentru a obtine o valoare medie pentru culoarea alba. Daca robotul trebuie sa vireze la dreapta, acest lucru se realizeaza invartind motorul din stanga. Analog daca se doreste virarea la stanga, se invarte motorul drepta. Masina are tractiune pe spate, rotile din spate fiind utilizate doar pentru accelerare. Functiile pe care le-am implementat au fost urmatoarele:
void ADC_init(void) → initializare ADC
int ADC_get(uint8_t channel) → pentru citire o valoare de pe canalul ADC
void get_sensor_values() → citirea valorilor celor 8 senzori
void accelerate(_speed) → setarea vitezei
void turn_left(int _speed),void turn_right(int _speed) → virari
void init() → initializarile necesare

Rezultate obtinute

Robotul final:


Dupa asamblarea robotului si incarcarea fisierului .hex Atmega16 prin avrusbboot am testat functionalitatea robotului. Acesta urmareste corect linia neagra, existand insa si unele cazuri in care virarea nu are rezultatele dorite.

Concluzii

Proiectul fost unul frumos, am realizat ceva nou, practic si functional. Cea mai mare provocare a constat in realizarea schemei hardware, iar pentru scrierea codului, inclusiv debugging am petrecut maxim o zi.

Download

Arhiva ce contine sursa si makefile-ul:
balabancristina_radutrodica_linefollower.zip

Bibliografie/Resurse

Datasheet ATmega16 → doc2466.pdf
Datasheet L298N → CD00000240.pdf

pm/prj2012/avoinescu/line_follower3.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