Differences

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

Link to this comparison view

pm:prj2023:drtranca:turret [2023/05/29 22:50]
theodor.pruteanu [Hardware Design]
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 axe (tilt & pancu ajutorul a servosi cu alt servo si 2 motoare DC o sa poata sa tragaUtilizatorul ​poate controla ​prin Bluetooth.+Pentru miscarea sus-jos, stanga-dreapta ​o sa se foloseasca ​servo-uri ​(MG996r)
 + 
 +=== 2. Motoare tragere === 
 + 
 +Motoare pentru tragere o sa fie motoare DCcare 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 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 ===
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>​
pm/prj2023/drtranca/turret.1685389826.txt.gz · Last modified: 2023/05/29 22:50 by theodor.pruteanu
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