Line Follower

Alexandra Ghecenco și Cristian Iordache, 335CC

Introducere

Ne-am propus să realizăm un robot line follower care, după cum îi sugerează și numele, să urmărească o linie (de culoare închisă). Am ales să facem un robot deoarece ne place ideea de a construi ceva autonom, (suficient de) inteligent, și mai ales palpabil, mai mult decât un program. Pe lângă asta, e o experiență nouă și foarte, foarte interesantă, o recomandăm și am repeta-o [dar nu tot la PM].

Descriere generală

Schema bloc

 Schema generală

Hardware Design

Componente

Ca să realizăm robotul am avut nevoie de:

Denumirea piesei Proveniență Imagine
Plăcuța de la etapa 1 Handmade =)  Plăcuța etapa 1 - front  Plăcuța etapa 1 - back
Șasiu + motoare http://www.robofun.ro/platforma-magician-robot-kit  Kit cu șasiu, roți și motoare
Driver L298N http://www.robofun.ro/L298N 	Driver L298N
Bară senzori linie http://www.robofun.ro/bara_senzori_linie_qtr_8a  Bară senzori linie - front  Bară senzori - back
Diode 1N4007 http://www.conexelectronic.ro/produs.php?id=43128  Diode
Conectori, fire, șuruburi, piulițe, distanțiere etc. http://www.conexelectronic.ro/  Diverse
Schema robot

 Schema

Schema poate fi descărcată de la secţiunea de Download.

Motoarele

Robotul are două motoare, unul pentru fiecare roată. Acestea funcţionează la 6V cu o viteză de 85rpm.
Descriere amănunţită: http://www.pololu.com/catalog/product/1121/

Alimentarea

Robotul este alimentat cu o baterie două baterii identice de 9V.

Software Design

Codul pentru robot a fost dezvoltat în limbajul C, în AVR studio, şi poate fi descărcat de la secţiunea de Download. Algoritmul implementat este foarte simplu: într-o buclă infinită, se citesc datele de la senzori și în funcție de acestea se adaptează viteza motoarelor, care la rândul ei influențează direcția de deplasare.

Rezultate Obţinute

Avem un robot funcţional, care urmăreşte cu succes linia neagră. Din cauză că am pus senzorii cam în faţă, la curbe strânse mai “dă rateuri” şi iese de pe traseu din când în când. Ne-am lovit de câteva probleme pe ultima sută de metri:

  • Iniţial conectasem senzorii la PORTA (la pinii ADC-ului), dar cu configuraţia aceasta robotul pur şi simplu nu a vrut să urmărească linia. Ne bazaserăm în cod pe Laboratorul 3 ca să facem conversia. Părea în regulă, dar nu funcţiona. Am zis să încercăm să îi punem la PORTC, deşi părea lipsit de sens. A mers. În continuare, nu ştim de ce.
  • Deşi părea suficientă, o baterie de 9V s-a dovedit a nu fi. Nu voltajul, ci amperajul a fost problema, lucru la care nu ne gândiserăm. Soluţia a fost să legăm două baterii identice (ca voltaj şi amperaj, nu formă şi culoare) în paralel. O soluţie alternativă ar fi fost să cumpărăm o baterie de amperaj mai mare. Varianta asta ar fi fost şi mai sigură - dacă cele două baterii nu ar fi fost identice, s-ar fi încărcat una pe alta şi ar fi ajuns şi mai puţin la robot.
  • Nu reuşim să îi găsim un nume L-am botezat Dungă.
Galerie foto

Roboţelul aproape finisat  Robotul neterminat

Dungă gata de atac  Dungă

Front:  Dungă - front

Back:  Dungă - back

Dungă în deplină glorie The Adobe Flash Plugin is needed to display this content.

Dungă concurând pe 21 mai The Adobe Flash Plugin is needed to display this content.

Concluzii

A fost un proiect foarte distractiv şi am învăţat mai multă electronică decât în anul II =). Marea majoritate a timpului, nu ştiam exact ce o să facem ulterior, dar am întrebat şi ne-am documentat şi am încercat şi am eşuat şi am continuat să încercăm până când am reuşit să facem ce ne-am propus. Totuşi, nu recomandăm altora să se apuce pe ultima sută de metri de un astfel de proiect (ca noi). E destul de mult de muncit, în special pentru novici, iar pentru antitalente e o adevărată provocare, dar e foarte interesant şi merită.

Ce ne-a plăcut cel mai mult:

  • Lipitul, conexiunile (unuia dintre membrii echipei)
  • Asamblarea robotului from scratch
  • Principiile de funcţionare (mult mai simple decât ne aşteptam)

Ce ne-a displăcut:

  • Lipitul (celuilalt membru al echipei, căruia îi tremurau mâinile de la cofeină)
  • Testarea circuitelor - destul de anevoios
  • Debugging - când codul pare în regulă, trebuie să dezasamblezi tot şi să testezi pe bucăţi, şi chiar şi aşa poţi să fi greşit un #define şi cauţi greşeala în hardware şi în software mult şi bine

Download

Jurnal

Se poate spune că am dezvoltat proiectul într-o succesiune de etape de muncă intensă, separate de pauze considerabil de lungi.

Etapa 1: Plăcuțiada

Am avut fericita inspirație de a merge la Plăcuțiadă (și mulțumim echipei de PM pentru că au organizat-o) ca să ne corodăm plăcuțele pentru etapa 1. De asemenea, am avut și norocul să se corodeze bine, întrucât nu aveam plăci de schimb. Nu ne putem imagina chinul de a face toate acele conexiuni pe o placă de test. Și ne bucurăm pentru asta.

Etapa 2: Lipitul componentelor pe plăcuța de bază

A fost prima noastră întâlnire cu letconul, în urma căreia au rămas 2 plăcuțe, 2 arsuri și concluzia că nu toți studenții la Politehnică sunt făcuți pentru lipit. Am avut de-a face cu LED-uri lipite invers, fludor care refuza să adere la trasee din cauză că nu șterseserăm bine plăcuța cu spirt (acetona a funcționat mai bine), trasee dezlipite etc. În final, am alimentat-o și s-a aprins un LED și apoi am încărcat și programul de test la laborator și a fost OK. Drept pentru care ne-am permis să luăm o lungă pauză.

Etapa 3: Și acum ce facem?

Când a început să se apropie sesiunea, ne-am adus aminte că ne mai trebuie câte ceva. Am mers la Robofun să cumpărăm componente, dar nu știam exact ce ne trebuie, așa că ne-au îndrumat ei. Din păcate, ne-au supraestimat și nu ne-au detaliat lista de componente care ne erau încă necesare, așa că am făcut o grămadă de drumuri. În primă instanță cumpăraserăm doar șasiul cu roți și motoare, bara de senzori și driver-ul. Apoi am aflat că driver-ul nu se lipește pur și simplu “pe lângă” microcontroller, ci trebuie făcut un circuit. Am descoperit circuitul și ne-am întors după conectori, baghete de pini pentru conectarea cu ATMega și diode. Înarmaţi cu tot ce trebuia, am lipit circuitul pe o plăcuţă de test şi ni s-a făcut extrem de dor de trasee corodate cu ocazia asta.

Etapa 4: Păi, facem robotul

După ce am testat plăcuţa cu driver-ul cu multimetrul şi am ajuns la concluzia că merge, am pus totul cap la cap, sau cel puţin am intenţionat să o facem, dar uitaserăm să cumpărăm fire ca să legăm motoarele şi senzorii de plăcuţă. Aşadar, un drum la Conex mai târziu, am ajuns să asamblăm părţile robotului în ceva testabil.

Bibliografie/Resurse

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