Sommario:

Console di gioco portatile ESP32: 21 passaggi (con immagini)
Console di gioco portatile ESP32: 21 passaggi (con immagini)

Video: Console di gioco portatile ESP32: 21 passaggi (con immagini)

Video: Console di gioco portatile ESP32: 21 passaggi (con immagini)
Video: GameBox Mini ESP32 - How to use WiFi Transfer Roms & Update Firmware - Tutorial 2024, Luglio
Anonim
Image
Image
Preparazione dell'hardware
Preparazione dell'hardware

Queste istruzioni mostrano come utilizzare ESP32 e ATtiny861 per creare una console di gioco emulatore NES.

Passaggio 1: preparazione dell'hardware

Preparazione dell'hardware
Preparazione dell'hardware
Preparazione dell'hardware
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

Preparazione del software
Preparazione del software
Preparazione del software
Preparazione del software
Preparazione del software
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

Stampa 3D
Stampa 3D

Scarica e stampa la custodia:

Passaggio 4: supporto LCD

Supporto LCD
Supporto LCD
Supporto LCD
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

Preparare la piastra PETG
Preparare la piastra PETG
Preparare la piastra PETG
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

Correggi la scheda di sviluppo ESP32
Correggi la scheda di sviluppo ESP32

Utilizzare nastro biadesivo per fissare la scheda di sviluppo sulla piastra PETG.

Passaggio 7: riparare la batteria Lipo

Riparare la batteria Lipo
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

Collega la batteria e la scheda di sviluppo
Collega la batteria e la scheda di sviluppo

Passaggio 9: preparare i pin del display

Preparare i pin del display
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

Collegare i pin GND
Collegare i pin GND
Collegare i pin GND
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

Collegare i pin Vcc
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

Connetti LCD e supporto per schede di sviluppo
Connetti LCD e supporto per schede 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

Connetti i pin SPI
Connetti 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

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

Passaggio 15: connettore I2C

Connettore I2C
Connettore I2C
Connettore I2C
Connettore I2C
Connettore I2C
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

Image
Image

Segui i passaggi del video per piegare e spremere tutte le parti nella custodia.

Passaggio 17: prototipo di gamepad I2C

Prototipo I2C Gamepad
Prototipo I2C Gamepad
Prototipo I2C Gamepad
Prototipo I2C Gamepad

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

Costruisci gamepad I2C
Costruisci gamepad I2C
Costruisci gamepad I2C
Costruisci gamepad I2C
Costruisci gamepad I2C
Costruisci 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

Image
Image
Opzionale: perni di breakout audio
Opzionale: perni di breakout audio

Segui i passaggi video per installare la cover e il gamepad I2C sul corpo principale.

Passaggio 20: Opzionale: pin di breakout audio

Image
Image
Opzionale: perni di breakout audio
Opzionale: perni 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?

Qual è il prossimo?
Qual è il prossimo?

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: