Innehållsförteckning:
- Steg 1: Vad är Arduino Esplora?
- Steg 2: Vad är M5Stack?
- Steg 3: Varför spela retrospel med ESP32?
- Steg 4: Förberedelse av maskinvara
- Steg 5: Förberedelse av programvara
- Steg 6: Program I2C Gamepad
- Steg 7: Breakout Esplora I2C
- Steg 8: Använd Pin Headers för att fixa M5Stack på Esplora
- Steg 9: Anslut I2C -stift
- Steg 10: Programmera M5Stack
- Steg 11: Njut
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Denna instruktion visar hur du kombinerar Arduino Esplora och M5Stack för att skapa en NES -spelkonsol.
Steg 1: Vad är Arduino Esplora?
Arduino Esplora är ett Atmega32U4 AVR -mikrokontrollerkort.
Det är unika Arduino-kort, eftersom det har inbyggda olika ingångssensorer utanför lådan, inklusive en joystick, 4 tryckknappar, en reglage, en temperatursensor, en accelerometer, en mikrofon, en ljussensor, etc.
Och även Arduino IDE gav olika exempel för att använda allt.
Den här gången kommer jag att programmera Esplora som en I2C -slavenhet för att fungera som en I2C -spelkontroll.
Ref.:
Steg 2: Vad är M5Stack?
M5Stack startar från ett kickstarter-projekt 2017, ESP32-kärna, inbyggd 2,0 färg LCD, liten 5 cm formfaktor, stöd för staplingsbara moduler och grove I2C-moduler.
Nu har den redan olika kärnmodeller, tiotals staplingsbara moduler och stöder också massor av I2C Grove -moduler.
Ref.:
www.kickstarter.com/projects/179167367/m5s…
m5stack.com/
Steg 3: Varför spela retrospel med ESP32?
Det är ett mycket populärt ämne som använder Raspberry Pi för att göra en retro spelkonsol med Retropie -distribution.
Det gör jobbet mycket bra, men det mest anmärkningsvärda problemet är starttiden.
Jag vill inte vänta över en halv minut för att gå in i ett retrospel, en riktig spelkonsol behöver inte vänta på detta!
Sedan fann jag esp32-nesemu ingen anledning att vänta på start, så jag försöker använda M5Stack för att bygga en NES spelkonsol.
Steg 4: Förberedelse av maskinvara
Arduino Esplora
Den officiella produkten är föråldrad men det är fortfarande väldigt lätt att hitta en klon på webben.
M5Stack
Varje M5Stack -kärna med 2,0 LCD bör vara ok.
Stifthuvuden
2 stift han-han-stifthuvud och 6 stift han-hona-stifthuvud.
Grove -omvandlingskabel
Normal 4 -stifts hanbygel till Grove 4 -stifts konverteringskabel föredragen. Jag hade inte den här kabeln i handen, så jag lappar bara 1 för att ansluta SCL- och SDA -stift själv.
Steg 5: Förberedelse av programvara
Arduino IDE
Ladda ner och installera Arduino IDE om inte ännu:
www.arduino.cc/en/Main/Software
ESP-IDF
Följ installationsguiden för att installera ESP-IDF om inte ännu:
docs.espressif.com/projects/esp-idf/en/sta…
Steg 6: Program I2C Gamepad
Jag har skrivit ett enkelt program för att läsa joysticken och knapparna och översätta det till I2C -meddelande.
Här är programstegen:
- Ladda ner esplora-i2c-gamepad.ino på GitHub:
- Anslut Esplora till datorn
- Öppna Arduino
- Ladda upp program
Steg 7: Breakout Esplora I2C
Arduino Esplora har de flesta I/O och användargränssnitt, men ironiskt nog är det brist på I2C (Grove System) breakout pins.
Lyckligtvis används I2C -stiften i ATMega32U4 ännu inte för andra ändamål. Och även den vänstra sidans stifthuvud på Esplora är "för närvarande inte ansluten", vi kan använda denna stifthuvud för att bryta ut I2C -stiften.
Använd bara 2 trådar och lite lödarbete för att ansluta ATMega32U4 stift 18 (SCL) och stift 19 (SDA) till vänster stiftrubrik.
Ref.:
Steg 8: Använd Pin Headers för att fixa M5Stack på Esplora
De flesta 2 nedre stiften på Esplora höger sidhuvud är GND och 5V, den kan matchas med M5Stack -basbas. Så vi kan böja ett 2-stifts han-han-stifthuvud för att ansluta varandra.
Esplora vänster sida stifthuvud inte ansluten någonting, de föregående stegen använde två översta stiften när I2C bryter ut. Det finns kvar 6 stift, vi kan böja en 6-stifts han-hona stifthuvud för att fixa M5Stack på Esplora.
Steg 9: Anslut I2C -stift
Esplora och M5Stack kommunicerar med I2C -protokollet, M5Stack fungerar som I2C -master och Esplora är I2C -slav.
Eftersom GND och 5V redan var anslutna vid föregående steg, krävde endast SCL och SDA ytterligare anslutning.
Steg 10: Programmera M5Stack
- Ladda ner den reviderade versionen av esp32-nesemu från GitHub:
- Under esp32-nesemu, kör "make menuconfig"
- Öppna undermenyn "Nofrendo ESP32-specifik konfiguration"
- Välj "Hårdvara att köra på" till "M5Stack"
- Aktivera "Analogt ljud på GPIO26"
- Välj "Controller type" till "I2C Gamepad"
- Avsluta menykonfig
- Kör "make -j5 all" för att kompilera programmet
- Anslut M5Stack till datorn
- Kör "make flash" för att blinka den kompilerade binären till M5Stack
- Kör "sh flashrom.sh PATH_TO_YOUR_NES_ROM_FILENAME"
Steg 11: Njut
Det är dags att spela ditt favoritspel!