RetroBox — A Portable Multi-Game Console
Introducere
RetroBox este o consolă de jocuri portabilă implementată pe două module Arduino UNO R3,
care rulează trei jocuri clasice:
Tic-Tac-Toe,
Snake și
Reaction Rush. Jocurile sunt
accesibile printr-un meniu interactiv afișat pe un ecran TFT LCD 1.44”, iar gameplay-ul
este randat pe o matrice LED 8×8. Inputul este controlat cu un set de butoane fizice,
un buzzer oferă feedback sonor pentru evenimentele din joc, un LED strip îmbunătățește
experiența vizuală, iar un speaker redă muzică de fundal la victorie sau înfrângere.
Scopul proiectului este de a crea o platformă embedded modulară și autonomă, care să
demonstreze integrarea mai multor componente hardware într-un sistem coerent și interactiv.
Ideea a pornit de la faptul că am deja implementate din anii anteriori jocurile menționate
și îmi doresc să le duc cu un nivel mai sus, creând o consolă fizică care să le încorporeze
pe toate 3.
Proiectul este util atât ca experiență de învățare în embedded systems — acoperind concepte
precum gestionarea input-ului, randarea pe display, timing și structurarea codului în module
independente, dar este și fun de folosit.
Descriere generală
Sistemul este construit în jurul a două module Arduino UNO R3 care comunică prin UART.
Primul,
Controller joc, gestionează meniul pe TFT LCD 1.44”, randează jocurile pe
matricea LED 8×8, citește inputul de la cele 5 butoane și controlează LED strip-ul și
buzzer-ul. Al doilea,
Controller audio, citește fișiere audio de pe un SD card și le
redă prin amplificatorul XPT8871 către speaker, la comanda primului Arduino.
Utilizatorul navighează printr-un meniu principal afișat pe TFT LCD, din care poate selecta
unul dintre cele trei jocuri disponibile:
Tic-Tac-Toe — joc pentru 2 jucători pe același dispozitiv. Fiecare jucător mută pe rând folosind butoanele direcționale și butonul de selecție. Un timer de 10 secunde per mutare este semnalizat de buzzer în ultimele 3 secunde.
Snake — joc single-player clasic. Șarpele crește la fiecare mâncare consumată, iar viteza crește progresiv. Scorul maxim este salvat în EEPROM și afișat pe TFT LCD în meniu.
Reaction Rush — mini-joc de reflexe. LED strip-ul se aprinde la un moment aleator, iar jucătorul trebuie să apese butonul cât mai repede. Timpul de reacție este afișat pe TFT LCD și comparat cu recordul anterior.
Descriere diagramă bloc
Sistemul RetroBox folosește două Arduino UNO R3 care comunică prin UART. Primul, Controller joc, gestionează afișajul TFT LCD 1.44” și matricea LED 8×8 prin SPI, citește inputul de la cele 5 butoane prin GPIO și controlează LED strip-ul (1-wire) și buzzer-ul (PWM). Al doilea, Controller audio, citește fișiere audio de pe SD card prin SPI și le redă prin amplificatorul XPT8871 către speaker. Când un jucător câștigă sau pierde, controlerul joc trimite o comandă UART către controlerul audio pentru a reda melodia corespunzătoare.
Hardware Design
Listă de componente
| Componentă | Cantitate | Rol |
| Arduino UNO R3 | 2 | Microcontrolere principale (controller joc + controller audio) |
| TFT LCD 1.44” ST7735 | 1 | Afișaj meniu și scoruri |
| Matrice LED 8×8 MAX7219 | 1 | Afișaj gameplay jocuri |
| LED Strip WS2812B | 1 | Efecte vizuale (victorie / înfrângere / idle) |
| Keyboard 4 butoane | 1 | Navigare direcțională |
| Buton tactil | 1 | Selecție / confirmare |
| Buzzer | 1 | Feedback sonor în joc (timer, game over) |
| Modul SD Card Reader | 1 | Stocare fișiere audio |
| Card SDHC | 1 | Suport stocare fișiere audio |
| Amplificator XPT8871 | 1 | Amplificare semnal audio |
| Speaker | 1 | Redare muzică victorie / înfrângere |
| Rezistență 220Ω | 1 | Protecție circuit |
| Mini breadboard | 2 | Prototipare conexiuni |
| Fire male-male / male-female | — | Conexiuni între componente |
Software Design
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țiunea de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF