Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:apredescu:linefollower [2021/06/01 22:17]
monica.pricope [Concluzii]
pm:prj2021:apredescu:linefollower [2021/06/02 13:09] (current)
monica.pricope [Software Design]
Line 24: Line 24:
 | Breadboard | https://​cleste.ro/​breadboard-mini-170-puncte.html | | Breadboard | https://​cleste.ro/​breadboard-mini-170-puncte.html |
  
 +**Schema:**
 + 
 {{:​pm:​prj2021:​apredescu:​pricope_monica_331cc_schema.jpg?​800|}} {{:​pm:​prj2021:​apredescu:​pricope_monica_331cc_schema.jpg?​800|}}
 +
 +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 ===== ===== Software Design =====
 Pentru partea software am folosit mediul de dezvoltare Arduino. Pentru partea software am folosit mediul de dezvoltare Arduino.
  
-Senzorii IR pozitionati in partea din fata a robotelului (unul in dreapta, celalalt in stanga) au rolul de a detecta linia neagra ​si de a regla pozitia robotelului+== Functionare == 
 +  
 +Pinii folositi ​si variabilele sunt declarate si initializate la inceputul programului
  
-Cele doua motoarea ​sunt controlate cu ajutorul modulului cu driver, ce are cei 4 pini de input conectati la placuta, iar pinii de output ​la motoare. ​+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)
  
-Astfel in functie de informatiile primite de la cei doi senzori ​se schimba valorile acestor ​pini, corespunzatori motoarelor astfel incat robotelul ​sa mearga ​inainte, sa vireze ​la dreapta daca senzorul din dreapta a detectat linia, sa vireze ​la stanga daca senzorul din stanga a detectat linia si sa se opreasca ​atunci cand ambii senzori detecteaza linia. ​Pentru aceste 4 situatii am implementat 4 functii care sunt apelate corespunzator+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 situatii:  
 +  - robotelul ​merge inainte ​daca senzorii nu au detectat linia  
 +  - robotelul vireaza ​la dreapta daca senzorul din dreapta a detectat linia 
 +  - robotelul vireaza ​la stanga daca senzorul din stanga a detectat linia 
 +  - 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
  
-Pe langa cei doi senzori IR, folosesc ​si un senzor HC-SR04 pentru a detecta daca sunt obstacole in fata. 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 si se va intoarce ​reluandu-si traseul+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.
  
-Cu ajutorul modulului cu driver controlez si viteza cu care se deplaseaza robotelul: atunci cand merge inainte sau inapoi, cand vireaza sau cand se intoarce. 
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
Line 54: Line 85:
   * Documentația în format: <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​PDF</​a></​html>​   * Documentația în format: <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​PDF</​a></​html>​
   * Cod sursa: {{:​pm:​prj2021:​apredescu:​pricope_monica_331cc_codsursa.zip|}}   * Cod sursa: {{:​pm:​prj2021:​apredescu:​pricope_monica_331cc_codsursa.zip|}}
 +===== 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 ===== ===== Bibliografie =====
   * Conectare senzor HC-SR04: https://​create.arduino.cc/​projecthub/​Isaac100/​getting-started-with-the-hc-sr04-ultrasonic-sensor-036380   * Conectare senzor HC-SR04: https://​create.arduino.cc/​projecthub/​Isaac100/​getting-started-with-the-hc-sr04-ultrasonic-sensor-036380
   * Conectare modul driver: https://​www.youtube.com/​watch?​v=OkHR1BZCcqA&​ab_channel=TeamPsi   * Conectare modul driver: https://​www.youtube.com/​watch?​v=OkHR1BZCcqA&​ab_channel=TeamPsi
  
pm/prj2021/apredescu/linefollower.1622575040.txt.gz · Last modified: 2021/06/01 22:17 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