This shows you the differences between two versions of the page.
pm:prj2024:vstoica:mihai.tecliceanu [2024/05/03 12:06] mihai.tecliceanu |
pm:prj2024:vstoica:mihai.tecliceanu [2024/05/27 00:30] (current) mihai.tecliceanu [Software Design] |
||
---|---|---|---|
Line 2: | Line 2: | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | Se doreste implementarea unui aparat de masurat forta loviturii cu pumnul la o scara mai mica, pentru a usura portabilitatea. Aparatul va avea un afisaj LCD ce va indica un anumit scor obtinut in urma loviturii unei mingi/sac de box. | + | 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ă ===== | ===== Descriere generală ===== | ||
Line 14: | Line 14: | ||
**ESP32:** | **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. | + | *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:** | **Ecran LCD 1602:** | ||
- | *Tensiune de alimentare: 3.3V/5V | + | *Tensiune de alimentare: 3.3V/5V; |
- | *Tensiune alimentare backlight: 4.2V | + | *Tensiune alimentare backlight: 4.2V; |
- | *Curent: 2mA | + | *Curent: 2mA; |
- | *Modulul comunică prin intermediul unui convertor I2C | + | *Modulul comunică prin intermediul unui convertor I2C; |
- | *Pe LCD se voar afisa atat scorul obtinut cat si eventuale alte erori ce ar putea aparea in timpul functionarii aparatului. | + | |
+ | **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 ===== | ===== 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 ===== |