Differences

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

Link to this comparison view

pm:prj2021:abirlica:robot_ocolitor_de_obstacole [2021/05/30 23:34]
daniel.asimionesei
pm:prj2021:abirlica:robot_ocolitor_de_obstacole [2021/05/31 15:31] (current)
daniel.asimionesei [Rezultate Obţinute]
Line 120: Line 120:
 produce mişcare, ele nu pot fi conectate direct la ieşirile (pinii) unui microcontroller. Se produce mişcare, ele nu pot fi conectate direct la ieşirile (pinii) unui microcontroller. Se
 impune separarea semnalelor de comandă de circuitul de putere, şi acest lucru se realizează impune separarea semnalelor de comandă de circuitul de putere, şi acest lucru se realizează
-prin folosirea punnilor H (“H bridges”).  +prin folosirea punnilor H (“H bridges”). ​\\ 
-L-am ales pentru ca: +L-am ales pentru ca:\\ 
-1) Orientarea câmpului are loc prin intermediul comutatorului mecanic +1) Orientarea câmpului are loc prin intermediul comutatorului mecanic\\ 
-2) Variabilele de control sunt Curentul de curent și Curentul de câmp, măsurate DIRECT de la motor +2) Variabilele de control sunt Curentul de curent și Curentul de câmp, măsurate DIRECT de la motor\\ 
-3) Controlul cuplului este direct +3) Controlul cuplului este direct\\ 
-4) Control precis și rapid al cuplului +4) Control precis și rapid al cuplului\\ 
-5) Răspuns înalt de viteză dinamică +5) Răspuns înalt de viteză dinamică\\ 
-6) Simplu de controlat +6) Simplu de controlat\\ 
-7) Tensiunea de lucru a motorului: 3-6V+7) Tensiunea de lucru a motorului: 3-6V\\
  
   * Jumper wires   * Jumper wires
Line 137: Line 137:
  
 Am folosi puntea duală L298N Dual H-Bridge, pentru ca este Am folosi puntea duală L298N Dual H-Bridge, pentru ca este
-capabilă să actioneze două motoare DC în acelaşi timp.+capabilă să actioneze două motoare DC în acelaşi timp.\\
  
   * breadboard ​   * breadboard ​
   * Motor Servo   * Motor Servo
 +Am ales Servo motor-ul pentru ca are rotatii partiale, stabile şi
 +controlate, pentru efectuarea unor operatii cu amplitudine mică dar cu precizie ridicată.
 +Folosesc acet motor pentru pozitionarea senzorului ultrasonic.\\
   * Battery   * Battery
-  * Leduri+
 \\ \\
 {{:​pm:​prj2021:​abirlica:​tinker_schema.jpg?​500|}}\\ {{:​pm:​prj2021:​abirlica:​tinker_schema.jpg?​500|}}\\
Line 193: Line 196:
 Servo-urile standard permit poziționarea arborelui în diferite unghiuri, de obicei între 0 și 180 de grade.\\ Servo-urile standard permit poziționarea arborelui în diferite unghiuri, de obicei între 0 și 180 de grade.\\
 Servomotoarele de rotație continuă permit reglarea rotației arborelui la diferite viteze.\\ Servomotoarele de rotație continuă permit reglarea rotației arborelui la diferite viteze.\\
-Pe alte plăci decât Megautilizarea bibliotecii dezactivează funcționalitatea analogWrite ()\\ +La Arduino Unoaceastă bibliotecă va dezactiva ​PWM pe pinii 9 şi 10, 
-(PWMpe pinii 9 și 10, indiferent ​dacă există sau nu un Servo pe acei pini.+indiferent ​de câte motoare se folosesc. \\ 
 +Functii folosite din biblioteca:​\\ 
 +1) servo.attach(pin) - atașează obiectul Servo la pini \\ 
 +-> servo: ​un obiect instanță a clasei ​Servo\\ 
 +-> pin: numărul pinului digital unde va fi atașat semnalul pentru motorul Servo\\ 
 +2)servo.write (angle) – scrie o valoare (0 .. 180) către servo, controlând mișcarea:​\\ 
 +Pentru Servo standard setează unghiul axului (grade) cauzând motorul să se \\ 
 +orienteze în direcția specificată. \\ 
 +**Functiile principace ale codului sursa:​**\\ 
 +void setup() -> setez valorile pinilor pentru senzorul ultrasonic, servomotor si driver motor, masor distanta initiala si setez pozitia servo motoru-lui la 125 grade;\\ 
 +void loop() -> logica programului ilustrata in diagrama de activitati;​\\ 
 +void leftRotate() -> rotesc roata din dreapta (pun pinii corespunzatori rotii din dreapta ​pe HIGH si pinii rotii din stanga pe LOW);\\ 
 +void rightRotate() -> rotesc roata din stanga (pun pinii corespunzatori rotii din stanga pe HIGH si pinii rotii din dreapta pe LOW);\\ 
 +void start_back_robot() -> rotesc rotile in sens invers acului de ceasornic;​\\ 
 +void start_front_robot() -> rotesc rotile in sensul acului de ceasornic;​\\ 
 +void stop_robot() -> pun toti pinii asociati rotilor pe LOW;\\ 
 +int leftDistance() -> rotesc servo motorul la 180 grade si calculez distanta pana la cel mai apropiat obiect din stanga pe baza functiei readDistance();​\\ 
 +int rightDistance() -> rotesc servo motorul la 55 grade si calculez distanta pana la cel mai apropiat obiect din dreapta pe baza functiei readDistance();​\\ 
 +int readDistance() -> calculez, folosind functia pulseIn(), lungimea impulsului în microsecunde si folosind formula distance = (duration/​2) / 29.1, calculez distanta parcursa de unda in cm. 
 + 
 + 
  
 ===== Rezultate Obţinute===== ===== Rezultate Obţinute=====
-TODO+Etape asamblare robot:\\ 
 +{{:​pm:​prj2021:​abirlica:​rob1.jpg?​300|}}\\ 
 +{{:​pm:​prj2021:​abirlica:​rob2.jpg?​300|}}\\ 
 +{{:​pm:​prj2021:​abirlica:​rob3.jpg?​300|}}\\ 
 +{{:​pm:​prj2021:​abirlica:​rob4.jpg?​300|}}\\ 
 +{{:​pm:​prj2021:​abirlica:​rob5.jpg?​300|}}\\ 
 +Link demo:\\ 
 +https://​drive.google.com/​file/​d/​1AAcwMvYsA8oVTH_gbkBkm8aqjYMzawq0/​view?​usp=sharing
 ===== Concluzii ===== ===== Concluzii =====
-TODO+Proiectul ales mi s-a parut foarte interesant deoarece am invatat lucruri noi atat pe  partea de software (lucru cu biblioteci noi) cat si pe 
 +partea de hardware(sa lipesc fire, sa asamblez un circuit de la 0 si sa fac debugg pe fiecare componenta in parte).Pe parcursul proiectului 
 +am avut nenumarate probleme, de la scurtcircuit pana la probleme cu alimentarea sau lipituri gresite. 
 +Un exemplu de problema intalnita : nu conectam gnd-urile de la driver L298N , servomotor si senzor ultrasunet in acelas loc si nu stiam de ce nu merge robotul. 
 + 
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
-{{:​pm:​prj2021:​abirlica:​robot_ocolitor_de_obstacole.pdf|}}+{{:​pm:​prj2021:​abirlica:​robot_ocolitor_de_obstacole.zip|}}\\ 
 +{{:​pm:​prj2021:​abirlica:​robot_ocolitor_de_obstacole.pdf|}}\\
 <​note>​Link catre pagina: https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​abirlica/​robot_ocolitor_de_obstacole </​note>​ <​note>​Link catre pagina: https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​abirlica/​robot_ocolitor_de_obstacole </​note>​
 \\ \\
pm/prj2021/abirlica/robot_ocolitor_de_obstacole.1622406850.txt.gz · Last modified: 2021/05/30 23:34 by daniel.asimionesei
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