This shows you the differences between two versions of the page.
|
pm:prj2024:vstoica:mihai.tecliceanu [2024/05/08 13:04] mihai.tecliceanu [Hardware Design] |
pm:prj2024:vstoica:mihai.tecliceanu [2024/05/27 00:30] (current) mihai.tecliceanu [Software Design] |
||
|---|---|---|---|
| Line 39: | Line 39: | ||
| *Curent: 0.5A; | *Curent: 0.5A; | ||
| *Forta de atractie: 18kg/180N; | *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 ===== | ===== Software Design ===== | ||
| - | Voi utiliza ESP-IDF ca development framework. Pentru a facilita dezvoltarea softwareului voi utiliza o biblioteca pentru comunicarea cu ecranul LCD. Pentru masurarea puterii cu care se loveste, se va masura timpul in care un circuit format dintr-un laser si un receptor este intrerup de trecerea bratului aparatului prin fata laserului. | + | 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 ===== | ===== Rezultate Obţinute ===== | ||
| - | <note tip> | + | 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 :-). |
| - | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
| - | </note> | + | |
| ===== Concluzii ===== | ===== Concluzii ===== | ||