Valentina-Camelia BOJAN, Ionut-Gabriel RADUCU - Line Follower

Autorii pot fi contactati la adresele:

  • valentina.bojan@cti.pub.ro
  • ionut.raducu@cti.pub.ro

Introducere

  • Ce este si ce face un robot line follower?
    • Un Line Follower este un robot care poate urma o anumita cale. Acest drum poate fi o linie vizibila de culoare neagra, realizata pe o suprafata de culoare alba. Circuitul poate fi drept, circular, sau poate avea curbe mai largi, ori, dimpotriva, mai periculoase.
  • De ce un robot line follower?
    • Pentru ca este o provocare sa realizam un proiect care sa fie complet independent de noi, in sensul ca, odata construit si in stare functionala, poate capata o anumita personalitate, urmandu-si circuitul fara ca noi sa il mai controlam. El stie ce sa faca si cum sa faca acel lucru, fara ajutor suplimentar;
    • Pentru ca, la final, pe langa faptul ca vom fi terminat proiectul, vom obtine si un mini-robotel destul de estetic incat sa ne mandrim cu el;
    • Pentru ca este distractiv procesul de construire si de programare a ceva care, pe masura ce se avanseaza la lucrul sau, isi poate etala functionalitatea si inteligenta, oferindu-i astfel constructorului un feedback;
    • Pentru ca este o provocare cresterea gradului de inteligenta a robotului pana ajunge la o versiune dorita.
  • Are vreo utilitate un robot line follower, sau este doar un proiect cu un punctaj destul de mare pentru PM?
    • Raspunsul este DA!
      • Este o modalitate excelenta de a invata ca nu tot ceea ce inseamna tehnologie este pur software. Trebuie sa existe ceva pe care sa il putem programa, trebuie sa existe acele componente care sa preia si sa execute comenzi;
      • Este interesant sa invatam ce este in spatele unui lucru asemanator cu o jucarie marcanta pentru copilaria fiecaruia dintre noi;
      • Desi partea legata de hardware trebuie sa fie bine stabilita inca de la inceput, in sensul ca trebuie sa alegem si sa proiectam robotul, partea de sofware se realizeaza treptat. Astfel, se incearca initial un program care sa ii dea robotului inteligenta proprie, dupa care se testeaza si se inregistreaza rezultatele obtinute. Ceea ce face robotul line follower diferit fata de alte proiecte este faptul ca acesta poseda un “creier” pe care il putem programa sa gandeasca tot mai bine si sa fie tot mai rapid, pe masura ce i se detecteaza eventualele lipsuri, slabiciuni, bug-uri;
      • Este antrenant si, totodata aduce si satisfactie, realizarea un robot care sa posede o caracteristica umana, si anume capacitatea de a recepta stimuli si de a reactiona la acestia, prin anumite comenzi. In cazul unui line follower, senzorii, recepteaza stimuli vizuali, precum linia de culoare neagra pe care o urmareste, robotul analizeaza evenimentul produs si raspunde la stimuli prin anumite comenzi cum ar fi virarea la stanga/dreapta, sau continuarea liniei drepte.

Descriere generală

Schema bloc

Descrierea componentelor schemei bloc

  • Modulele proiectului sunt:
    • placa de baza ce contine microcontroller-ul ATMEGA 324 PA;
    • modulul ce contine senzorii ce vor detecta linia neagra de pe traseu;
    • modulul ce va realiza miscarea robotelului format din driver-ul de motor si cele doua motoare care vor controla miscarile celor doua roti.
  • Interactiunea dintre modulele proiectului:
    • senzorii detecteaza sau nu linia neagra de pe suprafata alba;
    • in functie de ce valoare detecteaza microcontroller-ul pentru fiecare senzor, se genereaza anumite comenzi;
    • comenzile de la microcntroller se trimit catre cele doua motoare, prin intermediul driver-ului de motor.

Hardware Design


Lista de piese

  • Componente principale
  • Componente Driver Motor
  • Componente prin care se realizeaza output-ul
    • 2 led-uri prin care se vizualizeaza viteza robotului, data de intrarile PWM;
    • 8 led-uri prin care se vizualizeaza care dintre cei 8 senzori a identificat linia neagra pe care robotul o urmareste.
  • Componente prin care se realizeaza alimentarea placutei de baza si a motoarelor robotului
  • Componente aditionale (de legatura)
Denumire componenta Cantitate Pret
Componente principale Magician Robot Kit 1 buc 124 lei
Bara senzori linie analogic QTR-8A 1 buc 43 lei
Driver Motor L298N 1 buc 12 lei
Componente driver motor Dioda 1N4007 8 buc 1.6 lei
Radiator L298N 1 buc 9 lei
Condensator 100nF 2 buc 1.2 lei
Rezistenta 2.2 Ohm 4 buc 0.8 lei
Componente output Rezistenta 1k 10 buc 1 leu
Led EL333 10 buc 9.1 lei
Componente alimentare Suport 4 baterii 1 buc 4 lei
Baterie 9 V 1 buc 5 lei
Condensator 100uF 2 buc 1.2 lei
Stabilizator de tensiune LM7805CT 1 buc 1.25 lei
Mufa - Conector Jack 2089 1 buc 1.6 lei
Conector - baterie 9V 1 buc 0.75 lei
Componente aditionale Conector 3 pini cu surub 1 buc 0.75 lei
Conector 2 pini cu surub 2 buc 1.3 lei
Bareta HN1X40 1 buc 1.8 lei
Panglica 10 fire de conexiune 1 metru 4 lei
Bareta pini - mama 4 buc 10 lei
Total 233.35 lei



Scheme electrice ale modulelor proiectului

Driver-ul de motor

< - >

Placa de baza

< - >

Placa de test - Senzori

< - >

Evolutie Line-Follower



Software Design


  • Mediu de dezvoltare:
    • Programmer's Notepad
  • Librării şi surse 3rd-party:
    • V-USB - folosita pentru vizualizarea pe calculator a valorilor citite de senzori
  • Aloritmul utilizat pentru controlul celor doua motoare si urmarirea liniei negre:
    • etapa de initializari:
      • am initializat convertorul ADC
      • am initializat TIMER 1 folosit pentru a genera semnal PWM pentru controlul celor doua motoare
    • etapa de preluare a input-ului:
      • am realizat o functie prin care se citesc toate valorile date de senzori
    • etapa principala:
      • intr-un while(1){…} am citit valorile tuturor senzorilor, senzorului ce detecteaza linia neagra atribuindu-se o anumita valoare numerica:
        • 0 pentru senzorii din centru
        • valori negative pentru senzorii din stanga
        • valori pozitive pentru senzorii din dreapta
      • in functie de aceste valori am modificat vitezele celor doua motoare pentru ca masinuta sa urmareasca linia in mod corect:
        • daca valoarea este 0, atunci vitezele celor doua motoare raman egale
        • daca valoarea este negativa, atunci scade viteza motorului din stanga si creste viteza motorului din dreapta
        • daca valoarea este pozitiva, atunci scade viteza motorului din dreapta si creste viteza motorului din stanga



Rezultate Obţinute

  • In urma implementarii hardware si software am reusit sa obtinem un robot line follower care are un comportament destul de bun. Astfel, poate ca nu este cel mai rapid robotel, insa hotararile pe care le ia sunt corecte.
  • Pe parcursul etapei de implementare software a proiectului am imbunatatit codul pe masura ce faceam diverse teste “de teren”. Putem afirma faptul ca a fost placut sa observam cum robotul nostru a evoluat de la un test la altul, pana a devenit ceea ce este in prezent: un robotel pe “rotile sale”.
  • Suntem constienti de faptul ca sunt multe lucruri ce mai pot fi imbunatatite la robotul nostru, insa suntem foarte multumiti de ceea ce am reusit sa realizam prin intermediul acestui proiect.
  • Un filmulet in care se pot observa rezultatele obtinute se poate gasi la adreasa: https://www.youtube.com/watch?v=YUYyaTwjICY&feature=youtu.be



Concluzii

  • Am resuit sa realizam tot e ne-am propus la inceputul acestui proiect, cand robotul nostru line follower era decat o idee.
  • Pe parcursul dezvoltarii proiectului am trecut relativ usor peste sarcini care initial ni se pareau foarte grele, insa am si intampinat probleme cu lucruri pe care le consideram la inceput nesemnificative (de exemplu am avut mai probleme cu alimenatarea, in sensul ca a trebuit sa schimbam bateriile in fiecare zi: daca nu se descarcau bateriile ce alimentau motoarele, se descarca bateria ce alimenta senzorii si tot asa…)
  • Mai avem multe imbunatatiri de adus proiectului daca vrem sa il facem sa arate ca in filmuletele de pe net cu robotei super-inteligenti si rapizi, insa masinuta noastra este la inceput de drum (are doar o saptamana de viata) si suntem fericiti ca a fost foarte perspicace si deja a invatat sa parcurga primele trasee. Fiecare drum este o noua provocare pentru ea, dar ea invata inca sa faca pasi mici dar siguri.



Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.


Bibliografie/Resurse

Resurse harware

Resurse software

pm/prj2014/ideaconu/linefollower17.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