This is an old revision of the document!
Proiectul ăsta e o consolă interactivă „6-în-1” făcută de la zero, gândită să îți testeze nu doar viteza de reacție, ci și cum îți merge mintea sub presiune (memoria, atenția la capcane, confuzia culorilor). Practic, îmbină partea de hardware (butoane, LED-uri, buzzer) cu un soft scris “bare-metal” (direct pe regiștrii procesorului, fără funcții Arduino prefabricate).
Spre deosebire de un cronometru banal, consola asta are 6 jocuri diferite pe care le alegi dintr-un meniu folosind un singur buton. Mai mult, ca să o facem cu adevărat modernă, am adăugat un modul Bluetooth care trimite scorurile și timpii de reacție (în milisecunde) direct pe telefon, în timp ce pe placă se salvează automat recordurile (High-Scores) în memoria internă (EEPROM).
Cum funcționează: Sistemul rulează un “automat de stări” (State Machine). Când îl pornești, te bagă direct în Meniu. Apeși scurt pe butonul de START ca să treci prin cele 6 jocuri (LED-urile îți arată la ce joc ești). Când te-ai hotărât, ții apăsat lung pe START, auzi un BEEP de confirmare și începe nebunia:
Ipoteza proiectului: Vrem să demonstrăm clar, pe bază de milisecunde, că timpul de reacție al unui om scade drastic atunci când creierul trebuie să proceseze și o informație logică (cum e la Stroop Test sau la Capcană), comparativ cu un simplu reflex vizual.
Lista de piese:
Schema electrică și Justificarea Pinilor: Arhitectura hardware a fost aleasă strategic pentru a scoate maximul de viteză și eficiență din microcontroler, evitând conexiunile la întâmplare:
Schema de mai jos ilustrează fluxul datelor în cadrul consolei, de la preluarea input-ului fizic până la generarea reacțiilor și transmisia telemetriei.
========================================================================
FLUX DE INTRARE (INPUT)
========================================================================
|
[ Utilizator ] ---apăsare---> [ Matrice 4x Butoane ]
| (Semnal Digital LOW)
v
[ Pini Hardware: INT0, INT1, PCINT ]
|
v
========================================================================
UNITATEA CENTRALĂ (PROCESARE)
========================================================================
|
[ ATmega328P (Core 16MHz) ]
- Automat de Stări (FSM)
- Timere (T0, T2) pentru millis() & PWM
- Memorie EEPROM pentru High-Score
|
========================================================================
FLUX DE IEȘIRE (OUTPUT)
========================================================================
|-----------------|-----------------|-----------------|
v v v v
[ Magistrala I2C ] [ UART (9600) ] [ Timer0 (PWM) ] [ PORT B (GPIO) ]
(Pinii A4, A5) (Pinii RX, TX) (Pinul PD5) (Pinii PB0-PB2)
| | | |
v v v v
[ Ecran LCD/OLED ] [ Modul HC-05 ] [ Buzzer Piezo ] [ 3x LED-uri RGB ]
| | | |
(Vizual) (Unde Radio) (Audio) (Vizual)
v v v v
[ Jucător ] [ Smartphone ] [ Jucător ] [ Jucător ]
Mediu de dezvoltare: PlatformIO IDE / framework nativ AVR-GCC (fără funcții de nivel înalt Arduino gen digitalWrite, accesând direct registrele ATmega).
Pentru realizarea acestui proiect s-au integrat funcționalități complexe, adaptate direct din modulele studiate în laboratoarele de PM:
Profilarea codului și Debouncing: Pentru a preveni înregistrările multiple mecanice ale aceluiași buton (ghost-clicks), s-a implementat un algoritm de software debouncing neblocant, evaluând diferența de timp între două declanșări consecutive ale aceleiași întreruperi.
Activitățile au fost împărțite astfel pentru a urmări un progres incremental:
Această secțiune va fi completată după asamblarea și testarea hardware-ului final.
Această secțiune va conține sumarul experienței, dificultățile întâmpinate și posibile dezvoltări viitoare.