Tabla de contenido:

ESP8266 VGA Pong: 5 pasos (con imágenes)
ESP8266 VGA Pong: 5 pasos (con imágenes)

Video: ESP8266 VGA Pong: 5 pasos (con imágenes)

Video: ESP8266 VGA Pong: 5 pasos (con imágenes)
Video: La tarjeta Raspberry Pi Pico | Introducción y primeras pruebas | MicroPython 2024, Noviembre
Anonim
Image
Image
Lista de materiales
Lista de materiales

En este Instructables mostraré cómo construir una reproducción del clásico juego Pong para un monitor VGA, usando un ESP8266 y algunos otros componentes.

Este juego es posible gracias a la biblioteca EspVGAx publicada recientemente en GitHub por Sandro Maffiodo (también conocido como Smaffer) y, hasta donde yo sé, este es el primer juego que lo explota.

La biblioteca implementa una resolución de 512 x 480 píxeles, almacenada en un framebuffer dentro de la RAM, que requiere 30720 bytes. La resolución es enorme en comparación con las de Arduino TVout o VGAx (128 x 96 y 120 x 60 píxeles respectivamente). Espero que este juego inspire a otros programadores a desarrollar o reproducir juegos más complejos.

Paso 1: Lista de materiales

La biblioteca EspVGAx requiere un ESP8266 con todos los GPIO expuestos, como ESP-12E, placa NodeMCU-12E o cualquier placa que exponga GPIO5 (D1), GPIO4 (D2) y GPIO13 (D7)

En particular, utilicé:

  • un ESP8266 NodeMCU-12E (enlace aquí)
  • un conector DSUB15 (es decir, un conector hembra VGA)
  • una resistencia de 330 ohmios
  • otra resistencia (alrededor de 1 a 3 kOhmios)
  • dos potenciómetros de 10 kOhmios
  • un botón pulsador (n.o.)
  • dos diodos (como 1N4007s)
  • una placa de pruebas
  • alambres

Conseguí el conector DSUB15 de una vieja placa de circuito impreso VGA. Alternativamente, también puede cortar un cable VGA viejo y conectar los cables directamente a la placa de pruebas.

Paso 2: Biblioteca y carga de bocetos

Carga de bocetos y bibliotecas
Carga de bocetos y bibliotecas

Hay diferentes métodos para programar y ESP8266; Usé el IDE de Arduino para escribir Pong y cargar el código.

Tenga en cuenta que la biblioteca EspVGAx funciona para Arduino IDE 1.8.1. Si tiene otras versiones, lo mejor es descargar los archivos.zip y descomprimirlos en una carpeta dedicada. La versión de Windows está aquí. Las versiones para otros sistemas operativos están aquí.

Después de eso, debe descargar la biblioteca EspVGAx de la página de GithHub aquí (enlace directo para la versión zip aquí) y descomprimirla en las bibliotecas de carpetas en el software Arduino.

NB Hay un pequeño error en el archivo espvgax_draw.h. Para corregirlo, simplemente reemplace la línea 17:

while (x0% 32) {con while (x0% 32 && sw> 32) {

Finalmente, puede descargar ESP8266_Pong.rar al final de este paso.

Una vez descomprimido, para cargarlo en su ESP8266, debe configurar el IDE de Arduino.

Si nunca lo ha hecho, puede encontrar todas las instrucciones necesarias en este Instructables, en particular en el Paso 2.

Una vez que todo esté configurado, los ajustes de ESP8266 deberían verse como los que se muestran en la imagen de arriba.

Si puede cargar el código sin errores, puede comenzar a ensamblar las piezas.

Paso 3: Conexión de las piezas: el conector VGA

Conexión de las piezas: el conector VGA
Conexión de las piezas: el conector VGA
Conexión de las piezas: el conector VGA
Conexión de las piezas: el conector VGA
Conexión de las piezas: el conector VGA
Conexión de las piezas: el conector VGA

Recomiendo conectar primero el puerto VGA, como se muestra en las imágenes de arriba. Tenga en cuenta que al conectar los tres pines rojo, verde y azul juntos (es decir, pines 1, 2 y 3 en el conector DSUB15), tendrá una imagen en blanco y negro en su pantalla. También puedes tener diferentes combinaciones de colores. Consulte los detalles en la página de la biblioteca de GitHub.

Además, debe conectar una resistencia de 330 ohmios entre los pines RGB y el D7 (GPIO13) en el ESP8266. Esto me dio una imagen un poco grisácea en mi monitor, por lo que, después de algunos intentos, decidí eliminarla del todo.

En este punto, si todo funciona correctamente, ya puedes conectar el monitor y ver la pantalla de inicio del juego, con el banner "ESP8266 VGAx Pong".

Paso 4: Conexión de las piezas: los potenciómetros y el botón

Conexión de las piezas: los potenciómetros y el botón
Conexión de las piezas: los potenciómetros y el botón

El botón debe estar conectado entre 3.3V y el pin D0 (GPIO16). Conecte también la resistencia de 1 a 3 kOhmios de D0 a tierra. Esto evita que D0 se encuentre en un estado indeterminado cuando el botón está abierto.

La conexión de los dos potenciómetros es menos trivial, de hecho, el ESP8266 solo tiene un puerto de entrada analógica A0 (ADC0). El truco consiste en conectar ambas salidas pot.s al mismo puerto y 'multiplexarlas'. Multiplexar simplemente significa que encenderá un potenciómetro, lo leerá, luego lo apagará y pasará al segundo.

Si desea obtener más información sobre este método, puede leer este Instructable.

Conecte un extremo del potenciómetro a GND, el otro extremo a D5 para el potenciómetro del jugador izquierdo y D6 para el del jugador derecho.

Cada pin central del potenciómetro debe conectarse a un diodo individual, y los otros lados de los diodos deben conectarse a A0 (ADC0), con la polaridad que se muestra en la imagen de arriba.

Paso 5: Conclusión y agradecimientos

Agradezco a Sandro Maffiodo - SMAFFER - la biblioteca ESPVGAX. Este juego no sería posible sin él.

Espero que este Instructable sirva de inspiración para que otros programadores realicen reproducciones de juegos arcade clásicos más complejos con el ESP8266, que tiene muchas menos limitaciones que el Arduino.

Finalmente, escribí este Instructable para enviarlo al Concurso de Juguetes: si te gusta o lo reproduces, ¡tómate un momento para votarlo!

Recomendado: