Stoer - Line Follower

Autori

  • Nirlu Stelian -333CC
  • Stoica Cosmin-Stefan - 331CC

Introducere

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.

Descriere generală

Masinuta contine:

  • placuta de baza realizata pentru etapa I a proiectului - primeste informatii de la senzori si trimite comenzi driverului
  • 2 motoare - cele 2 motoare sunt folosite pentru rotile din fata
  • driver pentru motoare legat la un port de pe placuta de baza - primeste comenzi de la placa de baza si in functie de comenzile primite comanda motoarele
  • placuta cu 8 senzori pentru detectarea liniei - trimite informatii de la cei 8 senzori catre placa de baza
  • sasiu si roti
  • suruburi, piulite

 Schema conceptuala

Hardware design

Lista de componente utilizate

  • Plăcuța de bază


Componenta Cantitate Componenta Cantitate
Microcontroller MEGA16-P 1CONECT 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 78051Quartz 16MHZ
Rezistenta 10K 2Rezistenta 1K 2
Rezistenta 4,7K 2Conector DB9 Mama PCB 1
Conector USB 1Rezistenta 100R2
Rezistenta 2,2K1Cablaj foto 75×1001
  • Plăcuța driver motoare


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
  • Componente suplimentare
  1. șuruburi diverse dimensiuni
  2. bandă adezivă
  3. suport baterii
  4. 6 baterii 1.5 V

Construcția progresivă a robotului

 Driver L298HSașiu robotBară de senzori{{ :pm:prj2012:dtudose:2012-05-12-10.21.31.jpg?nolink&200 |Conectare placă de bază cu L298H

Testing

Detalii implementare hardware

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 ): Schema L298N

Software design

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:

  1. inițilizarea porturilor
  2. calibrarea sensorilor - determinarea valorilor albului de la senzorii din exterior pentru a fi folosit drept referință pe parcursului algoritmului.
  3. într-o buclă se verifică în mod continuu valorile senzorilor:
    1. sensorii 4,5 sunt negru se merge inainte
    2. sensorul 1 sau 2 sunt pe negru se face la stânga
    3. sensorul 7 sau 0 sunt pe negru se face la dreapta
    4. niciun senzor pe negru merge inapoi pentru a căuta linia pierdută

Rezultate obtinute

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.

Concluzii

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.

Download

Jurnal

  • Ziua 1 - 25-feb-2012 - Primul drum pe Maica Domnului

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.

  • Ziua 2 - 03-martie-2012 - Plăcuțiada 2012

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.

  • Ziua 3 - 15-martie-2012 - Lipirea plăcuțelor

Ne-am adunat mai mulți colegi si am lipit plăcuțele de bază

  • Ziua 4 - 26-martie-2012 - Testarea plăcuței de bază

Testarea placuței la laborator.

  • Ziua 5 - 4-aprilie-2012 - Drum în Berceni

Am plecat să cumpărăm kitul de robot și senzorii de la Robofun.

  • Ziua 6 - 6-aprilie-2012 - Începerea robotului

Am ansamblat foarte ușor kitul de robot și am făcut o prima schemă a robotului.

  • 7 - 15-aprilie-2012 - Drum Maica Domnului

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 :)

  • Perioda 27 aprilie - 12 mai 2012

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!

Bibliografie

pm/prj2012/dtudose/2.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