This is an old revision of the document!
Consola va fi encapsulata intr-o carcasa printata 3d si va avea un ecran color pe care se desfasoara jocurile, incluzand un meniu de selectie. Pe langa acestea, vor fi amplasate butoane pentru controlul in cadrul jocurilor, pentru controlul sunetului sau a statusul consolei (on, sound, sleep).
Ceea ce doresc sa realizez este si functionalitatea de power management a consolei pentru conservarea energiei cand nu se joaca nimeni pe ea.
Ideea a pornit mai mult din dorinta de a face ceva fun si interactiv si sa invat mai mult despre cum se poate construi un proiect practic pana la stadiul de a fi chiar utilizabil.
Pentru salvarea high scores sau a nivelurilor la care jucatorul a ajuns voi folosi un card micro sd conectat la placuta care sa memoreze aceste date.
Placuta de ESP32 va actiona drept 'creierul' consolei de joc. De la acesta se vor trimite comenzile de desenare prin SPI catre ecran, se vor salva si respectiv retrage datele despre highscores si nivelurile la care a ajuns jucatorul si va interpreta comenzile de la butoane prin intreruperi. De asemenea prin timerele interne ale placutei se va monitoriza perioada de inactivitate pentru a trece consola intr-un sistem de low power pentru conservarea bateriei.
Modul Pin | ESP32 Pin | Protocol | Funcție |
---|---|---|---|
VCC | 3V3 | Power | Alimentare 3.3 V |
GND | GND | Power | Masă comună |
SCK | GPIO18 | SPI_CLK | Ceas SPI |
MISO | GPIO19 | SPI_MISO | Date SPI din SD |
MOSI | GPIO23 | SPI_MOSI | Date SPI către TFT/SD |
CS | GPIO5 | SPI_CS | Chip-select pentru TFT |
DC | GPIO2 | GPIO/SPI | Data/Command TFT |
RST | GPIO16 | GPIO | Reset hardware TFT |
SDCS | GPIO4 | SPI_CS | Chip-select pentru microSD |
BL | GPIO15 | PWM | Reglaj backlight (PWM SAFE) |
Funcție | GPIO Pin | Config | Interrupție |
---|---|---|---|
D-pad Sus | GPIO32 | INPUT_PULLUP | FALLING (apăsare) |
D-pad Jos | GPIO33 | INPUT_PULLUP | FALLING (apăsare) |
D-pad Stânga | GPIO25 | INPUT_PULLUP | FALLING (apăsare) |
D-pad Dreapta | GPIO26 | INPUT_PULLUP | FALLING (apăsare) |
Buton A | GPIO27 | INPUT_PULLUP | FALLING (apăsare) |
Buton B | GPIO14 | INPUT_PULLUP | FALLING (apăsare) |
Sound | GPIO21 | INPUT_PULLUP | FALLING (apăsare) |
Menu | GPIO22 | INPUT_PULLUP | FALLING (apăsare) |
Power | GPIO12 | INPUT_PULLUP + WAKE | FALLING (deep-sleep wake) |
Divizor node | ESP32 Pin | Protocol | Descriere |
---|---|---|---|
Între R1 și R2 | GPIO35 | ADC1_CH7 (ADC_11db) | Măsurare tensiune baterie (factor 2×) |
Încărcător CC/CV pentru o singură celulă Li-Ion, alimentat la 5 V (micro-USB sau boost). Conține circuit de protecție la supraîncărcare, scurt-circuit și sub-tensiune. Pinii B+/B– se conectează la baterii, iar OUT+/OUT– livrează tensiunea protejată către consolă.
Nume piesă | Cantitate | Link |
---|---|---|
Placă de dezvoltare ESP32 cu WiFi & Bluetooth 4.2 | 1 | ESP32 |
Display LCD TFT 320×240 2.2″ cu slot microSD | 1 | Display TFT 2.2″ |
Modul DC-DC 1.5–5 V → 3.3 V | 1 | DC-DC 1.5–5 V→3.3 V |
Modul încărcător TP4056 LiPo 1 A cu protecție | 1 | TP4056 charger |
Card de memorie MicroSDHC 4 GB, Class 10 | 1 | MicroSD card 4 GB |
Suport baterii 2×18650 | 1 | Battery holder 2×18650 |
Celule Li-Ion 18650 3.7 V | 2 | 18650 Li-Ion 3.7 V |
Buzzer pasiv | 1 | – |
Push-buttons tactile (momentary) | 9 | – |
Fire jumper (duse-întoarse) | 10 | – |
Rezistoare 100 kΩ | 2 | – |
Link proiect Github: https://github.com/Bogdan-Rusu17/Retro_Games_Console
Link video cu demo: https://youtu.be/d9HI2PYjIhI
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.