Just Dance Tap Edition (Reaction Time Tester)

  • Marin George-Alexandru, 334CC

Introducere

  • Ce face?

Proiectul creează un sistem interactiv format dintr-un display și un difuzor. Display-ul afișează grupul de butoane vizat, iar led-ul indică culoarea corectă. Sistemul calculează un scor în funcție de viteza cu care se apasă butoanele. Scorurile sunt salvate pe un card SD pentru a crea un clasament.

  • Care este scopul?

Scopul principal este de a crea un joc distractiv și captivant care poate fi utilizat de persoane de toate vârstele. Jocul poate fi folosit pentru a îmbunătăți coordonarea mână-ochi, reflexele și viteza de reacție.

  • Care a fost ideea de la care aţi pornit?

Just Dance / Dance Dance Revolution / Piano Tiles Reaction time games / F1 start grid

Descriere generală

Utilizatorul are următoarele opțiuni:

  • Începerea unui joc:
    • Primește pe display instrucțiuni (LEFT/RIGHT) cu butoanele care trebuie să fie apăsate
    • Primește prin intermediul LED-urilor instrucțiuni (BLUE/YELLOW/RED) cu butoanele care trebuie să fie apăsate
    • Scorul va fi calculat în funcție de viteza apăsării butoanelor (delay în ms)
  • Salvarea scorului obținut
    • Primește informații legate de ranking

Hardware Design

Listă de piese:

  • 1 x Arduino Uno
  • 2 x Breadboards
  • 7 x Butoane
  • 1 x Display (16×2, fără I2C)
  • 1 x Modul SD Card
  • 3 x LED-uri

Schemă electrică: Implementare fizică:

Software Design

Descrierea codului: Proiectul este conceput pentru a rula un joc bazat pe timpul de reacție, utilizând un Arduino, un LCD, LED-uri pentru indicii vizuale și un buton pentru interacțiunea utilizatorului. Firmware-ul gestionează inițializarea jocului, logica jocului, interacțiunea cu utilizatorul și gestionarea scorurilor. Timpul de reacție al jucătorului este înregistrat și penalizat dacă nu se încadrează în pragul de timp așteptat.

Mediu de dezvoltare: Firmware-ul a fost dezvoltat folosind Arduino IDE.

Biblioteci şi surse 3rd-party:

  • LiquidCrystal Library: interfațarea cu LCD-ul
  • SD Library: interfațarea cu un modul de card SD, pentru citirea și scrierea datelor pe un card SD

Algoritmi şi structuri:

  • Selecția aleatorie a LED-urilor: Un algoritm pentru a selecta aleatoriu unul dintre cele trei LED-uri (albastru, galben, roșu) pentru a se aprinde.
  • Detecția apăsării butoanelor: O structură pentru a detecta apăsările butoanelor și a determina dacă a fost apăsat butonul corect în funcție de culoarea LED-ului și zona butoanelor (STÂNGA sau DREAPTA).
  • Calcularea timpului de reacție: Un algoritm pentru a calcula timpul de reacție al jucătorului (suma timpilor individuali).

Surse și funcții implementate:

  • setup(): Inițializează componentele hardware și afișează mesajul inițial pe LCD.
  • loop(): Conține bucla principală a jocului, verificând apăsările butonului pentru a începe jocul sau a salva scorul.
  • startGame(): Resetează variabilele jocului și începe jocul.
  • playGame(): Gestionează logica principală a jocului, inclusiv aprinderea LED-urilor, detectarea apăsărilor butoanelor și înregistrarea timpilor de reacție.
  • endGame(): Calculează timpul total și mediu de reacție, le afișează și gestionează promptul de salvare a scorului.
  • saveScore(): Scrie scorul jucătorului pe cardul SD.
  • getScoreRanking(): Citește scorurile de pe cardul SD și calculează clasamentul jucătorului.

Rezultate Obţinute

Proiectul a realizat cu succes un joc interactiv bazat pe reacție, care măsoară și înregistrează timpii de reacție ai jucătorilor. Jocul aprinde corect LED-urile, detectează apăsările corecte și incorecte ale butoanelor, calculează timpii de reacție și penalizează răspunsurile întârziate. Scorurile sunt salvate pe un card SD, iar clasamentele jucătorilor sunt determinate pe baza scorurilor anterioare. LCD-ul oferă feedback și instrucțiuni clare, îmbunătățind experiența utilizatorului.

Concluzii

Proiectul a demonstrat utilizarea eficientă a platformei Arduino pentru crearea unui joc interactiv cu feedback în timp real și gestionarea scorurilor. Integrarea diverselor componente, inclusiv LED-uri, butoane, un LCD și un card SD, a evidențiat versatilitatea și capacitatea Arduino-ului. Utilizarea bibliotecilor a simplificat procesul de dezvoltare și a permis concentrarea pe logica jocului și experiența utilizatorului. Îmbunătățiri viitoare ar putea include mecanici de joc mai complexe, mecanisme suplimentare de feedback și o gestionare și afișare a scorurilor mai avansată.

Download

Jurnal

  • 5 Mai - introducere, descriere generală și hardware (doar lista de componente)
  • 17 Mai - componentele folosite și rolul lor, schema electrică, imagini cu componentele conectate (funcționale)
  • 19 Mai - implementare software joc

Bibliografie/Resurse

pm/prj2024/tdicu/george.marin2610.txt · Last modified: 2024/05/20 09:16 by george.marin2610
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