Matei MACRI - Line follower

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Vreau sa construiesc un robot de tip line follower care, in plus poate sa ocoleasca obstacolele aflate in fata lui.

Proiectul a pornit de la ideea de a evita obstacole folosind senzori, si acesta este primul lucru pe care doresc sa-l implementez.

Am ales acest proiect deoarece mi-am dorit dintotdeauna sa construiesc un robot autonom. Mai mult, cred ca acest proiect ma va invata foarte multe despre lucrul cu microcontrollere, senzori si motorase.

Schema bloc a proiectului

Hardware Design

Pentru ca am nevoie de un ADC pentru senzorul de distanta, si doar 8 ADC-uri in total, am hotarat ca senzorii de linie sa fie conectati la pini fara ADC. Deoarece de la acesti senzori am nevoie doar de informatie tip digital (alb sau negru), un ADC nu este strict necesar. (Pe pagina producatorului este specificat ca aceasta metoda functioneaza pentru suprafete cu reflectanta mare, cu senzorul apropiat de suprafata.)

Lista piese

Software Design

Codul a fost dezvoltat folosind Programmer's Notepad si WinAvr (nota: aparent trebuie instalat in C:/WinAvr… pt ca altfel nu merge)

Cei 8 senzori sunt conectati astfel:

dreapta <-PB0-PB1-PB2-PB3-PC1-PC2-PC3-PC4-> stanga

Programul este destul de simplu:

initializez porturi
pornesc motoarele
do forever {
  daca am obstacol in fata {
    mergi la dreapta un timp t
    mergi la stanga pana cand cel mai din stanga senzor intoarce 1
  }
  daca input 1 de la senzori in afara de cei 2 din centru, atunci
    scade factor umplere pt motorul respectiv (cu cat senzorul e mai in extrema, cu atat cotesc mai repede)
}

De mentionat faptul ca, de-a lungul experimentelor mele, am descoperit ca incetinirea unui motor in curba da rezultate mai bune decat accelerarea celuilalt motor.

Rezultate Obţinute

Dupa multa munca, am obtinut un line follower bun, chiar daca este putin inestetic (si vulnerabil la coliziuni!); partea de evitare de obstacole este, din nefericire, incompatibila cu un traseu asa cum am avut la laborator (insa functioneaza pt o linie dreapta).

Concluzii

Partea cea mai dificila a proiectului a fost partea mecanica, adica montarea tuturor pieselor pe 'sasiul' robotului. Am avut nevoie de piese auxiliare (a se citi table si bucati de plastic) pentru a completa montajul. Datorita felului in care a fost facuta placa, aceasta nu se poate fixa folosind suruburi (nu exista loc in toate cele 4 colturi pentru suruburi).

O mare greseala pe care am facut-o a fost ca am luat un soclu foarte nepotrivit pentru porturi (se poate vedea pe porturile A); drept urmare, nu am putut conecta cablurile intr-un mod civilizat, si am fost nevoit sa le lipesc direct de placa.

Senzorul de linie a fost cel mai ne-cooperant; desi pe pagina producatorului spune ca distanta optima de functionare este de 6mm, eu am observat ca de fapt distanta optima e undeva pe la 12, 13 mm (concluzia fiind: verificati in primul rand iesirile senzorilor si vedeti daca corespund cu asteptarile).

Download

Arhiva cu sursa proiectului + Makefile

cod_matei_macri_332ca.zip

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

pm/prj2014/amusat/matei-macri-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