Taula de continguts:

ESP8266 VGA Pong: 5 passos (amb imatges)
ESP8266 VGA Pong: 5 passos (amb imatges)

Vídeo: ESP8266 VGA Pong: 5 passos (amb imatges)

Vídeo: ESP8266 VGA Pong: 5 passos (amb imatges)
Vídeo: ESP8266 VGA Pong 2024, Juliol
Anonim
Image
Image
Llista de materials
Llista de materials

En aquest Instructables mostraré com construir una reproducció del clàssic joc Pong per a un monitor VGA, utilitzant un ESP8266 i alguns altres components.

Aquest joc és possible gràcies a la biblioteca EspVGAx publicada recentment a GitHub per Sandro Maffiodo (també conegut com Smaffer) i, pel que sé, aquest és el primer joc que ho explota.

La biblioteca implementa una resolució de 512 x 480 píxels, emmagatzemada en un framebuffer dins de la memòria RAM, que requereix 30720 bytes. La resolució és enorme en comparació amb les Arduino TVout o les VGAx (128 x 96 i 120 x 60 píxels respectivament). Espero que aquest joc inspiri altres programadors a desenvolupar o reproduir jocs més complexos.

Pas 1: Llista de materials

La biblioteca EspVGAx requereix un ESP8266 amb tots els GPIO exposats, com ara ESP-12E, placa NodeMCU-12E o qualsevol placa que exposi GPIO5 (D1), GPIO4 (D2) i GPIO13 (D7)

En particular, he utilitzat:

  • un ESP8266 NodeMCU-12E (enllaç aquí)
  • un connector DSUB15 (és a dir, un connector femella VGA)
  • una resistència de 330 Ohm
  • una altra resistència (d'1 a 3 kOhm)
  • dos potenciòmetres de 10 kOhm
  • un polsador (n.o.)
  • dos díodes (com ara 1N4007s)
  • una pissarra
  • cables

Vaig obtenir el connector DSUB15 d’una antiga placa de PC VGA. Com a alternativa, també podeu tallar un cable VGA antic i connectar els cables directament a la placa de control.

Pas 2: Biblioteca i càrrega de croquis

Biblioteca i esbós de càrrega
Biblioteca i esbós de càrrega

Hi ha diferents mètodes per programar i ESP8266; He utilitzat l'IDE Arduino per escriure Pong i penjar el codi.

Tingueu en compte que la biblioteca EspVGAx funciona per a Arduino IDE 1.8.1. Si teniu altres versions, el millor és descarregar els fitxers.zip i descomprimir-los en una carpeta dedicada. La versió per a Windows ja és aquí. Les versions per a altres sistemes operatius són aquí.

Després, hauríeu de descarregar la biblioteca EspVGAx de la pàgina GithHub aquí (enllaç directe per a la versió zip aquí) i descomprimir-la a les biblioteques de carpetes del programari Arduino.

NB Hi ha un petit error al fitxer espvgax_draw.h. Per corregir-lo, només cal substituir la línia 17:

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

Finalment, podeu descarregar ESP8266_Pong.rar al final d’aquest pas.

Un cop descomprimit, per carregar-lo al vostre ESP8266, heu de configurar l'IDE Arduino.

Si no ho heu fet mai, podeu trobar totes les instruccions necessàries en aquest manual, en particular al pas 2.

Un cop configurat tot, la configuració de l'ESP8266 hauria de ser semblant a la que es mostra a la imatge superior.

Si podeu penjar el codi sense errors, podeu començar a muntar les peces.

Pas 3: Connexió de les parts: el connector VGA

Connexió de les peces: el connector VGA
Connexió de les peces: el connector VGA
Connexió de les peces: el connector VGA
Connexió de les peces: el connector VGA
Connexió de les peces: el connector VGA
Connexió de les peces: el connector VGA

Us recomano connectar primer el port VGA, tal com es mostra a les imatges anteriors. Tingueu en compte que si connecteu els tres pins Vermell, Verd i Blau junts (és a dir, els pins 1, 2 i 3 del connector DSUB15), tindreu una imatge en blanc i negre a la pantalla. També podeu tenir diferents combinacions de colors. Vegeu els detalls a la pàgina Library GitHub.

A més, hauríeu de connectar una resistència de 330 Ohm entre els pins RGB i el D7 (GPIO13) de l’ESP8266. Això em va donar una imatge una mica grisenca al monitor, per la qual cosa, després de fer-ho, vaig decidir eliminar-la.

En aquest moment, si tot funciona correctament, ja podeu connectar el monitor i veure la pantalla inicial del joc, amb el bàner "ESP8266 VGAx Pong".

Pas 4: Connexió de les parts: el botó i els potenciòmetres

Connexió de les parts: el botó i els potenciòmetres
Connexió de les parts: el botó i els potenciòmetres

El botó ha d’estar connectat entre 3,3 V i el pin D0 (GPIO16). Connecteu també la resistència d'1 a 3 kOhm de D0 a terra. Això evita que D0 es trobi en un estat indeterminat quan el botó està obert.

La connexió dels dos potenciòmetres és menys trivial, de fet, l’ESP8266 només té un port d’entrada analògic A0 (ADC0). El truc és connectar les dues sortides de pot.s al mateix port i "multiplexar-les". Multiplexar significa simplement que engegueu un potenciòmetre, el llegiu, el desactiveu i passareu al segon.

Si voleu obtenir més informació sobre aquest mètode, podeu llegir aquest manual.

Connecteu un extrem de potenciòmetre a GND, l'altre extrem a D5 per al potenciòmetre del jugador esquerre i D6 per al jugador del dret.

Cada pin central del potenciòmetre ha de connectar-se a un díode individual i els altres costats dels díodes han d’estar connectats a A0 (ADC0), amb la polaritat que es mostra a la imatge anterior.

Pas 5: Conclusió i agraïments

Estic agraït a Sandro Maffiodo - SMAFFER - per la biblioteca ESPVGAX. Aquest joc no seria possible sense ell.

Espero que aquest Instructable sigui una inspiració per a altres programadors per fer reproduccions de jocs arcade clàssics més complexos amb l’ESP8266, que té moltes menys limitacions que l’Arduino.

Finalment, vaig escriure aquest instructiu per presentar-lo al concurs de joguines: si us agrada o el reproduïu, preneu-vos un moment per votar-lo.

Recomanat: