
Sommario:
- Passaggio 1: preparazione dell'hardware
- Passaggio 2: preparazione del software
- Passaggio 3: stampa 3D
- Passaggio 4: supporto LCD
- Passaggio 5: preparare la piastra PETG
- Passaggio 6: correzione della scheda di sviluppo ESP32
- Passaggio 7: riparare la batteria Lipo
- Passaggio 8: collegare la batteria e la scheda di sviluppo
- Passaggio 9: preparare i pin del display
- Passaggio 10: collegare i pin GND
- Passaggio 11: collegare i pin Vcc
- Passaggio 12: collegare il supporto per LCD e scheda di sviluppo
- Passaggio 13: collegare i pin SPI
- Passaggio 14: Programma Flash
- Passaggio 15: connettore I2C
- Passaggio 16: parte di montaggio 1
- Passaggio 17: prototipo di gamepad I2C
- Passaggio 18: crea un gamepad I2C
- Passaggio 19: assemblaggio parte 2
- Passaggio 20: Opzionale: pin di breakout audio
- Passaggio 21: cosa c'è dopo?
2025 Autore: John Day | [email protected]. Ultima modifica: 2025-01-23 14:49



Queste istruzioni mostrano come utilizzare ESP32 e ATtiny861 per creare una console di gioco emulatore NES.
Passaggio 1: preparazione dell'hardware


Scheda di sviluppo ESP32
Questa volta sto usando una scheda di sviluppo ESP32 TTGO T8. Questa scheda ha un circuito di ricarica e regolazione Lipo integrato, può aiutare a ridurre i componenti extra.
Schermo
Questa volta sto usando un LCD IPS da 2,4 . Il controller del driver è ST7789V e la risoluzione è 320 x 240. Questa risoluzione è più adatta per la risoluzione 252 x 224 dell'emulatore NES.
Batteria
Questa volta sto usando una batteria Lipo 454261. 4,5 mm è lo spessore della scheda di sviluppo ESP32 e 61 mm è la larghezza della scheda.
Intestazione pin
Un connettore maschio rotondo a 4 pin e un connettore femmina rotondo a 4 pin per il collegamento del gamepad I2C.
Piastra PETG
Una piccola piastra in PET/PETG per supportare la scheda di sviluppo e la batteria Lipo, puoi trovarla facilmente nella confezione del prodotto.
PCB multiuso
Sono necessari 2 PCB, 1 spessore 0,4 mm per supportare il display, 1 spessore 1,2 mm per un gamepad I2C.
pulsanti
Un pulsante a 5 direzioni, 2 piccoli pulsanti per Seleziona e Avvia e 2 per il pulsante A e B.
Controller I2C Gamepad
Questa volta utilizzo un microcontrollore ATtiny861 come controller per gamepad I2C.
Altri
1 resistore SMD da 12 Ohm, un programmatore ISP (es. TinyISP)
Passaggio 2: preparazione del software



Arduino IDE
Scarica e installa Arduino IDE se non ancora:
ATTinyCore Support
Segui i passaggi di installazione per aggiungere il supporto ATTinyCore se non ancora:
ESP-IDF
Segui la guida introduttiva di ESP-IDF per configurare l'ambiente di sviluppo se non ancora:
Passaggio 3: stampa 3D

Scarica e stampa la custodia:
Passaggio 4: supporto LCD


Tagliare un PCB da 0,4 mm 24 x 27 fori per il supporto LCD. Ricorda di riservare un po' di spazio per l'FPC LCD pieghevole. Quindi utilizzare del nastro biadesivo per fissare il display LCD sul PCB.
Passaggio 5: preparare la piastra PETG


Ritaglia una piastra PETG da 62 mm x 69 mm per la scheda di sviluppo e il supporto della batteria Lipo.
Passaggio 6: correzione della scheda di sviluppo ESP32

Utilizzare nastro biadesivo per fissare la scheda di sviluppo sulla piastra PETG.
Passaggio 7: riparare la batteria Lipo

Utilizzare nastro biadesivo per fissare la batteria Lipo oltre alla scheda di sviluppo.
Passaggio 8: collegare la batteria e la scheda di sviluppo

Passaggio 9: preparare i pin del display

Il display LCD ha molte varianti di diversi fornitori. Si prega di ottenere il datasheet corretto e di leggerlo prima di qualsiasi patch e connessione.
Alcuni pin sono riservati al pannello a sfioramento. Poiché questo LCD non ha un pannello a sfioramento, è sufficiente ritagliare quei pin per ridurre il disturbo.
Passaggio 10: collegare i pin GND


Nella maggior parte dei casi, ci sono pochi pin che richiedono la connessione a GND. Per ridurre lo sforzo di saldatura, ho tagliato una forma di nastro di rame per raggiungere tutti i pin GND e quindi saldare del tutto.
Passaggio 11: collegare i pin Vcc

Sono necessari 2 pin per la connessione a Vcc, alimentazione LCD e alimentazione LED. Secondo la scheda tecnica, l'alimentazione LCD può essere collegata direttamente al pin 3,3 V della scheda di sviluppo, ma l'alimentazione LED funziona leggermente al di sotto di 3,3 V. Quindi è meglio aggiungere un resistore SMD nel mezzo, ad es. Resistenza da 12 Ohm.
Passaggio 12: collegare il supporto per LCD e scheda di sviluppo

utilizzare insieme il supporto LCD per la connessione a nastro e il supporto della scheda di sviluppo. Entrambi i supporti dovrebbero riservare uno spazio di circa 5 mm per la piegatura.
Passaggio 13: collegare i pin SPI

Ecco il riepilogo dei collegamenti:
LCD ESP32
GND -> GND RST -> GPIO 33 SCL -> GPIO 18 DC -> GPIO 27 CS -> GPIO 5 SDI -> GPIO 23 SDO -> non connesso Vcc -> LED 3,3 V+ -> resistenza 12 Ohm -> LED 3,3 V - -> GND
Passaggio 14: Programma Flash




- Scarica il codice sorgente su GitHub:
- Nella cartella del codice sorgente, esegui "make menuconfig"
- Seleziona "Configurazione specifica per Nofrendo ESP32"
- Seleziona "Hardware su cui eseguire" -> "Hardware personalizzato"
- Selezionare "Tipo LCD" -> "LCD ST7789V"
- Impostazioni pin di riempimento: MISO -> -1, MOSI -> 23, CLK -> 18, CS -> 5, DC -> 27, RST -> 33, Retroilluminazione -> -1, IPS -> Y
- Esci e salva
- Esegui "make -j5 flash"
- Esegui "sh flashrom.sh PATH_TO_YOUR_ROM_FILE"
Passaggio 15: connettore I2C



Breakout i pin I2C, i pin I2C predefiniti di ESP32 sono:
Pin 1 (SCL) -> GPIO 22
Pin 2 (SDA) -> GPIO 21 Pin 3 (Vcc) -> 3,3 V (nessuna alimentazione a 5 V se alimentato da batteria Lipo) Pin 4 (GND) -> GND
Passaggio 16: parte di montaggio 1


Segui i passaggi del video per piegare e spremere tutte le parti nella custodia.
Passaggio 17: prototipo di gamepad I2C


Il programma per l'I2C Gamepad è molto semplice, solo 15 righe di codice. Ma è un po' difficile riprogrammare l'ATtiny861 dopo la saldatura, quindi è meglio testarlo prima sulla breadboard.
Scarica, compila e flasha il programma da GitHub:
Passaggio 18: crea un gamepad I2C



Ecco il collegamento Riepilogo:
Pulsante ATtiny861
GND -> Tutti i pulsanti un pin Pin 20 (PA0) -> Pulsante Su Pin 19 (PA1) -> Pulsante Giù Pin 18 (PA2) -> Pulsante Sinistro Pin 17 (PA3) -> Pulsante Destro Pin 14 (PA4) -> Pulsante Select Pin 13 (PA5) -> Pulsante Start Pin 12 (PA6) -> Pulsante A Pin 11 (PA7) -> Pulsante B Pin 6 (GND) -> Pin header pin maschio I2C Pin 4 Pin 5 (Vcc) -> I2C Pin header maschio pin 3 Pin 3 (SCL) -> I2C pin header pin maschio Pin 1 Pin 1 (SDA) -> I2C pin header pin 2
Passaggio 19: assemblaggio parte 2



Segui i passaggi video per installare la cover e il gamepad I2C sul corpo principale.
Passaggio 20: Opzionale: pin di breakout audio



La scheda di sviluppo ESP32 Pin 25 e 26 sta emettendo il segnale audio analogico, è molto facile rompere questi 2 pin e anche i pin di alimentazione (3,3 V e GND) nella parte superiore. Quindi puoi patchare un auricolare per collegarlo. Oppure puoi anche aggiungere un modulo amplificatore audio con altoparlante per riprodurlo ad alto volume.
Passaggio 21: cosa c'è dopo?

L'emulatore NES non è l'unica cosa interessante che puoi fare con ESP32. Per esempio. puoi costruire una console micro python con esso. L'unico componente che devi cambiare è dal gamepad I2C alla tastiera I2C. Penso che non sia così difficile farlo con un controller ATtiny88. Puoi seguire il mio Twitter per vedere lo stato.
Consigliato:
Console da gioco portatile Lego con Space Invaders: 4 passaggi

Console di gioco portatile Lego con Space Invaders: hai mai pensato di essere uno sviluppatore di giochi e di costruire la tua console di gioco con cui puoi giocare in movimento? Tutto ciò di cui hai bisogno è un po' di tempo, hardwareLego bricksa Mini-Calliope (ordinabile su questo sito https://calliope.cc/en) e un po' di abilità
Console di gioco portatile fai-da-te con RetroPie: 7 passaggi

Console di gioco portatile fai-da-te con RetroPie: guarda il video sopra per capire meglio questo progetto. Bene. È ora di iniziare! Prima di tutto, useremo RetroPie. Questo ci lascia con due opzioni. Se abbiamo già installato Raspbian sulla nostra scheda SD, possiamo installare RetroP
Crea la tua console di gioco retrò portatile!che è anche un tablet Win10!: 6 passaggi (con immagini)

Crea la tua console di gioco retrò portatile!……che è anche un tablet Win10!: In questo progetto ti mostrerò come creare una console di gioco retrò portatile che può essere utilizzata anche come tablet Windows 10. Consisterà in un 7" LCD HDMI con touchscreen, un SBC LattePanda, un PCB di alimentazione PD USB di tipo C e alcuni altri complementi
Console di gioco portatile Raspberry Pi Zero fai da te: 6 passaggi (con immagini)

Console di gioco portatile Raspberry Pi Zero fai-da-te: in questo progetto ti mostrerò come ho utilizzato un Raspberry Pi Zero, batterie NiMH, un circuito di protezione da sovraccarico fatto in casa, un lcd retrovisore e un amplificatore audio per creare una console di gioco portatile che può giocare giochi retrò. Iniziamo
Console di gioco portatile - Arduboy Clone: 6 passaggi (con immagini)

Console di gioco portatile | Arduboy Clone: Qualche mese fa mi sono imbattuto in Arduboy che, secondo il suo sito web ufficiale, è una piattaforma di gioco in miniatura a 8 bit che rende facile imparare, condividere e giocare online. È una piattaforma open source. I giochi per Arduboy sono realizzati dall'utente