This is an old revision of the document!


Line-Follower Robot - Popescu Silviu 333CA

Introducere

Proiectul consta in implementarea unui robot al carui functionalitate este urmarirea conturului unei forme geometrice, proiectata pe o suprafata neteda.

Robotii line-follower sunt des utilizati in domeniul industrial, unde trebuie sa urmareasca anumite trasee predefinite de-alungul benzii de asamblare.

Descriere generală

Dispozitivul va fi pozitionat pe o suprafata neteda de culoare alba, pe care este trasata o forma geometrica oarecare. In momentul in care va fi pornit, acesta, prin intermediul rotilor se va deplasa de-alungul conturului.

Urmarirea trasei de catre robot se va face central, fara parasirea acesteia, si intr-un ciclu infinit sau pana la detectarea unei benzi negre late.

Hardware Design

Lista componente:

  • Arduino Uno R3 ATmega328P x 1
  • Modul Senzor Infrarosu TCT5000 x 2
  • Driver Motoare L298N x 1
  • Motor cu Angrenaj x 2
  • Baterie 9V x 1
  • Sasiu x 1

Etapele dezvoltarii hardware:

1.Asamblare Sasiu Robot

2.Montare Componente Elcetronice

3.Realizare Cablaj

4.Schema Cablaj

Software Design

Tehnologii Utilizate

  • Mediu de dezvoltare: Arduino IDE 2.1.0
  • Proiectul NU foloseste librarii auxiliare

Principiul de Functionare al Senzorilor

Se monteaza doi senzori infrarosii pe extremitatile robotului.

Fiecare senzor are doua LED-uri:emitor si receptor.
Emitorul emite o raza de lumina infrarosie.
Daca raza ajunge pe o suprafata alba, care reflecta lumina, aceasta este captata de receptor.
Daca raza ajunge pe o suprafata neagra, care absoarbe lumina, aceasta nu mai este captata de receptor.
Astfel, senzorul poate determina tipul suprafetei pe care se afla.

Interactiunea cu Motoarele

Fiecare motor are asociati 3 pini: 1 pin pentru controlul vitezei si 2 pini pentru controlul directiei.
Scrierea pe pinul de viteza se face folosind PWM.

Interactiunea cu Senzorii

Senzorii sunt conectati la pinii analogici A2 si A4 ai placutei Arduino.
Citirea acestora se face folosind ADC cu prescaler 128 pentru a obtine valori discrete.
Pe baza valorilor citite constant de la senzori, se iau urmatoarele decizii:

  • Ambii senzori sunt pe suprafata alba ⇒ Robotul se afla pe linie ⇒ Se deplaseaza inainte
  • Senzorul dreapta se afla pe linia neagra ⇒ Vireaza la dreapta
  • Senzorul stanga se afla pe linia neagra ⇒ Vireaza la stanga
  • Ambii senzori se afla pe suprafata neagra ⇒ Stop

Controlul Sistemului

  • Sistemul este controlat printr-un algortim PID:Proportional, Integrative, Derivative. Mecanismul asigura deplasarea controlata a robotelului in timpul virajelor, lucru ce duce la un timp mai bun de parcurgere al circuitului.
  • Acesta calculeaza starea curenta a robotului si pe baza acesteia calculeaza o erorare. Modul de calcul pentru eroarea curenta este:
    • daca senzor_dreapta = negru && senzor_stanga = alb → err = 1000
    • daca senzor_dreapta = alb && senzor_stanga = negru → err = -1000
    • daca senzor_dreapta = alb && senzor_stanga = alb → err = 0
  • In functie de eroare, se modifica viteza de rotatie a motorului:
    • err = -1000 → viraj stanga → cresc viteza motorului drept, scad viteza motorului stang(eventual rotesc in sens invers)
    • err = 1000 → viraj dreapta → cresc viteza motorului stang, scad viteza motorului drept(eventual rotesc in sens invers)

Rezultate Obţinute

Datorita proiectului am implementat primul meu robotel. Acesta foloseste un algoritm de control PID, pentru a obtine stabilitate si o viteza mai performanta.

Proiectul poate fi imbunatatit:

  • Hardware:
    • Proiectarea propriului sasiu; mai stabil in viraje
    • Organizarea mai buna a cablajului prin proiectarea propriilor placute integrate
  • Software:
    • Adaugarea mai multor senzori infrarosii(8) pentru ca PID sa fie cat mai precis
    • Utilizarea unor valori diferite pentru constantele Kp, Ki, Kd
    • Utilizarea unor biblioteci speciale: QTRSensors

** </note>

Bibliografie/Resurse

Resurse Hardware

Resurse Software

pm/prj2023/adarmaz/line-follower.1684827920.txt.gz · Last modified: 2023/05/23 10:45 by silviu.popescu0612
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