
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-23 14:49

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!
Consigliato:
Come installare Raspberry PI 4 Headless (VNC) con Rpi-imager e immagini: 7 passaggi (con immagini)

Howto: installazione di Raspberry PI 4 Headless (VNC) con Rpi-imager e immagini: ho intenzione di utilizzare questo Rapsberry PI in una serie di progetti divertenti nel mio blog. Sentiti libero di dare un'occhiata. Volevo tornare a usare il mio Raspberry PI ma non avevo una tastiera o un mouse nella mia nuova posizione. Era un po' che non installavo un Raspberry
Monitor meteo M5Stack M5stick C basato su ESP32 con DHT11 - Monitora l'umidità della temperatura e l'indice di calore su M5stick-C con DHT11: 6 passaggi

Monitor meteo M5Stack M5stick C basato su ESP32 con DHT11 | Monitora l'umidità della temperatura e l'indice di calore su M5stick-C con DHT11: Ciao ragazzi, in questo tutorial impareremo come interfacciare il sensore di temperatura DHT11 con m5stick-C (una scheda di sviluppo di m5stack) e visualizzarlo sul display di m5stick-C. Quindi in questo tutorial leggeremo la temperatura, l'umidità & calore io
Creare un orologio con M5stick C usando Arduino IDE - Orologio in tempo reale RTC con M5stack M5stick-C: 4 passaggi

Creare un orologio con M5stick C usando Arduino IDE | Orologio in tempo reale RTC con M5stack M5stick-C: Ciao ragazzi in questo tutorial impareremo come creare un orologio con la scheda di sviluppo m5stick-C di m5stack usando Arduino IDE. Quindi m5stick visualizzerà data, ora e amp; settimana del mese sul display
Le basi di Arduino Esplora: 4 passaggi

Le basi di Arduino Esplora: Oh! Non ti ho visto lì! Devi voler imparare le basi delle basi della grande tavola Esplora. Bene, entra, entra. Questo tutorial ti insegnerà un paio di trucchetti che puoi fare con il tuo Esplora
Come smontare un computer con semplici passaggi e immagini: 13 passaggi (con immagini)

Come smontare un computer con semplici passaggi e immagini: questa è un'istruzione su come smontare un PC. La maggior parte dei componenti di base sono modulari e facilmente smontabili. Tuttavia è importante che tu sia organizzato al riguardo. Questo ti aiuterà a non perdere parti e anche a rendere più facile il rimontaggio