Tabla de contenido:
- Paso 1: ¿Qué es Arduino Esplora?
- Paso 2: ¿Qué es M5Stack?
- Paso 3: ¿Por qué jugar al juego retro con ESP32?
- Paso 4: preparación del hardware
- Paso 5: preparación del software
- Paso 6: Programar el gamepad I2C
- Paso 7: Breakout Esplora I2C
- Paso 8: use encabezados de pines para arreglar M5Stack en Esplora
- Paso 9: conecte los pines I2C
- Paso 10: Programar M5Stack
- Paso 11: ¡Disfruta
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
Estos instructivos muestran cómo combinar Arduino Esplora y M5Stack para hacer una consola de juegos NES.
Paso 1: ¿Qué es Arduino Esplora?
Arduino Esplora es una placa de microcontrolador Atmega32U4 AVR.
Son placas Arduino únicas, porque incorporan varios sensores de entrada listos para usar, que incluyen un joystick, 4 botones, un control deslizante, un sensor de temperatura, un acelerómetro, un micrófono, un sensor de luz, etc.
Y también Arduino IDE proporcionó varios ejemplos para usarlo todo.
Esta vez programaré Esplora como un dispositivo esclavo I2C para que actúe como un gamepad I2C.
Ref.:
Paso 2: ¿Qué es M5Stack?
M5Stack partió de un proyecto kickstarter en 2017, núcleo ESP32, LCD a color de 2.0 incorporado, factor de forma diminuto de 5 cm, admite módulos apilables y módulos grove I2C.
Ahora ya tiene varios modelos centrales, decenas de módulos apilables y también admite toneladas de módulos I2C Grove.
Árbitro.:
www.kickstarter.com/projects/179167367/m5s…
m5stack.com/
Paso 3: ¿Por qué jugar al juego retro con ESP32?
Es un tema muy popular usar Raspberry Pi para hacer una consola de juegos retro con distribución Retropie.
Funciona muy bien, pero el problema más notable es el tiempo de arranque.
No quiero esperar más de medio minuto para ingresar a un juego retro, ¡una consola de juegos real, no es necesario esperar por esto!
Luego descubrí que esp32-nesemu no es necesario esperar para el arranque, así que trato de usar M5Stack para construir una consola de juegos NES.
Paso 4: preparación del hardware
Arduino Esplora
El producto oficial está obsoleto, pero aún es muy fácil encontrar un clon en la web.
M5Stack
Cualquier núcleo M5Stack con pantalla LCD de 2.0 debería estar bien.
Encabezados de pines
Conector de 2 pines macho-macho y conector de 6 pines macho-hembra.
Cable de conversión Grove
Se prefiere un puente macho normal de 4 pines a un cable de conversión Grove de 4 pines. No tenía este cable en la mano, así que solo parcheo 1 para conectar los pines SCL y SDA yo mismo.
Paso 5: preparación del software
IDE de Arduino
Descargue e instale Arduino IDE si aún no lo ha hecho:
www.arduino.cc/en/Main/Software
ESP-IDF
Siga la guía de configuración para instalar ESP-IDF si aún no lo ha hecho:
docs.espressif.com/projects/esp-idf/en/sta…
Paso 6: Programar el gamepad I2C
He escrito un programa simple para leer la entrada del joystick y los botones y traducirlo en un mensaje I2C.
Estos son los pasos del programa:
- Descarga esplora-i2c-gamepad.ino en GitHub:
- Conecta Esplora a la computadora
- Abrir Arduino
- Cargar programa
Paso 7: Breakout Esplora I2C
Arduino Esplora tiene la mayoría de las E / S e interfaces de usuario, pero, irónicamente, es la falta de pines de ruptura I2C (Grove System).
Afortunadamente, los pines I2C del ATMega32U4 aún no se utilizan para otros fines. Y también el encabezado de pin del lado izquierdo en el Esplora "no está conectado actualmente", podemos usar este encabezado de pin para romper los pines I2C.
Simplemente use 2 cables y un poco de trabajo de soldadura para conectar ATMega32U4 pin 18 (SCL) y pin 19 (SDA) al encabezado de pin izquierdo.
Ref.:
Paso 8: use encabezados de pines para arreglar M5Stack en Esplora
La mayoría de los 2 pines inferiores en el cabezal de pines del lado derecho de Esplora es GND y 5V, se puede combinar con el pinout de la base del núcleo M5Stack. Entonces podemos doblar un cabezal de clavija macho-macho de 2 pines para conectarse entre sí.
El encabezado del pin del lado izquierdo de Esplora no conectó nada, los pasos anteriores usaron 2 pines superiores cuando I2C se rompió. Quedan 6 pines, podemos doblar un cabezal de pines macho-hembra de 6 pines para fijar el M5Stack en el Esplora.
Paso 9: conecte los pines I2C
Esplora y M5Stack se comunican con el protocolo I2C, M5Stack actúa como maestro I2C y Esplora es esclavo I2C.
Dado que GND y 5V ya estaban conectados en los pasos anteriores, solo SCL y SDA requerían una conexión adicional.
Paso 10: Programar M5Stack
- Descargue la versión revisada de esp32-nesemu de GitHub:
- En esp32-nesemu, ejecute "make menuconfig"
- Ingrese al submenú "Configuración específica de Nofrendo ESP32"
- Seleccione "Hardware para ejecutar" a "M5Stack"
- Habilite "Audio analógico en GPIO26"
- Seleccione "Tipo de controlador" a "I2C Gamepad"
- Salir de menuconfig
- Ejecute "make -j5 all" para compilar el programa
- Conecte M5Stack a la computadora
- Ejecute "make flash" para actualizar el binario compilado a M5Stack
- Ejecute "sh flashrom.sh PATH_TO_YOUR_NES_ROM_FILENAME"
Paso 11: ¡Disfruta
¡Es hora de jugar tu juego de favor!