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]] |
+ | |||
+ | {{:pm:prj2022:avaduva:asasdasdasdasd.jpg?700|}} | ||
+ | {{:pm:prj2022:avaduva:mihaitajrr.jpg?700|}} | ||
===== Download ===== | ===== Download ===== | ||
+ | <note important> | ||
+ | {{:pm:prj2022:avaduva:obstacle_robot.rar|}} | ||
+ | </note> | ||
+ | |||
+ | ===== Jurnal ===== | ||
+ | |||
+ | |||
+ | <note> | ||
- | <note warning> | ||
Etape: | Etape: | ||
-21/04/2022: Incarcarea primului Milestone | -21/04/2022: Incarcarea primului Milestone | ||
Line 43: | Line 54: | ||
-28/04/2022: Crearea codului | -28/04/2022: Crearea codului | ||
-26/05/2022: Finalizare proiect: filmat, fotografiat, documentatie. | -26/05/2022: Finalizare proiect: filmat, fotografiat, documentatie. | ||
+ | |||
</note> | </note> | ||
- | ===== Jurnal ===== | ||
+ | ===== Cod ===== | ||
- | <note tip> | + | #include <NewPing.h> |
- | Lista piese: | + | const int RF = 6; |
- | -Arduino UNO R3 | + | const int RB = 7; |
- | -Modul senzor de frecventa cardiaca, puls, oximetru, MAX30100 | + | const int LF = 5; |
- | -LCD I2C | + | const int LB = 4; |
- | -BreadBoard | + | |
- | -Jumper Wires | + | #define trig 12 |
- | </note> | + | #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> |