This is an old revision of the document!


Line follower

Introducere

Inspirație

Inspirația a avut un număr de surse cu care am interacționat de-a lungul timpului:

  • existența ideii că un proiect de line follower este o bună inițiere în zona de robotică, fiind un bun proiect hardware + software.
  • mai multe demos / tutoriale de pe Youtube despre cum poți realiza un line follower precis.
  • un curs de IA (anul 4) la care eu am participat, unde s-a vorbit despre algoritmi euristici (pe partea de software).

Idee

Proiectul constă în realizarea unui robot de tipul line follower care să urmărească o linie/curbă plană desenată cu negru pe un plan alb, controlul realizându-se la nivel software. De asemenea, robotul dispune și de un senzor de distanță ultrasonic cu ajutorul căruia poate evita obstacolele întâlnite pe traseu.

Descriere generală

Robotul va consta dintr-un microcontroller (Arduino UNO) așezat pe un suport, împreună cu un servomotor SG90 care va dezvolta puterea necesară pentru roți (pentru deplasarea robotului). Pentru a detecta dacă traseul urmat de robot este corect, robotul dispune de 2 senzori (fotorezistori) care au rolul de a indica dacă sub fiecare dintre ei există o linie neagră sau nu. Dacă este o linie neagră, atunci robotul se va deplasa în direcție opusă față de poziția senzorului. Mișcarea va fi îmbunătățită cu ajutorul unui regulator implementat în software (PID). Scopul este ca robotul nostru să parcurgă complet o curbă plană închisă cu diverse grade de curbură (testarea controlului implementat într-o situație reală). Robotul va dispune și de 2 LED-uri (unul roșu și unul verde) pentru a indica dacă robotul urmează traseul dorit sau nu.

Hardware Design

Pentru realizarea proiectului am folosit următoarele componente:

  • Arduino UNO / Atmega328P
  • un șasiu de plastic, împreună cu 2 motoare de curent continuu (5V)
  • 2 benzi cu câte 3 senzori în infraroșu (IR) (QTR-3A)
  • 4 baterii/acumulatori de curent continuu (1.5V fiecare) împreună cu un suport.
  • driver MX1508 pentru a realiza controlul motoarelor folosind PWM.
  • fire (mamă-tată și tată-tată)
  • mini breadboards (folosite pentru driver, senzorul ultrasonic și cei 2 senzori în infraroșu).

Aici avem design-ul hardware și schema electrică a sistemului nostru, conform cu cele descrise mai sus (am înlocuit driver-ul MX1508 cu un driver standard, L298D pentru care am realizat legăturile pe pinii comuni, și cele 2 benzi de senzori cu 6 senzori de infraroșu generici din Tinkercad):

Schema electrică este următoarea: proiect_pm_line_follower_electric_scheme.pdf

Software Design

Funcționarea din punct de vedere software a proiectului este descrisă în următoarea diagramă:

În partea de setup am realizat inițializarea senzorilor (pe pinii pe care au fost conectați) și calibrarea senzorilor de infraroșu, cu ajutorul bibliotecii QTRSensors. În partea de loop, se determină eroarea amplasării liniei față de cei 6 senzori dispuși 3 câte 3, iar apoi modificarea efectivă în vitezele celor două motoare se determină folosind un regulator PID (proporțional integrativ derivativ), astfel: modificarea va fi reprezentată de o sumă de 3 termeni, dintre care: * primul reprezintă un termen proporțional cu eroarea avută (regulator proporțional). * al doilea reprezintă un termen proporțional cu derivata erorii (calculată ca derivată discretă, adică diferența dintre eroarea de la pasul curent și eroarea de la iterația anterioară). * al treilea reprezintă un termen proporțional cu integrala erorii (calculată ca integrală discretă - suma erorilor anterioare).

Rezultate Obţinute

Concluzii

Download

Jurnal

06.05.2023: Schița documentației (to be continued).

Bibliografie/Resurse

pm/prj2023/gpatru/line_follower.1685418689.txt.gz · Last modified: 2023/05/30 06:51 by alexandru.buzea2007
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