This shows you the differences between two versions of the page.
pm:prj2023:drtranca:turret [2023/05/07 22:21] theodor.pruteanu created |
pm:prj2023:drtranca:turret [2023/05/30 13:45] (current) theodor.pruteanu |
||
---|---|---|---|
Line 9: | Line 9: | ||
==== Introducere ==== | ==== Introducere ==== | ||
- | Proiectul este o tureta de jucarie, care poate fi controlata prin Bluetooth. | + | {{:pm:prj2023:drtranca:theop-turret.jpg?800|}} |
- | ===== Descriere generală ===== | + | Proiectul este un prototip pentru o tureta de jucarie. Se poate misca pe 2 axe (sus-jos, stanga-dreapta) pentru a tinti, si poate sa fie actionat sa traga cu proiectile din spuma. |
+ | ===== Project Design ===== | ||
+ | |||
+ | Tureta trebuie sa implementeze urmatoarele functionalitati: | ||
+ | - sa se miste liber pe 2 axe (sus-jos, stanga-dreapta) | ||
+ | - sa pregateasca motoarele de tragere | ||
+ | - sa traga | ||
+ | - sa primeasca comenzi de la o sursa externa | ||
+ | - sa poata fi actionat manual pentru tragere | ||
+ | |||
+ | === 1. Miscare === | ||
+ | |||
+ | Pentru miscarea sus-jos, stanga-dreapta o sa se foloseasca 2 servo-uri (MG996r). | ||
+ | |||
+ | === 2. Motoare tragere === | ||
+ | |||
+ | Motoare pentru tragere o sa fie motoare DC, care vor fi pornite/oprite folosind un MOSFET, conectat la un pin GPIO arduino. | ||
+ | |||
+ | === 3. Tragere === | ||
+ | |||
+ | Actiunea de tragere o sa fie facuta cu un servo (SG90), care o sa impinga (cu ajutorul unui ax metalic) proiectilele in motoarele de tragere care o sa propulseze proiectilul mai departe. | ||
+ | |||
+ | === 4. Control === | ||
+ | |||
+ | Controlarea punctelor 1/2/3 o sa fie facuta prin seriala. O sa se foloseasca un protocol pe 8 biti, unde: | ||
+ | * 2 biti pentru controlul sus-jos (3 stari, stanga/dreapta/repaus) | ||
+ | * 2 biti pentru controlul stanga-dreapta (3 stari, stanga/dreapta/repaus) | ||
+ | * 2 bit pentru controlul motoarelor de tragere | ||
+ | * 1 bit pentru actiunea de tragere | ||
+ | * 1 biti rezerva | ||
+ | |||
+ | Folosind un protocol pe seriala, aceasta poate sa fie adaptat usor si pentru Bluetooth (dar am ars modulul last minute :() | ||
+ | |||
+ | === 5. Actionare manuala === | ||
+ | |||
+ | O sa existe si un buton fizic, pentru actiunea de tragere, care o sa se comporte ca si cum am primit comanda prin seriala. | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
=== Design === | === Design === | ||
+ | {{:pm:prj2023:drtranca:theop-pm_hard.png|}} | ||
=== Lista de piese === | === Lista de piese === | ||
- | * Arduino Nano | + | * Arduino |
- | * Motoare Servo | + | * MG996r Servo Motors x2 |
- | * Motoare DC | + | * SG90 Servo Motor |
- | * Modul Bluetooth | + | * 9V DC Motors |
- | * Modul coborare tensiune | + | * Modul coborare tensiune LM2596 |
+ | * Buton | ||
+ | * MOSFET | ||
* Sursa Alimentare | * Sursa Alimentare | ||
- | * Fire, Rezistente, Conectoare etc. | + | * Fire, Rezistente etc. |
- | * Cadru printat 3D | + | * Cadru printat 3D, suruburi, ax metalic |
===== Software Design ===== | ===== Software Design ===== | ||
+ | Partea software consta din 2 programe: | ||
+ | * firmware-ul Arduino | ||
+ | * aplicatie Python pentru a da comenzile | ||
- | <note tip> | + | === Arduino === |
- | Descrierea codului aplicaţiei (firmware): | + | |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | |
- | </note> | + | |
- | ===== Rezultate Obţinute ===== | + | Arduino-ul citeste de pe seriala si executa comenzi odata la 10 ms folosind protocolul explicat in sectiunea de Project Design. |
- | <note tip> | + | === Python === |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
- | În etapele următoare... stay tuned! | + | |
- | ===== Concluzii ===== | + | Aplicatia python foloseste ''pygame'' pentru a interfata cu utilizatorul, astepta comenzi: |
+ | * sageti pentru miscarea sus/jos stanga/dreapta | ||
+ | * space pentru a trage | ||
+ | * C si S pentru pornire/oprire motoare de tragere | ||
- | În etapele următoare... stay tuned! | + | Comunica cu arduino prin seriala, folosind biblioteca standard ''pyserial''. |
===== Download ===== | ===== Download ===== | ||
- | |||
- | <note warning> | ||
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | ||
- | |||
- | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | ||
- | </note> | ||
- | |||
- | ===== Jurnal ===== | ||
<note tip> | <note tip> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | {{:pm:prj2023:drtranca:theodor_pruteanu-334cb.zip|}} |
- | </note> | + | |
- | + | ||
- | ===== Bibliografie/Resurse ===== | + | |
- | + | ||
- | <note> | + | |
- | https://www.littlefrenchkev.com/bluetooth-nerf-turret | + | |
</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> |