Differences

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

Link to this comparison view

pm:prj2024:vstoica:mihai.tecliceanu [2024/05/03 11:54]
mihai.tecliceanu created
pm:prj2024:vstoica:mihai.tecliceanu [2024/05/27 00:30] (current)
mihai.tecliceanu [Software Design]
Line 1: Line 1:
-Punching Machine+====== ​Punching Machine ​====== 
 +===== Introducere ===== 
 + 
 +Se doreste implementarea unui aparat de masurat forta loviturii cu pumnul la o scara mai mica, pentru a usura portabilitatea. Aparatul va indica un anumit scor obtinut in urma loviturii unei mingi/sac de box. 
 + 
 +===== Descriere generală ===== 
 + 
 +**Schema bloc** 
 + 
 + 
 +===== Hardware Design ===== 
 + 
 +== Piese == 
 +**ESP32:**  
 + 
 +   ​*Placuța programabila este un ESP32. Am ales aceasta placuta pentru a putea beneficia atat de memoria crescuta cat si de capabilitatile WiFi de care dispune; 
 + 
 +**Ecran LCD 1602:** 
 + 
 +   ​*Tensiune de alimentare: 3.3V/5V; 
 +   ​*Tensiune alimentare backlight: 4.2V; 
 +   ​*Curent:​ 2mA; 
 +   ​*Modulul comunică prin intermediul unui convertor I2C; 
 + 
 +**Receptor laser OKY3301-1:​** 
 + 
 +   ​*Tensiune de alimentare: 2.7V - 5.5V (recomandat 5V); 
 +   ​*Curent:​ 3mA; 
 +   ​*Output normal pe LOW, cand primeste laser trece pe HIGH; 
 + 
 +**Dioda laser KY-008:** 
 + 
 +   ​*Tensiune de alimentare: 5V; 
 +   ​*Lungime unda laser: 650nm; 
 + 
 +**Electromagnet 34/18:** 
 + 
 +   ​*Tensiunse de alimentare: 12V; 
 +   ​*Curent:​ 0.5A; 
 +   ​*Forta de atractie: 18kg/​180N;​ 
 + 
 +**Modul cu Tranzistor de Putere IRF520:** 
 + 
 +   ​*Tensiune maximă: 24V; 
 +   ​*Curent maxim: 5A 
 +   ​*Tensiune poartă: 3.3V, 5V; 
 +   ​*Timpi de comutație mici; 
 +   ​*RDS:​0.27 ohmi; 
 +   ​*Sarcină poartă: 16nC 
 + 
 +== Schema hardware == 
 +{{:​pm:​prj2024:​vstoica:​schema_punch_machine.png?​500|}} 
 + 
 + 
 +===== Software Design ===== 
 + 
 +Voi utiliza ESP-IDF ca development framework.  
 +Pentru masurarea puterii cu care se loveste, se va masura timpul in care un circuit format dintr-un laser si un receptor este intrerupt de trecerea bratului aparatului prin fata laserului. Aparatul creaza un acces point pentru a putea fi controlat intr-un browser. Pentru o masurarea cat mai buna, se va calcula diferenta in microsecunde dintre inceperea intreruperii laserului, pana la terminarea acesteia. De asemenea detectarea bratului se realizeaza prin intreruperi in cod, generandu-se un eveniment si procesarea evenimentului intr-un task separat, posibil chiar si pe alt procesor, ESP32-WROOM avand 2 core-uri. 
 + 
 +  * **/​connect** - aparatul asteapta ca un controller sa se conecteze. Conectarea se realizeaza prin intermediul unei aplicatii pe telefon sau dintr-un browser. 
 +  * **/try** - dupa ce un controller a fost conectat la aparat, acesta va astepta o cerere POST ce va contine un nume ("​name=..."​) pentru a putea stabili numele jucatorului.  
 +  * **/scores** - returneaza un raspuns la o cerere GET ce contine un textul in format CSV cu primele N cele mai mari scoruri. Numarul de scoruri retinute poate fi configurat din sursa aparatului. 
 +  * **/reset** - reseteaza aparatul in cazul unei probleme. 
 +  * **/player** - intoarce o pagina pentru a putea introduce numele jucatorlui. Folosit in special pentru controllere din browser. 
 + 
 +Aplicatia pentru telefon a fost realizata folosind MIT App Inventor si este disponibila pentru descarcare in sectiunea Download. Aceasta are nevoie de adresa IP afisata pe ecranul LCD al aparatului pentru a-l putea controla. 
 +===== Rezultate Obţinute ===== 
 + 
 +Am reusit sa implementez un aparat destul de complex, mai ales din punct de vedere software, care poate fi montat ca un fidget putin mai mare pentru birou, ignorand zgomotul creat :-). 
 + 
 +===== Concluzii ===== 
 + 
 +===== 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> 
 +Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. 
 +</​note>​ 
 + 
 +===== Bibliografie/​Resurse ===== 
 + 
 +<​note>​ 
 +Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. 
 +</​note>​ 
 + 
 +<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
pm/prj2024/vstoica/mihai.tecliceanu.1714726449.txt.gz · Last modified: 2024/05/03 11:54 by mihai.tecliceanu
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