This is an old revision of the document!


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

Aici puneţi tot ce ţine de hardware design:

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().

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

Rezultate Obţinute

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

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

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.1653842262.txt.gz · Last modified: 2022/05/29 19:37 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