This is an old revision of the document!


Line follower

Pană Ştefan, 332CC

Introducere

Robot cu două motoare care urmăreşte o linie de culoare neagră (având fundalul de culoare albă).

Descriere generală

Proiectul constă în implementarea unui robot care urmărește o linie neagră cu ajutorul unui senzor infraroșu care detectează poziţia robotului față de linia pe care o urmează. Acesta poate fi utilizat în fabrici pentru mutarea diverselor obiecte eficient și autonom (evident, robotul utilizat într-o fabrică are un șașiu de dimensiuni mai mari și este mai rezistent la greutate).

Schema bloc:

Astfel, placa de dezvoltare Arduino UNO primeşte informaţii legate de poziţia robotului de la senzorii cu infraroşu. În funcţie de aceste valori placa trimite mai departe informaţii către driver-ul de motoare L293D care acţionează cu viteze diferite cele 2 motoare (stângul, respectiv dreptul).

Hardware Design

Componentele robotului sunt:

  • Arduino UNO
  • Kit şasiu maşină 2 roţi
  • Senzor inflaroşu QTR-8A
  • Shield cu driver de motoare L293D
  • Baterie 9V
  • Fire de legătură

Design-ul circuitului în Tinkercad

Astfel, o baterie de 9V este suficientă pentru a alimenta întregul circuit.

Software Design

Pentru început am verificat că fiecare piesă merge conform specificaţiilor folosind exemple din bibliotecile oficiale (AFMotor de la Adafruit pentru shield-ul L293D şi QTRSensors de la Pololu pentru senzorii IR). Ulterior am citit documentaţiile acestor biblioteci pentru a vedea ce funcţii îmi oferă.

Am ales să implementez un algoritm care foloseşte componente proporţionale şi derivative (algoritm PD) deoarece acesta are o acurateţe şi o viteză mult mai mare decât metodele clasice care folosesc unul sau doi senzori. Un dezavantaj al acestei metode este faptul că în funcţie de: dimensiunea roţilor, puterea motoarelor, greutatea robotului, distanţa la care este amplasat senzorul IR faţă de roţi; trebuie reglate componentele KP şi KD (denumite astfel în codul ce urmează a fi prezentat) pentru ca robotul să aibă un control cât mai optim.

Astfel, am ales să folosesc 5 senzori din cei 8 disponibili din 2 motive:

  • am fost limitat de placa Arduino UNO în a folosi maxim 6 senzori analogi;
  • am folosit cel mai mic număr impar mai mic decât 6 deoarece am vrut să am doar un senzor în mijloc drept reper la poziţia robotului faţă de linia neagră.

Pentru a putea utiliza cât mai eficient senzorii IR, înainte ca robotul să poată urmări linia acesta trebuie calibrat manual (am folosit exemplul din fişierul “QTRAExample” al bibliotecii QTRSensors pentru a calibra robotul).

După calibrare, cu ajutorul funcţiei “readLine” din aceeaşi bibliotecă aflu poziţia în care se află linia neagră faţă de senzorii folosiţi (eu folosesc senzorii 2, 3, 4, 5, 6, senzorul 4 fiind cel din mijloc).

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

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.

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.

Export to PDF

pm/prj2022/bogdanc/line-follower.1653647627.txt.gz · Last modified: 2022/05/27 13:33 by stefan.pana
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