FollowTheLight
Introducere
”FollowTheLight” se dorește a fi faza incipientă a unui mic cap de roboțel, așezat pe un motor, și dotat cu doi “ochi”. Rolul lui este ca în momentul în care se detectează o lumina mai puternică în dreptul unui ochi, să se miște capul în direcția respectivă astfel încât să se echilibreze nivelul de luminozitate.
Ideea de la care am plecat a fost să încep crearea unui roboțel propriu, pe parcursul unei perioade mai lungi, și acesta am considerat că ar fi primul pas în acest sens.
Descriere generală
În conformitate cu ideile exprimate în introducere, vor fi folosite următoarele componente în realizarea proiectului:
Microcontroller ATMega16;
Senzori de lumină Brick;
Motor de turație mică, și cuplu mare (9Kg/cm), cu raport de distribuție 1000:1, și cu viteză maximă 32 RPM;
Proiectul este format din următoarele componente bloc:
placa de bază, creată la laborator, și controlată folosind microcontroller-ul ATMega16;
placa auxiliară, ce conține puntea H, necesară controlului motorului;
senzorii de lumină, sub formă de circuite brick;
motorul 1000:1.
Interacțiunea între componente se desfășoară în felul următor:
la inițializarea programului de microcontroller se vor configura
timerul 1, care se va triggera la 0.5 secunde;
sistemul ADC, care va colecta datele de la senzori;
în momentul în care se activează întreruperea de la timer, se citesc valorile de la senzori, și se stabilește dacă și în ce direcție să se miște motorul;
se activează în acest moment porturile corespunzătoare folosirii motorului, în ideea direcției spre care trebuie să se deplaseze; se definesc aici 3 stări:
mișcare stânga;
mișcare dreapta;
staționare.
ciclul anterior se continuă atât timp cât există alimentare la placă.
Datorită faptului ca alimentarea plăcii de bază se va face prin USB, fără alimentare externă, și fiindcă pentru motor este nevoie de o sursă puternică de curent, am folosit o soluție externă formată din 4 baterii de 1.5 V legate în serie, care alimentează puntea H ce se ocupă cu controlul motorului.
Hardware Design
Componenta de bază:
Componente auxiliare:
2 x Senzori de lumină brick
2 senzori
2 rezistențe 1K
Circuit integrat L298N (punte H)
4 x Diodă Zener 3.3V
2 x Capacități 100nF
Fire de legătură
Slot de pini 4+5, folosit pentru legătura între plăci
Schemele electrice pentru integratul L298N sunt:
Schema Eagle a întregului proiect este:
Software Design
Caracteristici software:
sistem de operare - Windows (am folosit sistemul de operare WIndows datorită integrării cu ușurință a driverului USB, spre deosebire de sistemul Linux, care are probleme pe 64 de biți);
mediu de dezvoltare - WinAVR;
editor text - Programmer's Notepad;
desenare schemă - Eagle 6 (versiunea freeware);
Descrierea funcțiilor:
_GetADCValue - extrage valoarea unui pin de tip ADC, pe un anumit canal, definit sub forma de enumerație;
_InitADCBehavior - inițializează modul ADC al microcontroller-ului;
_MoveClockwise + _MoveCounterClockwise + _HaltMovement - asigură mișcările motorului, în funcție de poziție;
_InitTimer1Behavior - inițializează timerul 1 să dea întrerupere la fiecare 0.5 secunde;
_IsInLimit - verifică diferențele între cei doi senzori.
Imagini proiect
Placa de baza
Ansamblul general
Motor + senzori
Placa auxiliara
Concluzii
În acest moment, proiectul este în stadiu funcțional, la nivel de componente. Ar mai fi fost necesară asamblarea componentelor pe o tijă metalică, astfel încât ansamblul să fie similar unui cap.
Per total, a fost un proiect interesant, care mi-a oferit cunoștințe noi, legate în principal de lucrul cu motoare și controlul lor prin punți H. Sper să pot continua acest proiect și în continuare, în limita timpului, astfel încât la un moment dat să fie un cap de robot semi-funcțional.
Download
Bibliografie/Resurse
Componente:
Bibliografie: