Consola

Introducere

O consola pe care utilizatorul se poate juca, avand optiunea de a alege din mai multe joculete (Snake, Tetris, Pong etc.) cu ajutorul unui meniu. Pentru navigarea in meniu este utilizat un joystick, alaturi de un buton cu ajutorul caruia se iese din joc. Utilizatorul se poate juca atat prin joystick, cat si cu ajutorul unui senzor de gesturi.

Descriere generală

Pe ecranul LCD sunt initial afisate titlurile jocurilor de pe “consola”, iar navigarea intre acestea se face folosind joystick-ul. Odata selectat jocul dorit, acesta va incepe, fiind afisat tot pe ecranul LCD. Un alt buton va face posibila oprirea jocului si intoarcerea pe ecranul principal. Pentru a interactiona cu jocul, utilizatorul are la dispozitie un joystick si un senzor de gesturi, in functie de jocul curent. Este prezent si un buzzer, care va scoate diferite sunete, in functie de joc.

O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează.

Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html

Hardware Design

Componente

  • Arduino Uno
  • Breadboard
  • Ecran LCD
  • Rezistori
  • Buzzer
  • 1 Joystick
  • 1 buton
  • 1 senzor de gesturi

Software Design

Bibliotecile auxiliare/3rd-party folosite in dezvoltarea proiectului sunt Adafruit_GFX.h si Adafruit_PCD8544 pentru ecranul Nokia 5510 si Arduino_APDS9960.h pentru senzorul de gesturi APDS9960. Am inclus, de asemenea, o parte a codului in fisierul graphics.h, care contine unele define-uri si cateva bitmap-uri, folosite drept grafica pentru jocuri. Pentru a modulariza diferitele functionalitati ale proiectului, am implementat design pattern-ul State (clasa Game si mostenitorii ei), care contine 3 metode necesare implementarii: getInput(), care citeste inputul (joystick, buton, senzor), update(), care realizeaza schimbari pe obiectele jocului respectiv, in functie de input/timp si draw(), care randeaza jocul pe ecranul LCD. Exista si clasa Console, care contine starea actuala (jocul) si cele 3 metode enumerate anterior, care sunt apelate in aceeasi ordine in loop().

Rezultate Obţinute

Demo video

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Pot spune ca a fost un proiect interesant, unic fata de restul temelor, care m-a ajutat sa invat si ceva mai tehnic, cum ar fi lipitul firelor. Din punct de vedere al hardware-ului, proiectul nu este complicat, insa in privinta software-ului pot spune ca cea mai dificila problema cu care m-am confruntat a fost management-ul memoriei.

Download

Cod sursa: Console

Bibliografie/Resurse

Arduino_APDS9960
Ambient Light Sensor Interfacing with Arduino
Nokia 5110 LCD with Arduino
In-Depth: Interface Nokia 5110 with Arduinp
Graphics Primitives

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

Export to PDF

pm/prj2022/ndrogeanu/consola.txt · Last modified: 2022/05/29 20:59 by george.pasca
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