Memory Game

Introducere

Nume: Mihăicuța Iulia

Grupa: 334CA

Proiectul reprezintă un joc electronic de memorie conceput pentru a furniza o experiență interactivă și educativă.

Scopul acestuia este de a evalua și de a îmbunătății capacitatea de memorare a utilizatorilor, punându-i să reproducă anumite secvențe de lumini într-o succesiune specifică. Utilizatorul va avea atât opțiunea de a alege dificultatea jocului, dar si cea de a înregistra el unele secvențe.

Descriere generală

Module Hardware

- Led-uri - fiecare LED se va aprinde în timpul secvenței; pot fi de diferite culori pentru a adăuga variabilitate vizuală

- Butoane - fiecare buton are un led corespondent

- Microcontroller - platformă hardware care să controleze LED-urile și butoanele

- Buzzer - componentă pentru redarea sunetelor corespondente secvenței

- Afișaj electronic - ecran LCD sau LED pentru afișarea nivelului de dificultate și posibil a altor informații relevante pentru utilizator

- Card SD

Module Software

- Aplicație de control - programul principal care gestionează redarea secvențelor de lumină, interacțiunea cu utilizatorul și logica jocului

- Algoritm de generare a secvențelor - modul care generează secvențele de lumină în funcție de nivelul de dificultate selectat și alți parametri

- Algoritm de evaluare - evaluarea performanței utilizatorului

- Selectare mod joc - selectarea dificultății jocului de către utilizator

- Algoritm înregistrare secvențe - funcționalitate care permite utilizatorului să înregistreze propriile secvențe pentru a fi reduse ulterior în joc

Hardware Design

Aici puneţi tot ce ţine de hardware design:

Listă piese

  • breadboard
  • fire dupont tată-tată
  • Arduino UNO
  • 3 x buton 6x6x6
  • 4 x buton 12x12x6
  • rezistențe 220Ω/1kΩ/10kΩ
  • led roșu/verde/galben/albastru
  • buzzer pasiv
  • adaptor microSD card
  • display LCD 16×2
  • afișaj cu 8 segmente: SA52-11EWA
  • registru de deplasare: CD4094BE

Scheme

Butoane/LED-uri/Buzzer

DataSheet CD4094BE


Implementare Hardware

Software Design

Declarații și inițializări

Biblioteci

  • LCD-I2C.h - folosită pentru controlul unui ecran LCD prin protocolul I2C
  • Wire.h

Definirea pinilor

  • A0 - pin butoane joc
  • A1 - pin butoane meniu
  • 2 - pin buzzer
  • 3, 4, 5, 6 - pini led-uri

Variabile de stare

  • level - nivelul curent al jocului
  • levelInput[6] - inputul utilizatorului pentru secvența de culori
  • position - poziția curentă a inputului utilizatorului

Funcții

  • Setup
    • Configurează modurile pinurilor.
    • Inițializează LCD-ul.
    • Afișează mesajul de start pe LCD.
    • Pregătește caracterele personalizate pentru LCD.
    • Inițializează afișajul 7-segmente.
    • Setează starea inițială a jocului.
  • Show LCD Info
    • Afișează informațiile pe LCD, inclusiv caracterele personalizate
  • Play Buzzer
    • Redă diferite tonuri pentru culori diferite folosind buzzerul.
  • Play Level
    • Redă modelul generat folosind LED-uri și buzzerul
    • Ajustează viteza în funcție de dificultate.
  • Loop
    • Ajustare Dificultate: Crește sau scade dificultatea pe baza apăsării butoanelor.
    • Replay: Rejucă modelul curent dacă butonul de rejucare este apăsat.
  • Display Digit
    • Actualizează afișajul 7-segmente pentru a arăta dificultatea curentă.
  • Fluxul Detaliat
    • Setup: Inițializează componentele și afișează mesajul de start.
    • Loop:
      • Controlul Dificultății: Ajustează dificultatea și o afișează pe afișajul 7-segmente.
      • Rejucare Model: Rejucă modelul când butonul de rejucare este apăsat.
      • Generarea Modelului: Generează și redă un nou model dacă nu se așteaptă nicio intrare.
      • Intrarea Utilizatorului: Înregistrează intrarea utilizatorului și oferă feedback. Compară intrarea cu modelul când intrarea este completă.
      • Feedback: Oferă feedback de succes sau eroare în funcție de corectitudinea intrării și actualizează starea jocului în mod corespunzător.
      • Jocul continuă să ruleze, actualizând modelul și verificând intrarea utilizatorului până când dispozitivul este oprit sau resetat.

Surse

repo github


Codul a fost implementat și testat folosind Arduino IDE

Rezultate Obţinute

Am creat un joc interactiv, prin care o persoană își poate antrena memoria. De asemenea jocătorul poate să își dea seama daca se bazează mai mult pe memoria vizuală sau auditivă

Jurnal

17.04.2024 - alegerea temei

20.04.2024 - comandarea pieselor necesare

03.05.2024 - crearea paginii ocw și completarea secțiunilor Introducere și Descriere Generală

12.05.2024 - adăugare listă piese și schemă pentru butoane, led-uri și buzzer

14.05.2024 - completarea secțiunii Hardware Design

22.05.2024 - completarea secțiunii Software Design

Bibliografie/Resurse

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

Export to PDF

pm/prj2024/rpascale/124159.txt · Last modified: 2024/05/27 18:26 by iulia.mihaicuta
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