This shows you the differences between two versions of the page.
pm:prj2023:drtranca:turret [2023/05/29 00:15] theodor.pruteanu |
pm:prj2023:drtranca:turret [2023/05/30 13:45] (current) theodor.pruteanu |
||
---|---|---|---|
Line 8: | Line 8: | ||
==== Introducere ==== | ==== Introducere ==== | ||
+ | |||
+ | {{:pm:prj2023:drtranca:theop-turret.jpg?800|}} | ||
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. | 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. | ||
- | ===== High-Level Design ===== | + | ===== 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 === | ||
- | Tureta o sa se miste pe 2 axe (tilt & pan) cu ajutorul a 2 servo, si cu alt servo si 2 motoare DC o sa poata sa traga. Utilizatorul o poate controla prin Bluetooth. | + | 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|}} | ||
- | {{:pm:prj2023:drtranca:hardware_turret.png?800|}} | ||
=== Lista de piese === | === Lista de piese === | ||
- | * Arduino Nano | + | * Arduino |
* MG996r Servo Motors x2 | * MG996r Servo Motors x2 | ||
* SG90 Servo Motor | * SG90 Servo Motor | ||
Line 38: | Line 70: | ||
===== 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> |