Differences

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

Link to this comparison view

pm:prj2021:abirlica:smart_car [2021/06/03 02:09]
nicusor.slabu
pm:prj2021:abirlica:smart_car [2021/06/03 17:55] (current)
nicusor.slabu
Line 2: Line 2:
 ---- ----
 === Autor === === Autor ===
-Slabu Nicusor Daniel+**Autor**: [[nicusor.slabu@stud.acs.upb.ro|Slabu Nicusor-Daniel]]
 ---- ----
 === Introducere === === Introducere ===
-Tema proiectului este construirea unei masini inteligente care sa evite obstacolele cu ajutorul unui senzor ultrasonic ​sau a unui senzor cu infrarosu.+Tema proiectului este construirea unei masini inteligente care sa evite obstacolele cu ajutorul unui senzor ultrasonic.
  
 ---- ----
Line 108: Line 108:
 **Activity Diagram** **Activity Diagram**
  
-{{:​pm:​prj2021:​abirlica:​activity_diagram_nicusor_slabu_1_.png?​nolink|}}+{{:​pm:​prj2021:​abirlica:​activity_diagram_slabu_2.png?​nolink|}} 
 + 
 +**Biblioteci utilizate** 
 + 
 +  * Biblioteca Servo.h 
 + 
 +Biblioteca Servo.h permite plăcilor Arduino să controleze o varietate mare de servomotoare. Se utilizeaza cu mare atenție timerele, biblioteca poate controla până la 12 servo-uri folosind un singur timer. Servourile standard permit, prin intermediul functiilor din bibliotecă,​ poziționarea axului la mai multe unghiuri, între 0 și 180 de grade. Poziționarea la un anumit unghi se realizează cu ajutorul funcției write cu parametrul reprezentând unghiul la care dorim să fie poziționat servo-ul. 
 + 
 +În cadrul proiectului,​ servomotorul este folosit pentru mișcarea senzorului ultrasonic în stânga sau în dreapta, pentru a detecta direcția în care să se redirecționeze mașina la momentul detectării unui obstacol în față. Senzorul ultrasonic este fixat pe elicea de la servo pentru a se mișca odată cu aceasta. 
 + 
 +  * Biblioteca NewPing.h 
 + 
 +Este o bibliotecă ce facilitează lucrul cu senzori ultrasonici prin punerea la dispoziție a mai multe funcții ușor de folosit în orice proiect ce implică folosirea acestor senzori. Principala funcție folosită în proiect este ping_cm() care citește distanța până la cel mai apropiat obiect din fața senzorului ultrasonic și returnează valoarea acesteia în centimetri. 
 + 
 +**Explicații Cod** 
 + 
 +În primă fază se declară toate variabilele necesare pentru ca programul să funcționeze,​ și anume: pinii de control pentru L298N, pinii folosiți de senzor (A1 și A2), 2 obiecte de tip NewPing(pentru citirea distanțelor) și Servo (pentru servomotor). 
 + 
 +În partea de setup() se configurează pinii de output (cei corespunzători motoarelor),​ se atașează variabila de tip Servo pinului 10 iar apoi se poziționează axul servo-ului la un unghi care să permită senzorului să citească distanțe în fața mașinii, pe direcția și sensul de mers ale acesteia. 
 + 
 +În loop() comportamentul implicit al mașinii este să meargă cu fața până se va citi o distanță mai mică de 30cm față de obiectul din față, moment în care se va apela funcția moveStop(), ce oprește mașina, se va apela apoi moveBackward() ce va face mașina să meargă cu spatele și apoi din nou moveStop(). Se vor folosi apoi funcțiile lookRight() și lookLeft() pentru a citi distanțe față de posibilele obstacole din stânga și din dreapta mașinii. Mașina se va redirecționa apoi spre direcția în de care s-a detectat o distanță mai mare față de obiect și va repeta procesul descris mai sus. 
 + 
 +lookRight() și lookLeft() -> scriu valorile 30, respectiv 150 pe servo, citesc distanța iar apoi repoziționează servomotorul la un unghi de 95 grade (cel implicit, pentru direcția înainte). 
 + 
 +turnRight(),​ turnLeft(), moveStop(), moveBackward(),​ moveForward() -> setează pinii motoarelor pe HIGH/LOW în funcție de acțiunea dorită, de exemplu pentru turnRight() motoarele din stânga față și dreapta spate sunt puse pe HIGH, iar celelalte pe LOW. 
 + 
 +readDistance() - citește distanța în cm față de obiectul din fața senzorului ultrasonic. 
 + 
 + 
 +---- 
 + 
 +=== Rezultate Obținute === 
 + 
 +{{:​pm:​prj2021:​abirlica:​img_smart_car1.jpg?​nolink&​300|}} 
 + 
 +{{:​pm:​prj2021:​abirlica:​img_smart_car2.jpg?​nolink&​300|}} 
 + 
 +{{:​pm:​prj2021:​abirlica:​img_smart_car3.jpg?​nolink&​300|}} 
 + 
 +{{:​pm:​prj2021:​abirlica:​img_smart_car5.jpeg?​nolink&​300|}} 
 + 
 +{{:​pm:​prj2021:​abirlica:​img_smart_car6.jpg?​nolink&​300|}} 
 + 
 +Demo: 
 +https://​www.youtube.com/​watch?​v=2HusaWvKI6A
  
  
Line 114: Line 158:
 === Bibliografie/​Resurse === === Bibliografie/​Resurse ===
  
-{{:​pm:​prj2021:​abirlica:​smart_car.pdf|}}+  * https://​www.youtube.com/​watch?​v=4CFO0MiSlM8&​t=278s 
 +  * https://​www.youtube.com/​watch?​v=etVX0XkBX4o&​t=2s 
 +  * https://​www.youtube.com/​watch?​v=r9MGJ16pRLc&​t=497s 
 +  * https://​www.fierceelectronics.com/​sensors/​what-ultrasonic-sensor 
 +  * **PDF Pagina:​** ​{{:​pm:​prj2021:​abirlica:​smart_car_doc.pdf|}} 
 + 
 +<​note>​Link către pagina: https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​abirlica/​smart_car </​note>​ 
 + 
  
  
pm/prj2021/abirlica/smart_car.1622675368.txt.gz · Last modified: 2021/06/03 02:09 by nicusor.slabu
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