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-13 06:57
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.