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:
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
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
Comanda de la Farnell pentru driver L298 a durat 3 zile prin curier rapid.
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
[Labolatorul
2(link) pentru controlul motoarelor(PWM).]
[Labolatorul
3(link) pentru afișare seriala(debug).]
[Simulator
PID - bun pentru determinarea lui Kp,Ki,Kd.]