Line FOLLOWER

Introducere
Robot 4WD (4-Wheel Drive) Ce urmărește o linie neagra pe un plan alb cu ajutorul a unei benzi de senzori.

Prezentarea pe scurt:

  • Robot alcatuit din:
    • 4 roti
    • 4 motoare
    • Sasiu
    • Bara cu 8 senzori
    • Baterie
    • Driver pentru motoare
    • Placa de baza realizata în Etapa 1

Hardware Design

Kit robot ( cumparat de pe sierra.ro(Kit 4WD) ):

Bara Senzori Digitali (în număr de 8 - cumparat de pe sierra.ro(QTR-8RC) ):

  • Au ieșire digitala.
  • Conectați pe portul X al microcontroler-ului.
  • Trebuie activate rezistentele de pull-up pentru citirea digitala a senzorilor.
  • Schema hardware a senzorilor (click pentru mărire):

Driver Motoare ( cumparat de pe RoboFun(L298N) ):

  • Pinii OUT1..OUT4 de pe driver sunt conectati la motoare, iar impreuna cu IN1..IN4 reprezinta directia de deplasare .
  • Pinii EN A si EN B de pe driver sunt conectati pe portul D și B (PD7 PD3) al microcontrollerului și reprezinta viteza de deplasare data prin PWM de timerele microcontrollerului ( PWM 0 = turație 0%, PWM 255 = turație 100% ).
  • Trebuie avut grija la curentul de inductie de la motoare (ex. cand se opresc motoarele sau cand sunt blocate rotile, se genereaza un curent de inductie care poate arde driverul). Asadar, se pun 8 diode (diode rapide) pe OUT1..OUT4.
  • Pinul VSS al driverului se conecteaza la placuta de baza (VCC = 5V) - acest pin reprezinta și nivelul logic superior; cei doi capacitori de 0,1 uF și 100 uF, nu sunt necesari, deoarece plăcuta de baza ii conține.
  • Pinul VS ('power supply' pentru motoare) NU se conecteaza la placuta de baza ( dacă o folosiți ); acest pin se conectează la bateria de alimentare.
  • Driver-ul se poate alimenta de la aceeași baterie (daca este îndeajuns de puternica) sau de la o sursa separata.
  • Masa pentru driver este aceeași cu masa pentru plăcuta de baza ( dacă o folosiți ).
  • Schema hardware a driver-ului:

Schema logica a proiectului:

Schema electronica a proiectului:

Descrierea codului/algoritmului folosit:

  • Implementarea este relativ ușoara.
  • Se citesc valorile intoarse de senzori.
  • In functie de acestea se calculeaza direcția cu ajutorul algoritmului PID.
  • Se transmite driver-ului direcția si viteza ( turația cu care sa meargă ).

PID Algorithm:

  • Un algoritm relativ standard, poate varia modul în care fiecare își conturează controlul.
  • Scopul sau: de a face robotul sa urmărească linia neagra cât mai bine ( vezi figura alăturata ).
  • Este un model matematic.
  • Poziția ţintă - Pentru line-follower, acesta poziție este centrată pe linie. Vom reprezenta aceasta ca valoarea 0 (zero).
  • Poziția măsurată - Acest lucru este cât de în stânga sau de în dreapta este de la linia. Această valoare va fi o valoare negativa sau pozitiva în funcție de cum se afla robotul fata de linie.
  • Eroarea - diferența dintre poziţia țintă şi poziţia măsurată.
  • Compus din trei componente: Proporțional , Integrator și Derivator
    • Proporțional - masoara cat de departe robotul este depărtat fata de linie. Proporțional este fundamentul pentru capturarea poziției robotului folosind senzori. Cu cât senzorii sunt mai preciși, cu atât putem calcula distanta fata de linie cu o precizie mai ridicata.
    • Integrator - măsura eroarea acumulata în timp. Valoarea Integratorului crește în timp ce robotul nu este centrat pe linie. Cât timp robotul nu este centrat pe linie, cu atât mai mare devine valoarea integrală.
    • Derivator - Masoara rata de deplasare a robotului de la stânga la dreapta sau de la dreapta la stânga. Cu cât mai repede se deplasează de-o parte și de alta a liniei, cu atât devine mai mare valoarea Derivatorului.
  • Trei factori buclucași, ce necesita mult timp pana la determinarea lor; diferă de la robot la robot:
    • P-Factor (Kp) - este o valoare constantă folosit pentru a mări sau micşora impactul proporţională
    • I-Factor (Ki) - este o valoare constantă folosit pentru a mări sau micşora impactul Integral
    • D-Factor (Kd) - este o valoare constantă folosit pentru a mări sau micşora impactul derivate
  • Pasi de determinare a CONTROL-ului:
    1. Diferența = Poziția ţintă - Poziția măsurată
    2. Proporțional = Diferenta * Kp
    3. Integrator = Integrator + Diferenta
    4. Integrator = Integrator * Ki
    5. Rata = Diferenta - Diferenta trecuta
    6. Derivator = Rata * Kd
    7. CONTROL = Diferența + Integrator + Derivator
  • Cu ajutorul CONTROL-ului se determina direcția în care va merge robotul.

Rezultate Obţinute:

Concluzii

  • Implementarea robotului după ce am avut toate zilele ne-a luat aproximativ 8 ore.
  • Scrierea codului a luat aproximativ o ora.
  • Intelegerea algoritmului PID a luat aproximativ 2 ore.
  • Determinarea factorilor Kp, Ki si Kd a durat aproximativ 10 ore.

Download

Jurnal

  1. Comanda de la Farnell pentru driver L298 a durat 3 zile prin curier rapid.
  2. Comanda de la Sierra pentru Kit robot 4WD(sasiu,4 motoare,4 roti) si pentru Senzori de culoare a durat 2 zile prin curier rapid.

Bibliografie/Resurse

  • [Driver Motoare L298N.]
  • [Labolatorul 2(link) pentru controlul motoarelor(PWM).]
  • [Labolatorul 3(link) pentru afișare seriala(debug).]
  • [Algoritm PID.]
  • [Simulator PID - bun pentru determinarea lui Kp,Ki,Kd.]
pm/prj2012/abostan/1.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