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.
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.
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
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.
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.
Arhiva ce contine sursa si makefile-ul:
balabancristina_radutrodica_linefollower.zip
Datasheet ATmega16 → doc2466.pdf
Datasheet L298N → CD00000240.pdf