This is an old revision of the document!
Microcontroler - Arduino Nano: Arduino Nano va acționa ca unitatea principală de control a întregului sistem. Acesta va gestiona inputurile de la butoane, va rula jocul și va controla afișajul OLED/TFT, iar prin intermediul unui buzzer va emite sunete.
Display OLED/TFT (SPI/I2C): Display-ul va fi folosit pentru a reda grafica jocurilor. Acesta va comunica cu Arduino prin SPI sau I2C, în funcție de tipul de display ales.
Butonul D-pad (4 direcții) și 2 butoane A/B: Butoanele vor fi folosite pentru a controla mișcarea (sus, jos, stânga, dreapta) și acțiunile în joc (ex: sări, trage).
Buzzer: Buzzer-ul va emite sunete pentru diverse evenimente din joc (ex: când se câștigă un nivel sau când apare o coliziune).
Card SD: Intr-o varianta de optimizare a fost atasat si un card SD in vederea incadrarii tuturor jocurilor in acelasi “cod”, fara reusita insa.
Codul jocurilor (Breakout, Space Invaders, Super Mario): Codul jocurilor va fi stocat în memoria flash a Arduino-ului și va interacționa cu hardware-ul pentru a genera jocuri interactive. Nivelele și grafica vor fi stocate în PROGMEM pentru a economisi memoria RAM.
Utilizatorul va putea selecta folosind butonul A jocul pe care il doresc si apoi va rula ca variantele originale.
Lista de piese:
Arduino Nano (Microcontroler ATmega328P)
Port USB pentru alimentare și programare
Display OLED
Butoane tactile 6×6 mm (6 bucăți) / DPAD
4 butoane pentru direcții (sus, jos, stânga, dreapta)
2 butoane pentru acțiuni (A, B)
Buzzer de mică putere, care poate emite sunete simple pentru evenimentele din joc.
Rezistențe 10kΩ (6 bucăți)
Breadboard mare
Fire DuPont M-M
Fire pentru conectarea componentelor pe breadboard.
Carcasă imprimată 3D
Design personalizat pentru a încorpora toate piesele într-o formă compactă.
Proiectul este implementat ca un sistem de gaming portabil cu următoarele componente principale:
Meniu Principal (`menu/`): - Implementat folosind Arduino și un display OLED SSD1306 - Oferă o interfață grafică pentru selecția jocurilor - Include efecte sonore pentru feedback - Gestionează tranzițiile între diferite stări (boot, meniu, jocuri)
Cele Trei Jocuri: 1. Joc1 (Super Mario):
2. Joc2 (Space Invaders):
3. Joc3 (Breakout):
* 2. Biblioteci Folosite și Motivația Alegerii
1. Adafruit_GFX și Adafruit_SSD1306:
2. Wire.h:
* 3. Elementul de Noutate
Elementul de noutate al proiectului constă în: - Integrarea a trei jocuri clasice într-un singur sistem portabil - Implementarea unui meniu interactiv cu feedback sonor - Sistem de control unificat pentru toate jocurile - Adaptarea jocurilor pentru un display OLED de dimensiuni reduse
* 4. Utilizarea Funcționalităților din Laborator
Funcționalitățile din laborator sunt utilizate în următoarele moduri: 1. Controlul I/O:
2. Comunicare Serială:
3. Gestionarea Muzica:
* 5. Scheletul Proiectului și Interacțiunea
Arhitectura Software: 1. Sistem de Stări:
2. Interacțiunea între Componente:
3. Validarea Funcționalităților:
* Concluzie
Proiectul demonstrează o implementare software robustă care integrează multiple jocuri într-un sistem portabil. Arhitectura modulară permite ușoara adăugare de noi jocuri sau funcționalități. Sistemul de meniu oferă o experiență de utilizare intuitivă, iar implementarea hardware-ului este optimizată pentru performanță pe platforma Arduino.
DE FACUT: Implementat uniform codul pentru a nu mai avea module si sa fie totul deodata
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.