This is an old revision of the document!


Reaction Trainer

Reaction Trainer este un joc embedded de testare și antrenare a reflexelor, implementat pe placa ATmega328P-XMINI. Sistemul generează runde în care utilizatorul trebuie să reacționeze cât mai rapid la semnale vizuale afișate pe un LED RGB și la semnale sonore generate de un buzzer pasiv.

Utilizatorul apasă butonul corespunzător semnalului afișat, iar microcontrollerul măsoară timpul de reacție, detectează apăsările greșite sau premature și calculează scorul. Rezultatele rundelor și scorul final sunt transmise către PC prin interfața UART.

Proiectul folosește GPIO pentru butoane și LED RGB, timere pentru măsurarea timpului de reacție, întreruperi pentru detectarea apăsărilor, UART pentru afișarea rezultatelor și un automat finit de stări pentru logica jocului. Dificultatea jocului este reglată cu ajutorul unui potențiometru citit prin ADC.

Schema bloc

Schema bloc Reaction Trainer

Mod de funcționare

Sistemul funcționează pe baza plăcii ATmega328P-XMINI, care coordonează logica jocului, citește butoanele, măsoară timpul de reacție și controlează feedback-ul vizual și sonor.

La pornire, sistemul se află în starea de repaus. Utilizatorul poate porni jocul prin apăsarea unui buton sau printr-o comandă trimisă prin UART. După pornire, microcontrollerul generează o rundă de joc: așteaptă un interval de timp, afișează un semnal pe LED-ul RGB și pornește măsurarea timpului. Utilizatorul trebuie să apese butonul corespunzător cât mai repede.

Conectate la placa ATmega328P-XMINI sunt următoarele componente:

  • butoane push-button - folosite pentru pornirea jocului și pentru răspunsurile utilizatorului;
  • led rgb - oferă feedback vizual și indică semnalul la care utilizatorul trebuie să reacționeze;
  • buzzer pasiv - oferă feedback sonor pentru început de rundă, răspuns corect, răspuns greșit și final de joc;
  • potențiometru - conectat la un pin ADC și folosit pentru reglarea dificultății jocului;
  • pc prin uart - folosit pentru afișarea scorului, timpilor de reacție și mesajelor de stare.

Dificultatea jocului este controlată prin potențiometru. Microcontrollerul citește valoarea analogică folosind ADC-ul, iar în funcție de valoarea citită modifică timpul maxim permis pentru reacție sau viteza rundelor. O valoare mică poate corespunde unui mod ușor, iar o valoare mare poate corespunde unui mod mai dificil.

Logica jocului este implementată ca automat finit de stări. Stările principale sunt:

  • repaus - sistemul așteaptă pornirea jocului;
  • așteptare rundă - sistemul așteaptă un interval înainte de afișarea semnalului;
  • semnal activ - led-ul rgb afișează semnalul, iar timpul de reacție este măsurat;
  • răspuns corect - sistemul acordă punctaj și oferă feedback sonor;
  • răspuns greșit - sistemul marchează greșeala și oferă feedback sonor diferit;
  • final joc - sistemul afișează scorul final și timpii prin UART.

Dacă utilizatorul apasă înainte de apariția semnalului, răspunsul este considerat prematur și runda este marcată greșită. Dacă utilizatorul nu apasă în timpul maxim permis, sistemul marchează runda ca ratată. La finalul tuturor rundelor, scorul total și timpii de reacție sunt transmiși către PC prin UART.

Bill of Materials

Componentă Cantitate Rol în proiect
ATmega328P-XMINI 1 placa principală de control
LED RGB 1 feedback vizual pentru semnalele jocului
Buzzer pasiv 1 feedback sonor pentru start, răspuns corect/greșit și final de rundă
Butoane push-button 3-4 input pentru start și răspunsurile utilizatorului
Potențiometru 1 reglarea dificultății jocului prin ADC
Rezistențe pentru LED 3 limitarea curentului pentru canalele LED-ului RGB
Rezistențe pentru butoane 3-4 pull-up sau pull-down, dacă nu se folosesc rezistențele interne
Breadboard 1 realizarea montajului
Fire jumper mai multe conexiuni între componente

Schema electrică

TODO

Timeline

28.04.2026 - Alegere temă proiect.

04.05.2026 - Creare pagină documentație.

Bibliografie

pm/prj2026/victor.stoica0203/antonio.neagu.1777893371.txt.gz · Last modified: 2026/05/04 14:16 by antonio.neagu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0