Ruxandra TRANDAFIR, Alina RUBLEA - Line Follower - Muttley

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Prezentarea proiectului:

Numele lui este Muttley. Ce stie sa faca? Sa urmareasca o linie neagra pe un fundal alb. Intrucat am mai avut mici implicatii la construirea unui line follower, ne-am gandit ca ar fi interesant sa facem noi unul de la zero. In afara de faptul ca a construi un robot ni s-a parut o idee captivanta, ne-a motivat si faptul ca la final va fi un concurs la care vom putea participa cu acest proiect.

Descriere generală

Schema bloc

Descrierea schemei bloc

Acest robotel a fost construit din mai multe parti functionale:

  • Placa de laborator cu Atmega324PA – aceasta este componenta centrala care va primi informatii de la senzori si care va comanda motoarele astfel incat robotul sa poata urmari traseul
  • Placa de senzori – aceasta placa contine 8 senzori analogici. Aceasta are 11 pini: cate unul pentru fiecare senzor, doi de alimentare (VCC si GND) si unul pentru LEDON. Senzorii vor da la iesire o tensiune intre 0V si 5V in functie de culoarea detectata.
  • Comparatoare – acestea sunt realizate cu ajutorul a 8 amplificatoare operationale (cate unul pentru fiecare senzor). Aceste amplificatoare se folosesc in bucla deschisa pentru a avea amplificarea de tensiune maxima.
    • Ele sunt folosite pentru a putea determina mai usor daca senzorii detecteaza traseul. Folosind aceste comparatoare nu va fi necesara utilizarea convertoarelor analog-digitale, obtinandu-se in mod automat o valoare digitala care va indica alb sau negru.
    • Modul lor de functionare este urmatorul: la una din cele doua intrari va fi conectata iesirea unui senzor, iar la cealalta o tensiune de referinta. Acea tensiune de referinta se regleaza cu ajutorul unui potentiometru care va functiona ca un divizor de tensiune (acelasi potentiometru pentru toate cele 8 comparatoare). Astfel, daca va fi detectata o diferenta intre valorile tensiunilor celor doua intrari, aceasta va fi amplificata si limitata la 5V sau 0V.
    • Totodata, la iesirea comparatoarelor sunt conectate 8 LED-uri(cate unul pentru fiecare senzor) care se vor aprinde cand senzorii detecteaza traseul. Astfel se poate vedea cu usurinta ca senzorii functioneaza si se pot calibra mai usor si rapid cu ajutorul potentiometrului.
  • Driverul de motoare L298 – este folosit pentru comandarea motoarelor. Acesta contine doua punti H. Fiecare punte are doua iesiri la care se conecteaza motoarele, un pin de current sense, doi pini pentru setarea directiei (INx si INy) si un pin de enable (EN).
    • Pinii IN sunt folositi pentru setarea directiei si trebuie sa aiba mereu valori complementare. Pe pinul EN se va aplica semnalul PWM cu un factor de umplere diferit pentru setarea vitezei.
    • Driverul mai are si un pin de alimentare a logicii de calcul (VLS) si un pin de alimentare pentru motoare (VS) la care se va conecta bateria.
  • Motoare – acestea sunt doua motoare de curent continuu
  • Regulatorul de tensiune LM7805 – el va fi folosit pentru a putea alimenta comparatoarele si bagheta de senzori. Acesta se va alimenta de la baterie.
  • Bateria – este cea care alimenteaza intregul robot. Acumulatorul LiPo (7.4V si 800mAh) va asigura energia pentru uC, motoare, comparatoare, senzori si driver si este conectat prin intermediul unui intrerupator.

Hardware Design

Lista componente

Nume componenta Cantitate
LM324N (AO) 2
LED ROSU 3mm 6
LED VERDE 3mm 6
7805T – regulator de tensiune 1
Rezistenta 1K 2
Potentiometru 10K 1
Respack 470 1
L298 (driver motoare) 1
Conectori de tip vagon 4
Condensator 100nF 1
Condensator 470nF 1
Condensator 220uF 1
Bagheta pinheaderi mama 2
Bagheta pinheaderi tata 1
Intrerupator 1
Cablu pamblica 1
Mufa de alimentare 1
Radiator driver 1
Bila de sport 1
Conector IDC 1
Motor electric micro metal 50:1 HP 2
Suport prindere motor 2
Roti 2
Acumulator LiPo 7.4V 800 mAh 1

Scheme EAGLE

Software Design

  • Mediu de dezvoltare: AVR Sudio
  • Algoritm urmarire a liniei negre
    • Am folosit o varianta mai simplificata a algoritmului PID, si anume nu am luat in considerare componenta integrala
    • Acest algoritm este de fapt un model matematic care isi propune sa invete robotul cum sa urmareasca o linie neagra
    • Ideal este ca robotul sa fie permanent centrat pe linia neagra, calculand o valoare de mijloc
    • Este necesar sa masuram de asemenea pozitia robotului fata de linia neagra
    • Iar in final, cu aceste doua informatii vom calcula eroarea pentru a vedea cat de mult s-a abatut robotul de la linia neagra
    • Desi algoritmul PID contine 3 componente: Proportionala, Integrala si Derivativa, noi am folosit doar prima si a treia componenta
    • Componenta proportionala: indica distanta la care se afla robotul fata de linia neagra
    • Componenta derivativa: indica rata cu care se deplaseaza robotul de la dreapta la stanga sau invers
    • Factorii folositi pentru calibrare:
      • Kp – constanta folosita pentru a mari sau micsora componenta proportionala
      • Kd – constanta folosita pentru a mari sau micsora componenta derivativa
    • Pasii de aplicare ai algoritmului
      • Citim senzorii si retinem pozitia robotului
      • Calculam eroarea = pozitia_robotului – centru
      • Calculam componenta derivativa
      • Calculam diferenta dintre motoare cu ajutorul formulei
        • (eroare * Kp + derivativa * Kd) / MULT
        • MULT este folosit pentru o precizie mai buna la calcule
      • Apoi, in functie de diferenta pe care o obtinem:
        • Daca diferenta < 0, miscam roata din stanga inainte cu o viteza mai mare, iar la viteza rotii din dreapta adunam acea diferenta (pentru a-i micsora viteza)
        • Daca diferenta > 0, miscam roata din dreapta inainte cu o viteza mai mare, iar la viteza rotii din stanga scadem acea diferenta (pentru a-i micsora viteza)

Rezultate Obţinute

  • Muttley a invatat sa urmareasca linia neagra
  • Dupa “lupte seculare” de calibrare a robotului, am reusit sa il eficientizam cat de cat

Concluzii

=== Probleme aparute ===

  • leduri conectate invers
  • pini uitati prin aer

Partea pozitiva :-)

  • A fost un proiect foarte interesant din care am invatat multe lucruri.
  • Desi timpul de lucru alocat proiectului a fost destul de mare, suntem de parere ca a meritat efortul din plin.

Filmulet

* watch

Download

Codul sursa

Jurnal

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

Bibliografie/Resurse

Datasheet

Altele

  • Algoritm PID - index.php
  • placuta driver eap - w
  • placuta comparatoare eap - w

Multumiri EAP InGeAr!

pm/prj2013/avoinescu/linefollower-muttley.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