Autor: Cosmin Banica
Implementare a unui joc de memorare. Jocul consta in 2 matrici: pe cea din stanga apare pentru o scurta perioada de timp o secventa, iar pe cea din dreapta jucatorul se poate deplasa folosindu-se de niste butoane. Scopul este ca jucatorul sa memoreze matricea care apare in stanga, si sa o reproduca pe matricea din dreapta, folosindu-se de controale.
Jocul se foloseste de 3 LED-uri pentru a indica jucatorului cate runde a castigat pana acum. Exista butoane de schimbare a coloanei, a randului si de selectat casuta. Atunci cand un jucator reproduce matricea initiala, se aude o melodie si pe display-ul format din cele 2 matrici de LED-uri se afiseaza un mesaj de victorie. Atunci cand un jucator greseste o casuta, similar se aude un zgomot si se afiseaza un mesaj corespunzator, iar nivelul se ia de la inceput.
Schema bloc:
Componente:
Mentiuni:
Schema electrica:
Pentru implementarea codului am folosit Visual Studio Code impreuna cu extensiile pentru Arduino care permit functionalitati precum auto-complete, intellisense, upload pe placuta direct din VSCode. In portiunea de setup se pregatesc modurile pinilor, precum si configuratiile necesare matricilor de LED-uri.
Jocul are in vedere urmatorul flow: pe matricea din stanga apare o secventa de LED-uri aprinse, iar la scurt timp acestea nu mai sunt vizibile. Folosind butoanele de miscare pe horizontala, verticala, jucatorul trebuie sa reproduca imaginea disparuta (selectand LED-uri cu un al treilea buton).
Pentru a comunica cu matricile de LED-uri s-a folosit SPI cu Daisy Chaining. Libraria pentru MAX7219 expune un obiect de tip LedControl care faciliteaza comunicarea cu matricile. Aproape fiecare functie din LedControl ia ca prim argument matricea la care se vrea sa se faca modificari.
De asemenea, matricile de LED-uri au 2 intrebuintari: ele sunt atat interfata prin care jucatorul interactioneaza cu imaginile ce trebuie a fi memorate, apoi reproduse, dar sunt si display-uri atunci cand se transmite un mesaj text jucatorului.
Librariile folosite sunt:
Link de download pentru codul Arduino folosit in proiect: memorygame_cod.zip
Un scurt Demo in format video pe youtube: https://www.youtube.com/watch?v=3KLD8s7QhtM