Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2024:tdicu:george.marin2610 [2024/05/19 20:35]
george.marin2610 [Download]
pm:prj2024:tdicu:george.marin2610 [2024/05/20 09:16] (current)
george.marin2610 [Descriere generală]
Line 5: Line 5:
 <note tip> <note tip>
   * **Ce face?**   * **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 acuratețea și viteza cu care se apasă butoanele. Scorurile sunt salvate pe un card SD pentru a crea un clasament.+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?**   * **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. 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.
Line 16: Line 16:
 Utilizatorul are următoarele opțiuni: Utilizatorul are următoarele opțiuni:
   * Începerea unui joc:   * Începerea unui joc:
-       * Primește pe display instrucțiuni cu butoanele care trebuie să fie apăsate. +       * Primește pe display instrucțiuni ​(LEFT/​RIGHT) ​cu butoanele care trebuie să fie apăsate 
-       ​* ​Scorul (afișat în timp real) va fi calculat în funcție de acuratețea și viteza apăsării butoanelor. +       ​* ​Primește prin intermediul LED-urilor instrucțiuni (BLUE/​YELLOW/​REDcu butoanele care trebuie să fie apăsate 
-       ​La finalul jocului, poate alege dacă să salveze scorul ​obținut+       * Scorul ​va fi calculat în funcție de viteza apăsării butoanelor ​(delay în ms) 
-  * Afișarea rezultatelor anterioare: +  Salvarea scorului ​obținut 
-       ​* ​Clasament (Leaderboard)+       ​* ​Primește informații legate de ranking
  
-{{:​pm:​prj2024:​tdicu:​diagrama_pm_grmm.png?500|}}+{{ :​pm:​prj2024:​tdicu:​diagrama_pm_grmm_light.png |}}
 ===== Hardware Design ===== ===== Hardware Design =====
  
-<note tip> +**Listă de piese:**
-  ​* Listă de piese:+
       * 1 x Arduino Uno       * 1 x Arduino Uno
       * 2 x Breadboards       * 2 x Breadboards
Line 33: Line 32:
       * 1 x Modul SD Card       * 1 x Modul SD Card
       * 3 x LED-uri       * 3 x LED-uri
-</​note>​{{ :​pm:​prj2024:​tdicu:​proiect_pm_grmm_sch.png?​800 |}} + 
-{{ :​pm:​prj2024:​tdicu:​proiect_pm_pic_grmm.jpg?700 |}}+**Schemă electrică:​** 
 +{{ :​pm:​prj2024:​tdicu:​proiect_pm_grmm_sch.png?​800 |}} 
 +**Implementare fizică:** 
 +{{ :​pm:​prj2024:​tdicu:​implementare_fizica_grmm_cropped.jpg?800 |}} 
  
 ===== Software Design ===== ===== 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.
  
-<note tip> +**Mediu de dezvoltare:​** 
-Descrierea codului aplicaţiei (firmware)+Firmware-ul a fost dezvoltat folosind Arduino IDE. 
-  * mediu de dezvoltare ​(if any) (e.g. AVR StudioCodeVisionAVR+ 
-  * librării şsurse 3rd-party (e.g. Procyon AVRlib+//​Biblioteci şi surse 3rd-party:// 
-  * algoritmi şstructuri ​pe care plănuiţi să le implementaţ+  * **LiquidCrystal Library**: interfațarea cu LCD-ul 
-  * (etapa 3surse şfuncţii implementate +  * **SD Library**: interfațarea cu un modul de card SD, pentru citirea și scrierea datelor pe un card SD 
-</​note>​+ 
 +**Algoritmi şi structuri:​** 
 +  * **Selecția aleatorie a LED-urilor:​** Un algoritm pentru a selecta aleatoriu unul dintre cele trei LED-uri ​(albastrugalben, roșupentru a se aprinde. 
 +  * **Detecția apăsării butoanelor:​** O structură pentru a detecta apăsările butoanelor ș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 ș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 șîncepe jocul. 
 +  * **playGame():​** Gestionează logica principală a jocului, inclusiv aprinderea LED-urilor, detectarea apărilor butoanelor șînregistrarea timpilor de reacție. 
 +  * **endGame():** Calculează timpul total ș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 ===== ===== Rezultate Obţinute =====
  
-<note tip> +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.
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​ +
 ===== Concluzii ===== ===== 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 ===== ===== Download =====
  
Line 65: Line 81:
 <note tip> <note tip>
   * 5 Mai - introducere,​ descriere generală și hardware (doar lista de componente)   * 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
 </​note>​ </​note>​
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +Software utilizat: 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse ​Software** şi **Resurse Hardware**. +  https://​www.arduino.cc/​ 
-</note>+  ​https://​fritzing.org/​ 
 + 
 +Resurse
 +  ​https://​docs.arduino.cc/​built-in-examples/​digital/​Button/​ 
 +  ​https://​www.youtube.com/​watch?​v=Y23vMfynUJ0 
 +  * https://​forum.arduino.cc/​t/​newbie-multiplexing-i-think-help/​55944/​8 
 +  ​https://​forum.arduino.cc/​t/​turn-on-a-led-with-a0-a1-a2-a3-a4-a5-a6/​300252 
 +  ​https://​forum.arduino.cc/​t/​use-tx-as-digital-io-while-using-rx-to-receive-data/​971746/​3 
 +  ​https://​arduino.stackexchange.com/​questions/​43182/​writing-int-long-on-sd-card 
 +  ​https://​forum.arduino.cc/​t/​arduino-uno-writing-garbage-on-sd-card/​355766/​4 
 +  * https://​forum.arduino.cc/​t/​interface-both-the-sd-card-module-and-lcd-display-to-arduino/157555
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
  
pm/prj2024/tdicu/george.marin2610.1716140144.txt.gz · Last modified: 2024/05/19 20:35 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