Sommario:
- Passaggio 1: cos'è Arduino Esplora?
- Passaggio 2: cos'è M5Stack?
- Passaggio 3: perché giocare a giochi retrò con ESP32?
- Passaggio 4: preparazione dell'hardware
- Passaggio 5: preparazione del software
- Passaggio 6: programma I2C Gamepad
- Step 7: Breakout Esplora I2C
- Passaggio 8: utilizzare le intestazioni dei pin per correggere M5Stack su Esplora
- Passaggio 9: collegare i pin I2C
- Passaggio 10: programma M5Stack
- Passaggio 11: divertiti
2025 Autore: John Day | [email protected]. Ultima modifica: 2025-01-13 06:57
Queste istruzioni mostrano come combinare Arduino Esplora e M5Stack per creare una console di gioco NES.
Passaggio 1: cos'è Arduino Esplora?
Arduino Esplora è una scheda microcontrollore Atmega32U4 AVR.
È una scheda Arduino unica, perché incorpora vari sensori di input pronti all'uso, tra cui un joystick, 4 pulsanti, uno slider, un sensore di temperatura, un accelerometro, un microfono, un sensore di luce, ecc.
E anche Arduino IDE ha fornito vari esempi per utilizzarlo tutto.
Questa volta programmerò Esplora come un dispositivo slave I2C per fungere da gamepad I2C.
Rif.:
Passaggio 2: cos'è M5Stack?
M5Stack inizia da un progetto kickstarter nel 2017, core ESP32, LCD a colori 2.0 integrato, fattore di forma minuscolo di 5 cm, supporto moduli impilabili e moduli I2C grove.
Ora ha già vari modelli di base, decine di moduli impilabili e supporta anche tonnellate di moduli I2C Grove.
Rif.:
www.kickstarter.com/projects/179167367/m5s…
m5stack.com/
Passaggio 3: perché giocare a giochi retrò con ESP32?
È un argomento molto popolare che utilizza Raspberry Pi per creare una console di gioco retrò con la distribuzione Retropie.
Fa il suo lavoro molto bene, ma il problema più notevole è il tempo di avvio.
Non voglio aspettare più di mezzo minuto per entrare in un gioco retrò, una vera console di gioco, non c'è bisogno di aspettare per questo!
Poi ho scoperto che esp32-nesemu non è necessario attendere l'avvio, quindi provo a utilizzare M5Stack per creare una console di gioco NES.
Passaggio 4: preparazione dell'hardware
Arduino Esplora
Il prodotto ufficiale è obsoleto ma è ancora molto facile trovare un clone sul web.
M5Stack
Qualsiasi core M5Stack con LCD da 2,0 dovrebbe andare bene.
Intestazioni pin
Connettore maschio-maschio a 2 pin e connettore maschio-femmina a 6 pin.
Cavo di conversione Grove
È preferibile il normale cavo di conversione da ponticello maschio a 4 pin a Grove a 4 pin. Non avevo questo cavo in mano, quindi ho appena applicato la patch 1 per collegare i pin SCL e SDA da solo.
Passaggio 5: preparazione del software
Arduino IDE
Scarica e installa Arduino IDE se non ancora:
www.arduino.cc/en/Main/Software
ESP-IDF
Segui la guida all'installazione per installare ESP-IDF se non ancora:
docs.espressif.com/projects/esp-idf/en/sta…
Passaggio 6: programma I2C Gamepad
Ho scritto un semplice programma per leggere l'input del joystick e dei pulsanti e tradurlo in un messaggio I2C.
Ecco i passaggi del programma:
- Scarica esplora-i2c-gamepad.ino su GitHub:
- Connetti Esplora al computer
- Apri Arduino
- Carica programma
Step 7: Breakout Esplora I2C
Arduino Esplora ha la maggior parte delle interfacce utente e I/O, ma ironia della sorte è la mancanza di pin di breakout I2C (Grove System).
Fortunatamente, i pin I2C nell'ATMega32U4 non sono ancora utilizzati per altri scopi. E anche l'intestazione del pin sul lato sinistro sull'Esplorazione è "non attualmente connessa", possiamo usare questa intestazione del pin per rompere i pin I2C.
Basta usare 2 fili e alcune saldature per collegare ATMega32U4 pin 18 (SCL) e pin 19 (SDA) all'intestazione del pin sinistro.
Rif.:
Passaggio 8: utilizzare le intestazioni dei pin per correggere M5Stack su Esplora
Il maggior numero di 2 pin inferiori nell'intestazione del pin sul lato destro di Esplora è GND e 5V, può essere abbinato al pinout della base del core M5Stack. Quindi possiamo piegare un'intestazione pin maschio-maschio a 2 pin per collegarli tra loro.
L'intestazione del pin sinistro di Esplora non ha collegato nulla, i passaggi precedenti hanno utilizzato 2 pin più in alto come breakout I2C. Rimangono 6 pin, possiamo piegare un header pin maschio-femmina a 6 pin per fissare l'M5Stack su Esplora.
Passaggio 9: collegare i pin I2C
Esplora e M5Stack comunicano con protocollo I2C, M5Stack funge da master I2C ed Esplora è I2C slave.
Poiché GND e 5V erano già collegati ai passaggi precedenti, solo SCL e SDA richiedevano un'ulteriore connessione.
Passaggio 10: programma M5Stack
- Scarica la versione rivista di esp32-nesemu da GitHub:
- Sotto esp32-nesemu, esegui "make menuconfig"
- Accedi al sottomenu "Configurazione specifica per Nofrendo ESP32"
- Seleziona "Hardware su cui eseguire" su "M5Stack"
- Abilita "Audio analogico su GPIO26"
- Seleziona "Tipo di controller" su "I2C Gamepad"
- Esci da menuconfig
- Esegui "make -j5 all" per compilare il programma
- Collega M5Stack al computer
- Esegui "make flash" per eseguire il flashing del binario compilato su M5Stack
- Esegui "sh flashrom.sh PATH_TO_YOUR_NES_ROM_FILENAME"
Passaggio 11: divertiti
È ora di giocare al tuo gioco preferito!