This shows you the differences between two versions of the page.
pm:prj2024:vstoica:mihai.tecliceanu [2024/05/16 22:23] mihai.tecliceanu [Hardware Design] |
pm:prj2024:vstoica:mihai.tecliceanu [2024/05/27 00:30] (current) mihai.tecliceanu [Software Design] |
||
---|---|---|---|
Line 55: | Line 55: | ||
===== 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 ===== |