This is an old revision of the document!
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.
Utilizatorul navighează printr-un meniu principal afișat pe LCD, din care poate selecta unul dintre cele trei jocuri disponibile:
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 |
Aici puneţi tot ce ţine de hardware design:
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.