This shows you the differences between two versions of the page.
pm:prj2022:avaduva:robot4wd [2022/05/27 22:42] mihai.cojocaru2510 [Download] |
pm:prj2022:avaduva:robot4wd [2022/06/02 10:19] (current) mihai.cojocaru2510 [Descriere generală] |
||
---|---|---|---|
Line 12: | Line 12: | ||
**Schema bloc** | **Schema bloc** | ||
- | {{:pm:prj2022:avaduva:diagramarobot.png?700|}} | + | {{:pm:prj2022:avaduva:diagrama_electrica_robot.png?700|}} |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 31: | Line 31: | ||
* #include <NewPing.h> -> pentru senzorul cu ultrasunete | * #include <NewPing.h> -> pentru senzorul cu ultrasunete | ||
+ | ===== Rezultatul final ====== | ||
- | ===== Concluzii ===== | + | [[https://youtu.be/mIZX9p4thOE|DEMO]] |
- | ===== Download ===== | + | {{:pm:prj2022:avaduva:asasdasdasdasd.jpg?700|}} |
+ | {{:pm:prj2022:avaduva:mihaitajrr.jpg?700|}} | ||
- | <note warning> | + | ===== Download ===== |
+ | <note important> | ||
+ | {{:pm:prj2022:avaduva:obstacle_robot.rar|}} | ||
</note> | </note> | ||
Line 43: | Line 47: | ||
- | <note tip> | + | <note> |
+ | |||
+ | Etape: | ||
+ | -21/04/2022: Incarcarea primului Milestone | ||
+ | -27/04/2022: Asamblarea proiectului | ||
+ | -28/04/2022: Crearea codului | ||
+ | -26/05/2022: Finalizare proiect: filmat, fotografiat, documentatie. | ||
- | Lista piese: | ||
- | -Arduino UNO R3 | ||
- | -Modul senzor de frecventa cardiaca, puls, oximetru, MAX30100 | ||
- | -LCD I2C | ||
- | -BreadBoard | ||
- | -Jumper Wires | ||
</note> | </note> | ||
+ | |||
+ | ===== Cod ===== | ||
+ | |||
+ | #include <NewPing.h> | ||
+ | |||
+ | const int RF = 6; | ||
+ | const int RB = 7; | ||
+ | const int LF = 5; | ||
+ | const int LB = 4; | ||
+ | |||
+ | #define trig 12 | ||
+ | #define echo 13 | ||
+ | |||
+ | #define max_dist 200 | ||
+ | boolean check = false; | ||
+ | int dist = 100; | ||
+ | |||
+ | NewPing sonar(trig, echo, max_dist); | ||
+ | |||
+ | void setup(){ | ||
+ | |||
+ | pinMode(LF, OUTPUT); | ||
+ | pinMode(RF, OUTPUT); | ||
+ | pinMode(RB, OUTPUT); | ||
+ | pinMode(LB, OUTPUT); | ||
+ | | ||
+ | dist = readPing(); | ||
+ | delay(100); | ||
+ | } | ||
+ | |||
+ | void loop(){ | ||
+ | |||
+ | moveForward(); | ||
+ | | ||
+ | if (dist <= 35){ | ||
+ | moveStop(); | ||
+ | delay(300); | ||
+ | moveBackward(); | ||
+ | delay(700); | ||
+ | moveStop(); | ||
+ | delay(300); | ||
+ | int distance = look(); | ||
+ | |||
+ | if (dist >= distance){ | ||
+ | turnRight(); | ||
+ | moveStop(); | ||
+ | } | ||
+ | else{ | ||
+ | moveForward(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | dist = readPing(); | ||
+ | |||
+ | } | ||
+ | |||
+ | int look(){ | ||
+ | int distance = readPing(); | ||
+ | delay(100); | ||
+ | return distance; | ||
+ | delay(100); | ||
+ | } | ||
+ | |||
+ | int readPing(){ | ||
+ | delay(70); | ||
+ | int cm = sonar.ping_cm(); | ||
+ | if (cm==0){ | ||
+ | cm=250; | ||
+ | } | ||
+ | return cm; | ||
+ | } | ||
+ | |||
+ | void moveStop(){ | ||
+ | | ||
+ | digitalWrite(LF, LOW); | ||
+ | digitalWrite(RF, LOW); | ||
+ | digitalWrite(LB, LOW); | ||
+ | digitalWrite(RB, LOW); | ||
+ | } | ||
+ | |||
+ | void moveForward(){ | ||
+ | |||
+ | if(!check){ | ||
+ | |||
+ | check=true; | ||
+ | | ||
+ | digitalWrite(RF, HIGH); | ||
+ | digitalWrite(LF, HIGH); | ||
+ | digitalWrite(LB, LOW); | ||
+ | digitalWrite(RB, LOW); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void moveBackward(){ | ||
+ | |||
+ | check=false; | ||
+ | |||
+ | digitalWrite(RF, LOW); | ||
+ | digitalWrite(LF, LOW); | ||
+ | digitalWrite(LB, HIGH); | ||
+ | digitalWrite(RB, HIGH); | ||
+ | | ||
+ | } | ||
+ | |||
+ | void turnRight(){ | ||
+ | |||
+ | digitalWrite(RF, HIGH); | ||
+ | digitalWrite(LB, HIGH); | ||
+ | | ||
+ | digitalWrite(RB, LOW); | ||
+ | digitalWrite(LF, LOW); | ||
+ | | ||
+ | delay(500); | ||
+ | | ||
+ | digitalWrite(LF, HIGH); | ||
+ | digitalWrite(RF, HIGH); | ||
+ | | ||
+ | digitalWrite(LB, LOW); | ||
+ | digitalWrite(RB, LOW); | ||
+ | |||
+ | | ||
+ | | ||
+ | } | ||
+ | ===== Concluzii ===== | ||
+ | |||
+ | Chiar daca proiectul pe care l-am ales nu este unul dificil pot spune ca am avut ce invata din acest proiect. Am invatat cum sa folosesc driverul L298N cu ajutorul unor videoclipuri de pe Youtube in care se faceau proiecte asemanatoare cu ale mele. | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
<note> | <note> | ||
+ | -[[https://www.youtube.com/watch?v=iajyaWi1Ln4&t=2752s|]] | ||
+ | -[[https://create.arduino.cc/projecthub/now/l298n-motor-module-service-ba0f56?ref=search&ref_id=l298n&offset=0]] | ||
+ | -[[https://www.youtube.com/watch?v=dyjo_ggEtVU]] | ||
</note> | </note> | ||
<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> |