This shows you the differences between two versions of the page.
pm:prj2021:abirlica:tank [2021/06/03 18:55] florin.gheorghe0405 |
pm:prj2021:abirlica:tank [2021/06/04 16:04] (current) florin.gheorghe0405 |
||
---|---|---|---|
Line 6: | Line 6: | ||
Proiectul va folosi pentru deplasare 4 motoare conectate la cate o roata. Turela este reprezenatata de un "tun" care va proiecta bile de plastic de 6mm. Pentru aceasta se foloseste un servomotor care se va roti la o viteza mare. | Proiectul va folosi pentru deplasare 4 motoare conectate la cate o roata. Turela este reprezenatata de un "tun" care va proiecta bile de plastic de 6mm. Pentru aceasta se foloseste un servomotor care se va roti la o viteza mare. | ||
- | {{:pm:prj2021:abirlica:tank_tabell298n.jpg?400|}} | ||
Controlul tancului se va face folosind o telecomanda realizata din 5 butoane. Butoanele vor reprezenta comenzile: fata, spate, stanga, dreapta, tragere. | Controlul tancului se va face folosind o telecomanda realizata din 5 butoane. Butoanele vor reprezenta comenzile: fata, spate, stanga, dreapta, tragere. | ||
- | {{:pm:prj2021:abirlica:tank_tabell298nen.png?400|}} | ||
===== Descriere generala ===== | ===== Descriere generala ===== | ||
Line 23: | Line 21: | ||
Am ales sa folosec Motor Driver-ul L298N deoarce odata conectat la placa Arduin ofera un mod facil de a controla motoare electrice si poate gestiona tensiuni mari (5V - 35V). Cu ajutorul acestuia se poate controla sensul de rotire al motoarelor folosind cei 4 pini digitali | Am ales sa folosec Motor Driver-ul L298N deoarce odata conectat la placa Arduin ofera un mod facil de a controla motoare electrice si poate gestiona tensiuni mari (5V - 35V). Cu ajutorul acestuia se poate controla sensul de rotire al motoarelor folosind cei 4 pini digitali | ||
In1, In2, In3 şi In4, transmitand corespunzator curentul la iesirile MOTORA si MOTORB. | In1, In2, In3 şi In4, transmitand corespunzator curentul la iesirile MOTORA si MOTORB. | ||
+ | |||
+ | {{:pm:prj2021:abirlica:tank_tabell298n.jpg?300|}} | ||
De asemenea se poate controla viteza de rotire, folosind pinii EnA si EnB conectati la pini PWM pe placuta Arduino. | De asemenea se poate controla viteza de rotire, folosind pinii EnA si EnB conectati la pini PWM pe placuta Arduino. | ||
+ | {{:pm:prj2021:abirlica:tank_tabell298nen.png?300|}} | ||
+ | * **4 motoare** - Motoare 3V-6V cu reductor 1:48 | ||
+ | Acest motor cu reductor este ideal pentru diferite tipuri de roboți și mașini. | ||
+ | Motoarele sunt conectate cate doua pentru ficare iesire MOTORA/MOTORB a driver-ului L298N | ||
+ | RPM: 3V:125rpm, 5V:200rpm, 6V:230rpm | ||
+ | * **4 roti** - Conectate la motoare | ||
+ | * **Servomotor** | ||
+ | Servomotorul este folosit ca metoda de lansare a bilei. Acesta este conectat la un piston prin intermediul unui arc. {Prin actionarea servomotorului pistonul lanseaza biluta de plastic din cauza presiunii aerului. | ||
* **Breadboard** | * **Breadboard** | ||
- | * **Fire (mata-mama, tata-tata)** | ||
- | * **4 roti** | ||
- | * **4 motoare** | ||
* **5 butoane** | * **5 butoane** | ||
- | * **Suport baterii + baterii** | + | Telecomanda este compusa dintr-un breadboard cu 5 butoane si este legata prin fire la Aruino Uno. Butoanele vor reprezenta comenzi pentru: fata, spate, stanga, dreapta, tragere. |
- | * **Servomotor** | + | |
+ | {{:pm:prj2021:abirlica:tank_imgtele.jpg?300|}} | ||
+ | |||
+ | * **Suport baterii + baterii** | ||
+ | * **Fire (mata-mama, tata-tata)** | ||
+ | | ||
=== Schema electrica === | === Schema electrica === | ||
Line 40: | Line 49: | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | To Do | + | === Activity Diagram === |
+ | |||
+ | {{:pm:prj2021:abirlica:tank_activity_diagram.png?600|}} | ||
+ | |||
+ | == Implementare == | ||
+ | |||
+ | Pentru inceput, am setat pini corespunatori butoanelor ca INPUT_PULLUP, iar pinii corespunzatori motoarelor ca output. Am setat puterea motoarelor aproape la maxim. | ||
+ | |||
+ | Pentru a folosi servomotorul l-am atasat pe pinul 9. | ||
+ | |||
+ | In functia loop() am verificat de fiecare data valoarea butoanelor. In functie de aceasta motoarele primeau inputuri corespunzatoare similar cu diagrama de activitate de mai sus. Pentru a face un viraj, motoarele de pe o parte se opresc, iar celelate contiua sa mearga. La finalul functiei, am resetat motoarele pentru a fi active doar cat timp butonul este apasat. | ||
+ | |||
+ | Daca butonul de tragere este apasat, servomotorul se roteste cu 180 de grade cu viteza maxima, pentru a actiona pistonul cu putere. Apoi sevomotorul se roteste la pozitia initiala, impingand si pistonul la pozitia initiala. | ||
+ | |||
+ | == Biblioteci folosite == | ||
+ | * **Servo.h** - pentru a controla servomotorul | ||
===== Rezultate ===== | ===== Rezultate ===== | ||
- | To Do | + | {{:pm:prj2021:abirlica:tank_imglat.jpg?500|}} |
+ | |||
+ | {{:pm:prj2021:abirlica:tank_imgsus.jpg?500|}} | ||
+ | |||
+ | {{:pm:prj2021:abirlica:tank_imgjos.jpg?500|}} | ||
+ | |||
+ | === Video Demo === | ||
+ | |||
+ | [[https://youtu.be/5_FR-ApOHSU|Prezentare Video]] | ||
+ | |||
+ | |||
+ | ===== Concluzii ===== | ||
+ | |||
+ | Mi-a placut sa lucrez la acest proiect. Am realizat ca este mai usor decat ma asteptam sa creez proiecte folosind Arduino si am reusit sa inteleg mai bine unele concepte legate de programarea pe placute Arduino/Atmega328p. Am invatat ca unii pini sunt destinati pentru utilizari specifice. | ||
+ | |||
+ | A fost dificil sa aleg o metoda de a proiecta bila, la final am decis sa folosesc servomotorul. Insa acesta nu se poate roti destul de repeda incat sa genereze destula putere, astfel ca proiectarea bilei nu functionea tocmai cum mi-am propus. | ||
+ | |||
+ | Am facut cateva compromisuri de la idea initiala, astfel ca proiectul nu a fost foarte complex. La final mi-as fi dorit sa aleg un proiect mai complicat. | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
+ | |||
+ | https://www.sparkfun.com/datasheets/Robotics/L298_H_Bridge.pdf | ||
+ | https://www.arduino.cc/en/Tutorial/BuiltInExamples/InputPullupSerial | ||
+ | https://create.arduino.cc/projecthub/arcaegecengiz/how-to-use-servo-motors-with-arduino-b02bed | ||
https://ocw.cs.pub.ro/courses/pm/prj2021/abirlica/tank | https://ocw.cs.pub.ro/courses/pm/prj2021/abirlica/tank | ||
+ | |||
+ | Exort Pdf: https://ocw.cs.pub.ro/courses/pm/prj2021/abirlica/tank?do=export_pdf | ||
+ | |||
+ | === Arhiva === | ||
+ | {{:pm:prj2021:abirlica:pmproiect_tank.rar|}} | ||
+ | |||
+ | |||