MiniGames Arduino este o consolă portabilă de jocuri, concepută cu ajutorul Arduino UNO. Consola oferă utilizatorului posibilitatea de a juca două jocuri clasice: Snake, un joc care a captivat generații întregi și Endless Runner, un joc care oferă o experiență plină de adrenalină în timp ce te ferești de obstacole.
Proiectul oferă tuturor posibilitatea de a-și ocupa timpul liber bucurându-se de cele două jocuri, fără a fi nevoie de cunoștințe de programare sau de electronică.
Când proiectul este pornit pentru prima dată, se afișează pe LCD meniul principal, de unde cu ajutorul butonului SELECT utilizatorul alege jocul pe care dorește să-l joace: Snake sau Endless Runner. În cazul jocului Snake, utilizatorul controlează mișcarea șarpelui prin 4 butoane: UP, DOWN, LEFT, RIGHT. Pentru jocul Endless Runner, sunt necesare doar două butoane, UP și DOWN, cu ajutorul cărora utilizatorul se ferește de obstacole.
Atât în timpul jocului Snake, cât și în timpul jocului Endless Runner, atunci când la scorul jucătorului se adaugă un punct (fie a mâncat mărul, dacă joacă Snake, fie a evitat un obstacol, dacă joacă Endless Runner) buzzerul va reda un sunet scurt.
Dacă este apăsat butonul SELECT în timpul jocurilor, utilizatorul revine la meniul principal și tot progresul din jocuri se resetează.
Dacă utilizatorul pierde oricare dintre jocuri, pe LCD se va afișa, timp de 3 secunde, scorul final al acestuia, iar buzzerul va reda un sunet specific încheierii jocului, apoi se revine la meniul principal.
Lista pieselor necesare:
Schema electrică
Am implementat 4 stări: MAIN_MENU, SNAKE, ENDLESS_RUNNER și END_GAME. Jocul pornește în starea MAIN_MENU, unde este afișat meniul principal, cu jocurile disponibile. Cu ajutorul butoanelor UP, DOWN și SELECT jucătorul alege ce joc dorește să joace.
În cazul jocului Snake, șarpele incepe cu lungimea 1 și cu o anumită viteză. Cu ajutorul butoanelor este controlată direcția acestuia, iar dacă ajunge să mănânce un măr dimensiunea sa crește și un nou măr apare pe ecran. Dacă lovește marginile sau propriul corp, jocul se încheie. Pe măsură ce trece timpul, dificultatea crește, șarpele mișcându-se mai rapid.
În cazul jocului Endless Runner, jucătorul mișcă personajul sus/jos cu ajutorul butoanelor, iar pentru fiecare obstacol evitat primește un punct. Dacă atinge un obstacol, jocul se încheie. De asemenea, și aici dificultatea crește odată cu trecerea timpului.
La sfârșitul oricărui dintre cele două jocuri, se trece în starea END_GAME, unde, timp de câteva secunde, este afișat scorul final al jucătorului, apoi se revine în meniul principal.
Acest proiect a fost atât plăcut, cât și util. M-am familiarizat cu mediul Arduino și am avut ocazia de a aprofunda conceptele învățate la laborator: GPIO, întreruperi, cum să interacționez cu un LCD prin I2C etc. Sunt satisfăcut de rezultatul final, iar, pe viitor, având mai mult timp, ambele jocuri pot fi îmbunătățite cu diferite features.