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.
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ă:
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):
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.
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.
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