Proiectul consta intr-un robot-masinta ce urmareste o linie neagra aflata pe un fundal alb.
Ne-am construit masinuta pornind de la motorase si sasiu. Masinuta este de fapt o tricicleta ce are 2 roti actionate fiecare de catre un motor si o rotita ce se misca in functie de directie. Masina vireaza dreapta prin oprirea motorului dreapta si stanga prin oprirea motorulu stanga.
Masinuta contine:
Componenta | Cantitate | Componenta | Cantitate |
---|---|---|---|
Microcontroller MEGA16-P | 1 | CONECT JACK 2089 | 1 |
Condensatoare 15pF | 2 | Condensatoare 0,1µ | 5 |
Condensatoare 10µ | 5 | Diode ZENER 3,3 V | 2 |
Diode ZENER 5,1 V | 2 | Led rosu | 2 |
MAX232 | 1 | Soclu MAX232 | 1 |
Soclu Microcontroler | 2 | PushButton | 2 |
Stabilizator de tensiune 7805 | 1 | Quartz | 16MHZ |
Rezistenta 10K | 2 | Rezistenta 1K | 2 |
Rezistenta 4,7K | 2 | Conector DB9 Mama PCB | 1 |
Conector USB | 1 | Rezistenta 100R | 2 |
Rezistenta 2,2K | 1 | Cablaj foto 75×100 | 1 |
Componenta | Cantitate |
---|---|
Punte H - L298N | 1 |
Diode LN4007 | 8 |
Condensatoare 100 u | 2 |
Stabilizator de tensiune - L7805CV | 1 |
Bareta conectori mama | 2 |
Bareta pini conectori | 2 |
Placă foto-rezist 5×5 | 1 |
Cablu Panglică | 1 |
Fire Conductoare | 8-10 |
Plăcuța de bază își primește alimentarea de 5 V de la plăcuța driverului L298N prin bornele alăturate Portului B. Plăcuța pentru driverul L298N este alimentat la o sursă de 9 V având un stabilizator 7805 care asigură o tensiune de 5 V prin această placă. Prin conectarea celor 2 plăcuțe în acest fel se asigură masa comună pentru tot circuitul. Comandarea motoarelor este făcută de microcontroller prin PWM cu ajutorul Timerului1 pe porturile PD4,PD5, iar prin PD6, PD7 și PD2, PD3 se aleg sensul în care se învârt motoarele. Conectarea plăcuței de bază cu driverul L298N se face astfel: Schemă pentru senzori: Schemă driver motoare( Proteus ):
Datorită problemelor de compatibilitate dintre driverul pentru usb ( plăcuța de bază ) și Windows 64 de biți am decis să folosesc Ubuntu 32 biți. Editorul folosit a fost Kate și am compilat cu avr-gcc. La secțiunea de Download am adăugat și sursa programului care conduce roboțelul și un Makefile care o compilează. Citirea valorilor senzorilor am făcut-o cu Realterm și un cablu convertor USB-RS232. Acest lucru a fost foarte util, deorece ordinea senzorilor a fost următoarea și nu cea așteptată( 0,1,…7), ci 1 2 3 4 5 6 7 0.
Viteza motoarelor am transmis-o prin PWM( PD4, PD5) și sensul de mișcare prin( P2,P3 și P6,P7).
Valorile senzorilor sunt luate pe portul A prin ADC ( am folosit laboratorul 3). Am luat aceasta decizie pentru putea lucra cu senzorii la o acuratețe mai bună.
Algoritmul folosit:
Robotul funcționează în mod corect urmând cu success linia neagra. În momentul în care iese de pe linie încearcă să o găsească din nou.
A fost un proiect foarte interesant. Din punct de vedere hardware dacă se lucrează gradual și se testează la fiecare pas totul merge de la sine. Am aflat că te poți frige foarte ușor cu letconul:-D. Pe parcursul acestui proiect am făcut și competiții între noi, echipele care am făcut linefollower pentru a testa performanțele roboților noștrii.
După ce ne-am pregatit de drum, luându-ne câte un băț ( anul trecut au fost muscați de căței vreo 3-4 persoane ), pe la 8.30 am luat metroul de la Grozăvești până la Obor și de la Obor am luat tramvaiul 36 care ne-a lăsat pe Maica Domnului. Am luat toate componentele de pe listă și câteva de rezervă. Când am ajuns acasă am observat că nu aveam mufa de serială mamă. Norocul nostru a fost că mai erau colegi care nu aveau piesele comandate și am rugat pe cineva să ne ia și nouă mufa.
Am plecat optimiști cu plăcuțele la corodat. Am inceput pe la 10 să le corodăm. Unul din noi a avut ghinionul să-i se strice 2 plăcuțe la corodare.
Ne-am adunat mai mulți colegi si am lipit plăcuțele de bază
Testarea placuței la laborator.
Am plecat să cumpărăm kitul de robot și senzorii de la Robofun.
Am ansamblat foarte ușor kitul de robot și am făcut o prima schemă a robotului.
Mergem din nou pe Maica Domnului ca sa cumparam componentele pentru driverul de motor. De data asta vedem catei foarte multi, dar am scapat fara muscaturi :)
Am lucrat gradual la robot si a fost cea mai grea etapa, deoarece a trebuit să realizăm placuța pentru driver L298N și facem verificările și asamblarea tuturor componentelor. A trebuit să citim valorile senzorilor ceea ce ne-a cauzat anumite probleme, dar până la urmă cu ajutorul echipei de PM am reușit să citim valorile.
Multumim echipei PM pentru ajutor!