Tabla de contenido:

Juegos de arcade y joystick ESP32 VGA: 6 pasos (con imágenes)
Juegos de arcade y joystick ESP32 VGA: 6 pasos (con imágenes)

Video: Juegos de arcade y joystick ESP32 VGA: 6 pasos (con imágenes)

Video: Juegos de arcade y joystick ESP32 VGA: 6 pasos (con imágenes)
Video: Hazte tu Arcade Stick sin latencia real 2024, Noviembre
Anonim
Image
Image
Joystick y juegos de arcade ESP32 VGA
Joystick y juegos de arcade ESP32 VGA
Joystick y juegos de arcade ESP32 VGA
Joystick y juegos de arcade ESP32 VGA

En este instructivo, mostraré cómo reproducir cuatro juegos tipo arcade: Tetris, Snake, Breakout, Bomber, usando un ESP32, con la salida para un monitor VGA.

La resolución es de 320 x 200 píxeles, en 8 colores. Anteriormente hice una versión con un Arduino Uno (ver aquí), pero la resolución era de solo 120 x 60 píxeles, 4 colores y la memoria Arduino estaba casi llena. Gracias a las mayores prestaciones del ESP32, tanto la resolución como la jugabilidad son mayores. Además, todavía hay mucha memoria disponible, por lo que agregar nuevos juegos en el futuro será sencillo.

También mostraré caliente para conectar un simple joystick a través de un cable RS232. Estoy usando el mismo pinout del Commodore 64.

Este proyecto es posible gracias a la impresionante biblioteca ESP32 VGA escrita por Fabrizio Di Vittorio. Consulte aquí para obtener más detalles.

Paso 1: placas ESP32, instalación de Arduino IDE y configuración de la biblioteca VGA

Placas ESP32, instalación de Arduino IDE y configuración de biblioteca VGA
Placas ESP32, instalación de Arduino IDE y configuración de biblioteca VGA
Placas ESP32, instalación de Arduino IDE y configuración de biblioteca VGA
Placas ESP32, instalación de Arduino IDE y configuración de biblioteca VGA
Placas ESP32, instalación de Arduino IDE y configuración de biblioteca VGA
Placas ESP32, instalación de Arduino IDE y configuración de biblioteca VGA

En primer lugar, debe comprar un ESP32 revisión 1 o superior. Hay muchas versiones disponibles, pero recomiendo elegir una con muchos pines, preferiblemente un modelo como el de esta imagen, con 38 pines. Estoy usando esta versión, pero creo que muchas otras también están bien. En ebay puedes encontrar este modelo por menos de 7 euros, incluida la entrega.

Una vez que obtenga la placa, debe continuar con los siguientes tres subpasos:

  1. Instale el último IDE de Arduino
  2. Configure el ESP32 en el IDE y
  3. Descargue e instale la biblioteca VGA

Subpaso 1. Hay diferentes métodos para programar el ESP32, pero aquí necesitas usar el IDE de Arduino (por cierto, estoy usando la versión 1.8.9). Para instalarlo, puede ir a la página IDE de Arduino y seguir las instrucciones.

Subpaso 2. Una vez realizada la operación anterior, debe configurar su ESP32 dentro del IDE de Arduino. Esto no es trivial, ya que el ESP32 no es (¿todavía?) Nativo en él. Puede seguir este tutorial o los siguientes pasos.

1) abre el IDE de Arduino

2) abra la ventana de preferencias, Archivo / Preferencia, alternativamente presione "Ctrl + coma"

3) vaya a las "URL adicionales del administrador del tablero", copie y pegue el siguiente texto:

https://dl.espressif.com/dl/package_esp32_index.js…

y haga clic en el botón Aceptar.

4) Administrador de tableros abiertos. Vaya a Herramientas / Tablero / Administrador de tableros…

5) Busque ESP32 y presione el botón de instalación para "ESP32 by Espressif Systems":

6) En este punto, cuando conecte por primera vez su ESP32, debe elegir el modelo correcto en la larga lista de placas ESP32 disponibles (vea la imagen en este paso). En caso de dudas sobre el modelo, simplemente elija el genérico, es decir, el primero. Esto funciona para mi.

7) el sistema también debe elegir el puerto USB (COM) correcto y la velocidad de carga (normalmente 921600). En este punto, debe establecerse la conexión entre su PC y la placa ESP32.

Paso secundario 3. Finalmente, debe instalar la biblioteca FabGL VGA. Haga clic aquí para descargar el archivo comprimido completo. Descomprímalo y copie la carpeta resultante (FabGL-master) en la carpeta de bibliotecas IDE de Arduino, que se ve así:

"… / Arduino-1.8.12 / bibliotecas".

Paso 2: carga de "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0"

Descargue ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip al final de este paso. Descomprímalo y ábralo con el IDE de Arduino, luego cárguelo en su ESP32. Si no tiene mensajes de error, el código ya debería estar ejecutándose y solo necesita conectar el puerto VGA y los botones (o joystick).

Paso 3: Conexión del puerto VGA

Conexión del puerto VGA
Conexión del puerto VGA

Necesita las siguientes piezas:

  • un conector DSUB15, es decir, un conector VGA hembra o un cable VGA a cortar.
  • tres resistencias de 270 ohmios.

Conecte los pines 2, 15 y 21 de GPIO ESP32 a VGA Red, Green y Blue respectivamente, a través de las resistencias de 270 Ohm.

Conecte el VGA Hsync y Vsync a los pines 17 y 4 de ESP32 GPIO respectivamente.

Conecte los pines 5, 6, 7, 8 y 10 de los conectores DSUB15 al ESP32 GND.

Para la definición de clavijas del conector VGA DSUB15, consulte la imagen de este paso. NB, este es el lado de soldadura del conector hembra.

Paso 4: conecte los cuatro botones

Conecte los cuatro botones
Conecte los cuatro botones
Conecte los cuatro botones
Conecte los cuatro botones
Conecte los cuatro botones
Conecte los cuatro botones

Si no tiene un joystick C64, puede conectar cuatro botones siguiendo este paso. Si tiene el joystick, puede omitir este paso y pasar al siguiente, pero de todos modos puede conectar los botones y el joystick (de todos modos, están "en paralelo").

El esquema de este paso muestra cómo conectar un solo botón (normalmente abierto) de + 5V al pin dado ESP32.

Tenga en cuenta que también necesita conectar el pin dado del ESP a GND a través de una resistencia de 1 a 5 kOhm. De esta manera, cuando se suelta el botón (se abre), el pin ESP está exactamente a cero voltios. Más específicamente, necesita conectar cuatro botones con el siguiente orden:

  • Pin 12 al botón derecho
  • Pin 25 al botón Arriba
  • Pin 14 al botón izquierdo
  • Pin 35 al botón Abajo

Paso 5: conecte el joystick

Conectar el joystick
Conectar el joystick
Conectar el joystick
Conectar el joystick
Conectar el joystick
Conectar el joystick

Un joystick C64 tiene el pinout que se muestra en la primera imagen de este paso. Para conectarlo al ESP32, necesita un conector macho DSUB de 9 pines (es decir, un enchufe), como se muestra en la segunda imagen. Saqué uno con clavijas expuestas de una vieja placa electrónica. Puede usar una pistola de calor para quitarlo (¡pero hágalo al aire libre!).

Debe conectar los pines siguiendo el orden numérico en estas imágenes. Tenga en cuenta que el esquema se refiere al lado del joystick, por lo que representa la conexión de su enchufe hembra. El enchufe (macho) para conectar al ESP32 tiene los pines con disposición de "espejo". En caso de duda, recuerde que el número de pin siempre se indica en los conectores macho y hembra, como se muestra en la tercera imagen.

Si desea controlar los juegos solo con el joystick, conecte su pin común (9) a ESP32 + 5V, y los pines 1, 2, 3, 4 y 6 del joystick a los pines dados ESP siguiendo la siguiente lista.

  • Pin 12 de ESP al botón derecho (pin 4 de RS232)
  • Clavija 14 del ESP al botón izquierdo (clavija 3 de RS232)
  • Pin 35 del ESP al botón Abajo (pin 2 de RS232)
  • Pin 25 del ESP al botón Arriba (pin 1 y 6 de RS232, es decir, disparo del joystick)

NOTA: los pines 12, 14, 25 y 35 del ESP también deben estar conectados a GND a través de una resistencia de 1 a 5 kOhm. De esta manera, cuando se suelta (se abre) el botón, el pin ESP está exactamente a cero voltios.

La posición ARRIBA del joystick NB2 y el botón de disparo están conectados juntos al pin 25 de ESP-

He conectado cuatro botones en la placa de la PC, de esta forma no necesito el joystick para jugar (aunque con el joystick es mucho más divertido). Nuevamente, el pin 9 de RS232 debe estar conectado a +5 V y los pines del joystick están en paralelo a los botones.

Paso 6: Conclusión y reconocimiento

Conclusión y reconocimiento
Conclusión y reconocimiento

Si todo funciona correctamente, simplemente conecte el monitor VGA y podrá disfrutar de un juego al estilo antiguo.

También puede dibujar un conjunto de Mandelbrot con una resolución de 640 x 350 píxeles, solo para probar las capacidades de la biblioteca VGA.

Tenga en cuenta que el código está escrito de manera que se puedan agregar fácilmente otros juegos en el futuro (¡el ESP32 tiene mucho espacio!). Si este proyecto tiene suficiente interés, puedo hacer eso …

Finalmente, deseo expresar mis tanques a Fabrizio Di Vittorio por su increíble biblioteca ESP32 VGA. Para obtener más detalles, ejemplos y… Space Invaders, visite su sitio.

Recomendado: