Table of Contents

Memory Game

Introducere

Memory Game este o reinterpretare digitală a clasicului joc de memorie Simon Says.

Scopul acestui proiect este de a oferi o experiență interactivă și distractivă, care stimulează memoria și atenția jucătorului.

Ideea de la care am pornit: Inspirația provine de la conceptul simplu și captivant al jocului Simon Says și am dorit să îl aduc în era digitală, folosind o plăcuță Arduino și componente hardware accesibile.

Utilitate: Este util pentru alții deoarece oferă o modalitate distractivă și educativă de petrecere a timpului liber, stimulând memoria și atenția jucătorilor de toate vârstele. Acest proiect reprezintă o oportunitate de a îmi dezvolta abilitățile în ingineria hardware și software, experimentând cu tehnologii noi și obținând satisfacție din rezultatele muncii depuse.

Descriere generală

Proiectul constă într-un joc de memorie bazat pe conceptul popular Simon Says. Jucătorul interacționează cu dispozitivul folosind butoanele pentru a reproduce secvențele luminoase generate aleatoriu. Arduino Uno servește ca unitate centrală de procesare, primind intrările de la butoane și generând ieșiri corespunzătoare pentru buzzer, display-ul LCD I2C și LED-uri. Scopul jocului este de a ajunge cât mai departe prin memorarea și reproducerea corectă a secvențelor în creștere de semnale.

Componentele utilizate în proiect sunt următoarele:

Schema electrică:

Software Design

1. Descrierea codului aplicaţiei (firmware)

Mediu de dezvoltare

Pentru dezvoltarea acestui proiect am utilizat PlatformIO, un mediu de dezvoltare integrat (IDE) bazat pe Visual Studio Code. PlatformIO oferă suport pentru o gamă largă de plăci de dezvoltare și microcontrolere, inclusiv Arduino Uno, pe care l-am folosit în acest proiect. De asemenea, oferă instrumente avansate pentru depanare, gestionarea bibliotecilor și integrare continuă, ceea ce facilitează dezvoltarea și testarea firmware-ului.

2. Librării şi surse 3rd-party

În cadrul acestui proiect am folosit următoarele librării externe:

LiquidCrystal_I2C - Pentru a facilita interacțiunea cu afișajul LCD folosind protocolul I2C.

Wire - O bibliotecă standard Arduino pentru comunicarea I2C, necesară pentru funcționarea bibliotecii LiquidCrystal_I2C.

Arduino.h - Biblioteca de bază a platformei Arduino, care oferă funcții esențiale pentru manipularea pinii, temporizări și comunicare serială.

3. Algoritmi și structuri implementate

Algoritmul jocului de memorare:

Vectori (array):

Variabile booleene:

4. Funcții principale:

setup():

loop():

playBuzzer(int x):

Rezultate Obţinute

Funcționalitatea jocului: Implementarea inițială a jocului de memorare a întâmpinat dificultăți în ceea ce privește generarea și verificarea secvențelor de LED-uri. Afișajul LCD nu a fost corect, multe informații nefiind vizibile din cauza firelor de calitate slabă.

Depanarea și testarea: Testarea și depanarea codului au evidențiat probleme de inițializare și configurare a componentelor hardware. Integrarea componentelor hardware (butoane, LED-uri, buzzer, LCD) nu a fost realizată complet cu succes, ceea ce a dus la nefuncționarea corectă a jocului.

Concluzii

Proiectul a întâmpinat diverse probleme care au afectat funcționarea sa corectă. Dificultățile principale au fost legate de inițializarea și configurarea corectă a componentelor hardware și de afișarea adecvată a informațiilor pe LCD. Deși proiectul nu a funcționat conform așteptărilor inițiale, procesul de dezvoltare a fost educativ. Am învățat lecții valoroase despre necesitatea unei structuri clare a codului, importanța testării riguroase și a depanării continue. Această experiențe va fi de mare ajutor în realizarea viitoarelor proiecte.

Download

baluta_teodora.zip

Jurnal

25 aprilie: Selectarea temei proiectului

2 mai: Crearea paginii de wiki și elaborarea schemei bloc

9 mai: Plasarea comenzilor pentru piesele necesare

16 mai: Implementarea componentelor hardware

22 mai: Dezvoltarea și implementarea software-ului

Bibliografie/Resurse

https://www.youtube.com/watch?v=BJ93XCcD858

https://www.handsontec.com/dataspecs/module/I2C_1602_LCD.pdf

https://www.youtube.com/watch?v=gj-H_agfd6U&t=3s

https://projecthub.arduino.cc/Jerepondumie/make-an-arduino-memory-game-c9c093

https://www.instructables.com/Arduino-Simple-Memory-Game/