Line Follower

Nume: Dinu Simina-Cristiana
Grupa: 332CC

Introducere

Scopul acestui proiect este implementarea unei masinute “Line Follower” care se deplaseaza numai pe un traseu predefinit, urmarind o linie neagra care este detectata cu ajutorul senzorilor infrarosi. Atunci cand linia se termina sau este intrerupta, masina se opreste din mers.

Descriere generală

Schema bloc:
untitled_diagram.jpg

Robotul este echipat cu o placuta Arduino UNO, care controleaza miscarea acestuia. Cele doua module IR, ajustate de un servo-motor, detecteaza linia neagra. Rotile motor și cea mobila permit deplasarea robotului, iar driver-ul motor controleaza viteza si directia rotilor motoare. Sasiul ofera stabilitate, iar switch-ul permite pornirea și oprirea robotului.
In ansamblu, aceste componente permit robotului sa urmareasca linia cu precizie.

Hardware Design

Componente:

  • Arduino UNO x1
  • Servo-motor x2
  • Driver motor x1
  • Modul senzor IR x2
  • Roata motor x2
  • Roata mobila x1
  • Sasiu x1
  • Switch x1
  • Fire de legatura

Schema electrica:
linefollower_schema_electrica.jpg

Software Design

Descrierea codului aplicaţiei (firmware):

  • Pentru a scrie codul am folosit Arduino IDE 2.1.0
  • Librarii folosite:
    1. Am avut nevoie de libraria Adafruit Motor Shield, necesara datorita driver-ului de motoare folosit (L293D). Cu ajutorul ei am declarat motoarele astfel:
      1. AF_DCMotor motor1(1, MOTOR12_1KHZ); (motorul stang)
      2. AF_DCMotor motor2(4, MOTOR34_1KHZ); (motorul drept)
    2. Pentru contrulul motoarelor am folosit urmatoarele functii:
      1. setSpeed()
      2. run(FORWARD) si run(RELEASE)
    3. Pentru a stii daca robotul trebuie sa se deplaseze in fata/stanga/dreapta sau sa se opreasca, am verificat senzorii astfel:
      1. daca ambii senzori au valoarea 0, atunci linia neagra se afla intre senzori si robotul trebuie sa se deplaseze drept, iar in acest caz apeleaza functia run() implementata de mine;
      2. daca ambii senzori au valoarea 1, inseamna ca ambii senzori se afla pe linia neagra, iar robotul apeleaza functia Stop() pentru a se opri;
      3. daca senzorul drept are valoarea 1 si senzorul stang are valoarea 0, atunci robotul trebuie sa faca dreapta, apeland functia right();
      4. daca senzorul stang are valoarea 1 si senzorul drept are valoarea 0, atunci robotul trebuie sa faca stanga, apeland functia left().

Rezultate Obţinute

Poze rezultat final:
poze_masina.jpg

Download

Codul complet si video cu rezultatul final:
cod_video.zip

Jurnal

  1. 20.04.2023 Alegere tema proiect
  2. 04.05.2023 Comandare piese
  3. 05.05.2023 Primire piese
  4. 07.05.2023 Realizare milestone 1
  5. 17.05.2023-19.05.2023 Asamblare robot
  6. 21.05.2023 Realizare milestone 2
  7. 22.05.2023 Construire pista robot
  8. 22.05.2023-27.05.2023 Implementare software
  9. 28.05.2023 Finalizare pagina wiki

Bibliografie/Resurse

pm/prj2023/ndrogeanu/linefollower.txt · Last modified: 2023/05/29 13:34 by simina.dinu
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