Line Follower

Introducere

Robot capabil să urmărească o linie neagră pe fundal alb.

Descriere generală

Proiectul constă în realizarea unui robot ce va urmări o linie neagră și va putea detecta dacă este un obstacol în fața lui.

Componentele robotelului vor fi montate pe platforma. Pe partile platformei vor fi atasate 2 roti, puse in miscare de 2 motoare si inca o roata mai mica in fata. Senzorii IR aflati pe partea din fata vor transmite informatii despre traseu catre placuta. Microcontroller-ul decide care este directia de deplasare a robotelului, controland cele 2 motoare prin intermediul driver-ului.

Hardware Design

Componente:

Schema:

Alimentare

  • Robotelul este alimentat de o baterie de 9V. Am folosit si un switch pentru a porni si opri robotelul.

Conectare Modul cu driver L298N

  • Acesta este alimentat cu 9V de la baterie si asigura alimentarea placutei Arduino cu 5V.
  • Cele doua motoare sunt conectate la modul la cei 4 pini de output. Iar pinii de input sunt legati la pinii placutei Arduino.
  • Folosesc si pinii pentru controlul vitezei (ENA si ENB) conectati la pinii 10, respectiv 9 ai placutei.

Conectare Senzori IR

  • Cei doi senzori au conectati pinii de GND si VCC la GND si 5V de pe Arduino. Si pentru a citi valorile de la senzori, pinii D0 sunt conectati la pinii placutei (senzorul din dreapta la 8 si cel din stanga la 12).

Conectare Senzor HC-SR04

  • Senzorul are conectati pinii de GND si VCC la fel ca senzorii IR, iar pinul de trig la pinul 7 si pinul de echo la pinul 6.

Software Design

Pentru partea software am folosit mediul de dezvoltare Arduino.

Functionare

Pinii folositi si variabilele sunt declarate si initializate la inceputul programului.

In setup() sunt setati

  • pinii de input (pinii senzorilor IR si echo pinul senzorului HC-SR04)
  • pinii de output (pinii ce controleaza motoarele, vitezele motoarelor si trig pinul senzorului HC-SR04)

In loop()

  • La inceput se masoara distanta la care detecteaza senzorul HC-SR04 un obstacol. Si se citesc valorile senzorilor IR.
  • In functie de valorile celor doi senzori IR apar 4 situatii:
  1. robotelul merge inainte daca senzorii nu au detectat linia
  2. robotelul vireaza la dreapta daca senzorul din dreapta a detectat linia
  3. robotelul vireaza la stanga daca senzorul din stanga a detectat linia
  4. robotelul se opreste atunci cand ambii senzori detecteaza linia.
  • Se verifica daca in fata se afla un obiect la o distanta mai mica de stop_distance. Daca se detecteaza un obstacol, robotelul se va misca putin in spate, se va intoarce pana cand detecteaza din nou linia si va continua deplasarea pe traseu.

Functiile turnWhenObstacleLeft() si turnWhenObstacleRight()

  • La apelul lor robotelul se deplaseaza putin in spate, se opreste si se intoarce revenind la traseu.

Functiile backward(), forward(), turnLeft(), turnRight() si endStop()

  • Se seteaza viteza cu care se va realiza miscarea si se schimba valorile pinilor corespunzatori motoarelor.

Rezultate Obţinute

Concluzii

A fost prima oara cand am lucrat la un proiect hardware. Am intampinat cateva dificultati la lucrul cu senzorii IR, dar am rezolvat destul de repede prin reglarea potentiometrului acestora asftel incat sa detecteze corect linia neagra. In concluzie, a fost un proiect interesant, a fost placut sa lucrez la el si sunt multumita de rezultatul final.

Download

Jurnal

  • 25-04 : alegere tema si creare pagina wiki
  • 11-05 – 17-05 : comandat piese
  • 21-05 – 23-05 : asamblare hardware, implementarea componentei software si testare
  • 26-05 – 27-05 : construire pista si adaugarea optiunii de detectare obstacole
  • 28-05: finalizare proiect (pagina de wiki + demo)

Bibliografie

pm/prj2021/apredescu/linefollower.txt · Last modified: 2021/06/02 13:09 by monica.pricope
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