MiniGames Arduino

Introducere

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

Descriere generală

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.

Hardware Design

Lista pieselor necesare:

  • Breadboard 830 puncte
  • Arduino UNO
  • 5 butoane
  • Fire de legătură
  • LCD 2004
  • Modul I2C pentru LCD
  • Buzzer pasiv
  • Rezistență 330ohm

Schema electrică

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare: ArduinoIDE
  • librării şi surse 3rd-party: hd44780, PinChangeInterrupt

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.

Rezultate Obţinute

În final, am obținut o mini consolă pe care poți juca două jocuri: Snake și Endless Runner.

Concluzii

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.

Download

Jurnal

  • 04.05.2024 - Adaugare introducere, descriere, bill of materials.
  • 09.05.2024 - Finalizare introducere, descriere + adăugare schemă hardware.
  • 17.05.2024 - Actualizare bill of materials + adăugare schemă electrică.
  • 24.05.2024 - Adăugare cod + poze proiect
  • 25.05.2024 - Adăugare concluzii + bibliografie

Bibliografie/Resurse

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

Tutorial LCD 20x4

Export to PDF

pm/prj2024/ccontasel/marius.caldaruse.txt · Last modified: 2024/05/25 21:11 by marius.caldaruse
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