This shows you the differences between two versions of the page.
pm:prj2021:abirlica:object_following_robot [2021/06/04 00:50] radu_stefan.blejan [Software design] |
pm:prj2021:abirlica:object_following_robot [2021/06/04 02:08] (current) radu_stefan.blejan [Bibliografie/Resurse] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Object Following Robot ======= | ====== Object Following Robot ======= | ||
+ | |||
+ | Autor: Blejan Radu-Stefan 333CC | ||
==== Introducere === | ==== Introducere === | ||
Line 34: | Line 36: | ||
- 4 motoare DC | - 4 motoare DC | ||
- 2 punti H | - 2 punti H | ||
- | - baterie de 9V | + | - 2 baterii de 9V |
- 1 servomotor | - 1 servomotor | ||
- 1 senzor ultrasonic | - 1 senzor ultrasonic | ||
- | - fire | + | - fire jumper + mama-tata |
- breadboard | - breadboard | ||
- 4 roti | - 4 roti | ||
Line 78: | Line 80: | ||
Astfel am setat directia curentului prin fiecare roata si am dat directia masinii. | Astfel am setat directia curentului prin fiecare roata si am dat directia masinii. | ||
+ | |||
+ | Apoi am implementat o functie ce calculeaza distanta determinata de senzorul ultrasonic. | ||
+ | Se trimite un impuls de la senzor. Apoi sunt folosite viteza sunetului și timpul revenirii | ||
+ | impulsului pentru a calcula distanța. | ||
+ | |||
+ | int setDistance() { | ||
+ | digitalWrite(Trig, LOW); | ||
+ | delayMicroseconds(2); | ||
+ | digitalWrite(Trig, HIGH); | ||
+ | delayMicroseconds(20); | ||
+ | digitalWrite(Trig, LOW); | ||
+ | float distance = pulseIn(Echo, HIGH); | ||
+ | distance= distance / 58; | ||
+ | return (int)distance; | ||
+ | } | ||
+ | |||
+ | In final, in cadrul functiei loop() determin constant distantele din stanga si dreapta sevomotorului | ||
+ | pentru a putea deplasa masina dupa un obiect care se misca si in functie de aceste valori, apelez | ||
+ | functiile de deplasare a masinii pentru a respecta traiectoria. | ||
+ | |||
+ | void loop() { | ||
+ | myservo.write(120); | ||
+ | delay(200); | ||
+ | rightDistance = setDistance(); | ||
+ | |||
+ | myservo.write(60); | ||
+ | delay(200); | ||
+ | leftDistance = setDistance(); | ||
+ | |||
+ | if((rightDistance > 50)&&(leftDistance > 50)){ | ||
+ | stop(); | ||
+ | }else if((rightDistance >= 20) && (leftDistance >= 20)) { | ||
+ | forward(); | ||
+ | }else if((rightDistance <= 5) && (leftDistance <= 5)) { | ||
+ | back(); | ||
+ | delay(100); | ||
+ | }else if(rightDistance - 3 > leftDistance) { | ||
+ | left(); | ||
+ | delay(100); | ||
+ | }else if(rightDistance + 3 < leftDistance) { | ||
+ | right(); | ||
+ | delay(100); | ||
+ | }else{ | ||
+ | stop(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | === Activity Diagram === | ||
+ | |||
+ | {{:pm:prj2021:abirlica:activitydiagramblejanradu.png?direct&300|}} | ||
+ | |||
==== Rezultate obtinute ==== | ==== Rezultate obtinute ==== | ||
+ | |||
+ | Poze: | ||
+ | |||
+ | |||
+ | {{:pm:prj2021:abirlica:pozapisoi1.jpg?direct&300|}} | ||
+ | {{:pm:prj2021:abirlica:pozapisoi2.jpg?direct&300|}} | ||
+ | {{:pm:prj2021:abirlica:pozapisoi3.jpg?direct&300|}} | ||
+ | {{:pm:prj2021:abirlica:pozapisoi4.jpg?direct&300|}} | ||
+ | {{:pm:prj2021:abirlica:pozapisoi5.jpg?direct&300|}} | ||
+ | |||
Link video Youtube: https://www.youtube.com/watch?v=hF8JkSknpL0 | Link video Youtube: https://www.youtube.com/watch?v=hF8JkSknpL0 | ||
Line 89: | Line 152: | ||
==== Concluzii ==== | ==== Concluzii ==== | ||
- | TODO | + | Proiectul a fost unul din care am invatat foarte multe. Am intampinat destul |
+ | de multe dificultati, deoarece a fost nevoie de o atentie mare la conectarea | ||
+ | componentelor, fiind nevoit sa folosesc si pinii analogici de pe placuta | ||
+ | Arduino(A0, A1,... A5). | ||
+ | Adevarata provocare dupa crearea masinii si obtinerea controlului asupra fiecarei | ||
+ | roti a fost tratarea corecta a cazurilor pentru distantele senzorului ultrasonic, | ||
+ | deoarece a trebuit sa le adaptez si la dimensiunea obiectului pe care trebuia sa il | ||
+ | urmeze. | ||
+ | Ca si concluzie, a fost o alegere buna, iar realizarea proiectului char mi-a oferit | ||
+ | satisfactie si posibil noi idei pentru proiecte cu Arduino. | ||
- | ==== Download ==== | ||
- | |||
- | TODO | ||
==== Bibliografie/Resurse ==== | ==== Bibliografie/Resurse ==== | ||
- | TODO | + | https://www.youtube.com/watch?v=8Ea_jUQPVrE |
+ | |||
+ | https://randomnerdtutorials.com/complete-guide-for-ultrasonic-sensor-hc-sr04/ | ||
+ | |||
+ | Link pagina ocw: https://ocw.cs.pub.ro/courses/pm/prj2021/abirlica/object_following_robot | ||
+ | |||
+ | Pdf: https://ocw.cs.pub.ro/courses/pm/prj2021/abirlica/object_following_robot?do=export_pdf |