Differences

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

Link to this comparison view

pm:prj2023:alucaci:line_follower [2023/05/30 13:41]
robert_mihai.adam [Bibliografie/Resurse]
pm:prj2023:alucaci:line_follower [2023/05/30 13:54] (current)
robert_mihai.adam [Software Design]
Line 23: Line 23:
 Libraria AccelStepper am folosit-o pentru stepper. Libraria AccelStepper am folosit-o pentru stepper.
  
-Care este flow-ul robotului?+**Care este flow-ul robotului?** 
 Acesta calculeaza initial distanta din pozitia in care este el situati initial. Daca aceasta este mai mica decat 7.5 cm si totodata este mai mare decat 6mm atunci merge inainte. minimul de 6mm am pus-o deoarece daca in fata se afla un zid, acesta nu poate fi taiat, si automat v-a ramane acolo constant. Acesta calculeaza initial distanta din pozitia in care este el situati initial. Daca aceasta este mai mica decat 7.5 cm si totodata este mai mare decat 6mm atunci merge inainte. minimul de 6mm am pus-o deoarece daca in fata se afla un zid, acesta nu poate fi taiat, si automat v-a ramane acolo constant.
 Daca nu respecta conditia de mai sus, atunci robotul nostru trebuie sa-si schimbe sensul, si pentru asta el face o rotatie in stanga si in dreapta, in urma caruia extrage distanta minima pana la primul obiect intalnit in ambele directii, si apoi isi seteaza directia catre zona respectiva. Directia respectiva trebuie sa fie mai mare totodata decat 1.5 cm. Dupa ce se seteaza directia se repeta tot procesul descris mai sus. Daca nu respecta conditia de mai sus, atunci robotul nostru trebuie sa-si schimbe sensul, si pentru asta el face o rotatie in stanga si in dreapta, in urma caruia extrage distanta minima pana la primul obiect intalnit in ambele directii, si apoi isi seteaza directia catre zona respectiva. Directia respectiva trebuie sa fie mai mare totodata decat 1.5 cm. Dupa ce se seteaza directia se repeta tot procesul descris mai sus.
  
-Functiile ​implementate ​de mine sunt urmatoarele:​ +**Functii ​implementate** 
-run_step_motor() -  seteaza cat sa se roteasca elicea(motorasul) in acea secunda + 
-move_backmove_forwardrotate_leftrotate_right ​- deplaseaza ​masinuta ​in fata/spate sau rotesc ​in stanga/​dreapta +run_step_motor() -  seteaza cat sa se roteasca elicea(motorasul) in acea secunda, ​acesta isi muta pozitia foarte putin in acea secundaastfel incat sa nu blocheze restul de functionalitati. Practic daca as vrea sa faca o rotatie completaar dura destul de mult (3,4 secunde) si robotul impreuna cu senzorul ultrasonic ar ramane setati pe comenzile anterioare, fara sa-si calibreze directia 
-step_left, step_right - implementeaza logica pentru scanarea zonei din stanga/​dreapta,​ si acestea returneaza totodata distanta catre cel mai apropiat obiect.+ 
 +move_forward() ​- deplaseaza ​masina ​in fata, atunci cand distana este conform asteptarilor noastre 
 + 
 +move_back() - deplaseaza masina in spate atunci cand obiectul curent e prea departe/​prea aproape. Am decis sa fac sa mearga in spate pentru a reusii sa scaneze un perimetru mai accurate, decat sa existe sanseze sa scaneze de 2 ori acelasi obiect. 
 + 
 +rotate_left(),​ rotate_right() - roteste masina ​in stanga/respectiva in dreapta 
 + 
 +step_left(), step_right() - implementeaza logica pentru scanarea zonei din stanga/​dreapta,​ si acestea returneaza totodata distanta catre cel mai apropiat obiect. ​Pe baza acelei distante se calculeaza un minim in loop, si distanta minima va reprezenta totodata si directia in care se va duce robotelul 
 + 
 +calculate_distance() -  reprezinta functia de calculare a distantei de la senzorul ultrasonic la cel mai apropiat obiect
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
Line 48: Line 58:
  
 Datasheet Arduino Uno: https://​docs.arduino.cc/​resources/​datasheets/​A000066-datasheet.pdf Datasheet Arduino Uno: https://​docs.arduino.cc/​resources/​datasheets/​A000066-datasheet.pdf
 +
 Utilizare si cum functioneaza senzorul ultrasonic: https://​howtomechatronics.com/​tutorials/​arduino/​ultrasonic-sensor-hc-sr04/​ Utilizare si cum functioneaza senzorul ultrasonic: https://​howtomechatronics.com/​tutorials/​arduino/​ultrasonic-sensor-hc-sr04/​
 +
 +Conectarea motorului https://​howtomechatronics.com/​tutorials/​arduino/​arduino-dc-motor-control-tutorial-l298n-pwm-h-bridge/​
 +
 +Conectarea stepper motororului:​ https://​lastminuteengineers.com/​28byj48-stepper-motor-arduino-tutorial/​
 +
 +Rularea stepper motorului in paralel cu restul functionalitatiilor:​ https://​forum.arduino.cc/​t/​moving-two-stepper-motors-in-parallel-at-different-speeds/​531642
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2023/alucaci/line_follower.1685443295.txt.gz · Last modified: 2023/05/30 13:41 by robert_mihai.adam
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