This shows you the differences between two versions of the page.
|
pm:prj2026:atoader:bogdan.raucescu [2026/05/09 21:34] bogdan.raucescu created |
pm:prj2026:atoader:bogdan.raucescu [2026/05/14 18:20] (current) bogdan.raucescu |
||
|---|---|---|---|
| Line 7: | Line 7: | ||
| **Scopul:** | **Scopul:** | ||
| Scopul principal al acestui proiect este implementarea unui joc de viteza si reactie folosind senzori capacitivi construiti manual. | Scopul principal al acestui proiect este implementarea unui joc de viteza si reactie folosind senzori capacitivi construiti manual. | ||
| - | |||
| **Ideea de la care am pornit:** | **Ideea de la care am pornit:** | ||
| Conceptul a fost inspirat de proiectele de tip "Pian din banane". Totusi, in loc sa utilizez input-ul capacitiv in mod pasiv (pentru a genera note muzicale), acest proiect transforma input-ul intr-un joc activ, bazat pe logica, cu un sistem de scor, dificultate crescatoare si feedback vizual/audio. | Conceptul a fost inspirat de proiectele de tip "Pian din banane". Totusi, in loc sa utilizez input-ul capacitiv in mod pasiv (pentru a genera note muzicale), acest proiect transforma input-ul intr-un joc activ, bazat pe logica, cu un sistem de scor, dificultate crescatoare si feedback vizual/audio. | ||
| Line 24: | Line 23: | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| - | |||
| **Lista de piese (BOM):** | **Lista de piese (BOM):** | ||
| * 1 x Microcontroler ATmega328P (format placuta Arduino Uno) | * 1 x Microcontroler ATmega328P (format placuta Arduino Uno) | ||
| Line 34: | Line 32: | ||
| * 6 x Tinte conductoare (Banda de cupru / Folie de aluminiu) | * 6 x Tinte conductoare (Banda de cupru / Folie de aluminiu) | ||
| * Breadboard si Fire Jumper (Mama-Tata si Tata-Tata) | * Breadboard si Fire Jumper (Mama-Tata si Tata-Tata) | ||
| + | |||
| + | {{:pm:prj2026:atoader:schema_raucescu.png?300|}} | ||
| **Conexiuni si maparea pinilor:** | **Conexiuni si maparea pinilor:** | ||
| Line 50: | Line 50: | ||
| * ''<stdlib.h>'' pentru generarea de numere pseudo-aleatoare (''rand()'', ''srand()''). | * ''<stdlib.h>'' pentru generarea de numere pseudo-aleatoare (''rand()'', ''srand()''). | ||
| * Biblioteca I2C LCD pentru controlul ecranului 16x2 (folosita la laborator). | * Biblioteca I2C LCD pentru controlul ecranului 16x2 (folosita la laborator). | ||
| + | |||
| + | **Laboratoare PM folosite in proiect:** | ||
| + | * **Laboratorul 1 (GPIO - Intrare/Iesire):** A reprezentat baza intregului hardware. L-am aplicat pentru configurarea pinilor ca Iesire (aprinderea LED-urilor de pe Portul D, trimiterea semnalului catre Buzzer) si ca Intrare (citirea starii pinilor de RECEIVE pentru senzorii capacitivi). Am folosit intensiv manipularea la nivel de bit a registrilor DDR, PORT si PIN. | ||
| + | * **Laboratorul 3 (Timere si Intarzieri):** Conceptele de temporizare au fost vitale pentru implementarea mecanismului de baza al jocului (masurarea timpului de raspuns al jucatorului, scaderea acestui timeout odata cu cresterea dificultatii, pauzele dintre runde). De asemenea, logica de timere a fost folosita pentru a genera frecventele necesare buzzer-ului pasiv (tonuri scurte si ascutite pentru succes, tonuri lungi si grave pentru Game Over). | ||
| + | * **Laboratorul 6 (Interfata I2C / TWI):** Acest laborator a fost aplicat direct pentru conectarea ecranului LCD 16x2. Folosind protocolul I2C am reusit sa afisez scorul, mesajele de start si starea jocului, utilizand doar 2 pini de date (SDA si SCL), economisind astfel pini pretiosi pe microcontroler. | ||
| **Algoritmi si Implementare:** | **Algoritmi si Implementare:** | ||
| Line 63: | Line 68: | ||
| * LED-urile si Buzzer-ul ofera un feedback instantaneu, fara intarzieri. | * LED-urile si Buzzer-ul ofera un feedback instantaneu, fara intarzieri. | ||
| * Scalarea dificultatii functioneaza perfect, facand jocul progresiv mai greu si testand eficient viteza de reactie a utilizatorului. | * Scalarea dificultatii functioneaza perfect, facand jocul progresiv mai greu si testand eficient viteza de reactie a utilizatorului. | ||
| - | |||
| ===== Concluzii ===== | ===== Concluzii ===== | ||
| Line 74: | Line 78: | ||
| * [2] Teoria senzorilor capacitivi: Documentatia Arduino CapSense Library - http://playground.arduino.cc/Main/CapacitiveSensor | * [2] Teoria senzorilor capacitivi: Documentatia Arduino CapSense Library - http://playground.arduino.cc/Main/CapacitiveSensor | ||
| * [3] Datasheet ATmega328P (pentru maparea pinilor, configurarea registrilor si porturilor). | * [3] Datasheet ATmega328P (pentru maparea pinilor, configurarea registrilor si porturilor). | ||
| - | |||