This is an old revision of the document!


Joc de memorie controlat prin gesturi

Autor: Florea Andrei-Bogdan

Grupa: 336CC

Introducere

Jocul constă în repetarea unei secvențe de direcții (stânga, dreapta, sus, jos) de către utilizator, prin gesturi.

Dificultatea crește pe măsură ce secvențele sunt reproduse corect.

Pe un ecran LCD sunt afișate informații utile, precum viețile rămase sau timpul disponibil în cadrul rundei curente. Poate fi accesat și afișat și un leaderboard cu cele mai bune scoruri obținute de-a lungul timpului, scoruri preluate de pe un modul de card SD.

Ideea de la care am pornit a fost folosirea unui senzor de gesturi, pentru că mi se pare un mod interesant de interacționare.

Descriere generală

Inițial, pe ecran apare un meniu prin care se poate selecta începerea unui joc nou sau afișarea leaderboard-ului.

Dacă se alege începerea unui joc nou, se începe cu prima rundă: o singură direcție este redată pe matricea de led-uri și jucătorul are la dispoziție 5 secunde să realizeze gestul corespunzător.

Dacă a reprodus corect, jocul se continuă, la runda următoare jucătorul având de reprodus o secvență mai lungă, într-un timp mai mare. Dacă a reprodus greșit secvența, jucătorul pierde o viață din cele 3 afișate pe panoul LCD.

Jocul se încheie atunci când cele 3 vieți sunt epuizate, iar scorul este salvat pe cardul SD.

Dacă din meniul principal este selectată afișarea leaderboard-ului, vor apărea pe ecran cele mai bune scoruri obținute de-a lungul timpului, cu posibilitatea de scrolling.

Hardware Design

Componente folosite

  • Arduino Uno
  • Breadboard
  • senzor gesturi APDS-9960
  • ecran LCD Nokia 5510
  • matrice de LED-uri MAX7219
  • buzzer
  • modul card SD
  • card SD
  • butoane
  • rezistoare

Schema electrică

Software Design

  • Mediul de dezvoltare: Arduino IDE
  • biblioteci folosite:
    • SparkFun_APDS9960 (senzorul de gesturi)
    • Adafruit_PCD8544 și Adafruit_GFX (display Nokia 5110)
    • PF (card microSD)
  • surse folosite în implementare:
    • memory_game.ino - sursa principala; face setup-ul componentelor și implementează navigarea în meniul jocului; conține și funcții pentru generarea diferitelor sunete pentru buzzer
    • apds.cpp, apds.h - surse cu functii specifice senzorului de gesturi
    • lcd_draw.cpp, lcd_draw.h - surse pentru afisarea pe ecran; conțin funcții apelate din alte părți ale codului pentru afișarea unei pagini particulare din meniu sau joc
    • leaderboard.cpp, leaderboard.h - surse pentru manipularea celor mai bune scoruri (citire/scriere pe cardul microSD, afișare pe ecran în mai multe pagini a leaderboard-ului)
    • singleplayer.cpp, singleplayer.h - surse pentru varianta singleplayer a jocului
    • multiplayer.cpp, multiplayer.h - surse pentru varianta multiplayer a jocului

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2022/ndrogeanu/joc_memorie_gesturi.1653594281.txt.gz · Last modified: 2022/05/26 22:44 by andrei.florea0405
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