Taula de continguts:

ESP32 VGA Arcade Games i Joystick: 6 passos (amb imatges)
ESP32 VGA Arcade Games i Joystick: 6 passos (amb imatges)

Vídeo: ESP32 VGA Arcade Games i Joystick: 6 passos (amb imatges)

Vídeo: ESP32 VGA Arcade Games i Joystick: 6 passos (amb imatges)
Vídeo: ESP32 VGA four games & joystick 2024, Desembre
Anonim
Image
Image
ESP32 VGA Arcade Games i Joystick
ESP32 VGA Arcade Games i Joystick
ESP32 VGA Arcade Games i Joystick
ESP32 VGA Arcade Games i Joystick

En aquest instructiu us mostraré com reproduir quatre jocs arcade com el Tetris - Snake - Breakout - Bomber - mitjançant un ESP32, amb la sortida per a un monitor VGA.

La resolució és de 320 x 200 píxels, en 8 colors. Anteriorment he fet una versió amb un Arduino Uno (vegeu aquí), però la resolució només era de 120 x 60 píxels, 4 colors i la memòria Arduino estava gairebé plena. Gràcies a les majors prestacions de l’ESP32, tant la resolució com la jugabilitat són més altes. A més, encara hi ha molta memòria disponible, de manera que afegir nous jocs en el futur serà senzill.

També em mostraré en calent per connectar un senzill joystick mitjançant un cable RS232. Estic fent servir el mateix pinout del Commodore 64.

Aquest projecte és possible gràcies a la fantàstica biblioteca VGA ESP32 escrita per Fabrizio Di Vittorio. Consulteu aquí per obtenir més detalls.

Pas 1: targetes ESP32, instal·lació IDE Arduino i configuració de la biblioteca VGA

Targetes ESP32, instal·lació IDE Arduino i configuració de la biblioteca VGA
Targetes ESP32, instal·lació IDE Arduino i configuració de la biblioteca VGA
Targetes ESP32, instal·lació IDE Arduino i configuració de la biblioteca VGA
Targetes ESP32, instal·lació IDE Arduino i configuració de la biblioteca VGA
Targetes ESP32, instal·lació IDE Arduino i configuració de la biblioteca VGA
Targetes ESP32, instal·lació IDE Arduino i configuració de la biblioteca VGA

Primer de tot, heu de comprar un ESP32 revision 1 o superior. Hi ha moltes versions disponibles, però recomano triar-ne una amb molts pins, preferiblement un model com el de la imatge, amb 38 pins. Estic fent servir aquesta versió, però crec que moltes altres també estan bé. A ebay podeu trobar aquest model per menys de 7 euros, inclòs el lliurament.

Un cop obtingueu el tauler, heu de continuar amb els següents tres passos següents:

  1. Instal·leu l'últim ID Arduino
  2. Configureu l'ESP32 a l'IDE i
  3. Descarregueu i instal·leu la biblioteca VGA

Subpàs 1. Hi ha diferents mètodes per programar l'ESP32, però aquí heu d'utilitzar l'IDE Arduino (per cert, estic fent servir la versió 1.8.9). Per instal·lar-lo, podeu anar a la pàgina Arduino IDE i seguir les instruccions.

Subpàs 2. Un cop feta l'operació anterior, heu de configurar el vostre ESP32 dins de l'IDE Arduino. Això no és trivial, ja que l’ESP32 no hi és (encara?) Natiu. Podeu seguir aquest tutorial o els passos següents.

1) obriu l'IDE Arduino

2) obriu la finestra de preferències, Fitxer / Preferència, o bé premeu "Ctrl + coma"

3) aneu a "URL addicionals del gestor de taules", copieu i enganxeu el text següent:

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

i feu clic al botó D'acord.

4) Gestor de taules obertes. Aneu a Tools / Board / Boards Manager …

5) Cerqueu ESP32 i premeu el botó d'instal·lació de "ESP32 by Espressif Systems":

6) En aquest moment, quan connecteu per primera vegada el vostre ESP32, haureu de triar el model adequat a la llarga llista de taules ESP32 disponibles (vegeu la imatge d’aquest pas). En cas de dubtes sobre el model, només heu de triar el genèric, és a dir, el primer. Em funciona.

7) el sistema també ha de triar el port USB (COM) adequat i la velocitat de càrrega (normalment 921600). En aquest punt s’hauria d’establir la connexió entre el vostre PC i la placa ESP32.

Subpàs 3. Finalment, heu d’instal·lar la biblioteca FabGL VGA. Feu clic aquí per descarregar el fitxer comprimit complet. Descomprimiu-lo i copieu la carpeta resultant (FabGL-master) a la carpeta de biblioteques Arduino IDE, que té el següent aspecte:

"… / arduino-1.8.12 / biblioteques".

Pas 2: càrrega de "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0"

Baixeu ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip a la part inferior d’aquest pas. Descomprimiu-lo i obriu-lo amb l'IDE Arduino i, a continuació, pengeu-lo al vostre ESP32. Si no teniu missatges d'error, el codi ja hauria d'executar-se i només heu de connectar el port VGA i els botons (o el joystick).

Pas 3: Connexió del port VGA

Connexió del port VGA
Connexió del port VGA

Necessiteu les parts següents:

  • un connector DSUB15, és a dir, un connector femella VGA o un cable VGA per tallar.
  • tres resistències de 270 Ohm.

Connecteu el pin 2, 15 i 21 GP32 ESPIO a VGA vermell, verd i blau respectivament, mitjançant les resistències de 270 Ohm.

Connecteu el VGA Hsync i el Vsync als pins GPIO ESP32 17 i 4 respectivament.

Connecteu els pins dels connectors DSUB15 5, 6, 7, 8 i 10 a ESP32 GND.

Per obtenir la definició del pin del connector VGA DSUB15, consulteu la imatge d’aquest pas. Nota: aquest és el costat de soldadura del connector femella.

Pas 4: connecteu els quatre botons

Connecteu els quatre botons
Connecteu els quatre botons
Connecteu els quatre botons
Connecteu els quatre botons
Connecteu els quatre botons
Connecteu els quatre botons

Si no teniu un joystick C64, podeu connectar quatre botons seguint aquest pas. Si teniu el joystick, podeu saltar-vos aquest pas i passar al següent, però podeu connectar els botons i el joystick (de totes maneres, estan "en paral·lel").

L’esquema d’aquest pas mostra com connectar un sol botó (normalment obert) des de + 5V al pin especificat ESP32.

Tingueu en compte que també heu de connectar el pin donat per ESP a GND mitjançant una resistència d’1 a 5 kOhm. D'aquesta manera, quan es deixa anar el botó (obert), el pin ESP té exactament zero volts. Més concretament, heu de connectar quatre botons amb l'ordre següent:

  • Fixa el botó 12 a la dreta
  • Pin del botó 25 a Amunt
  • Fixa el botó 14 a l'esquerra
  • Pin del botó 35 a avall

Pas 5: connecteu el joystick

Connecteu el joystick
Connecteu el joystick
Connecteu el joystick
Connecteu el joystick
Connecteu el joystick
Connecteu el joystick

Un joystick C64 té el pinout que es mostra a la primera imatge d’aquest pas. Per connectar-lo a l’ESP32, necessiteu un connector macho DSUB de 9 pins (és a dir, un sòcol), tal com es mostra a la segona imatge. N’he retirat un amb pins exposats d’una antiga placa electrònica. Podeu utilitzar una pistola de calor per eliminar-la (però feu-la a l’aire lliure!).

Cal connectar els pins seguint l’ordre numèric d’aquestes imatges. Tingueu en compte que l’esquema fa referència al costat del joystick, de manera que representa la connexió del seu endoll femella. El sòcol (mascle) per connectar-se a l'ESP32 té els pins amb una disposició "mirall". En cas de dubte, recordeu que el número de pin sempre s’informa als connectors masculí i femení, tal com es mostra a la tercera imatge.

Si voleu controlar els jocs només amb el joystick, connecteu el seu pin comú (9) a ESP32 + 5V i els pins 1, 2, 3, 4 i 6 del joystick als pins ESP que es donen seguint la llista següent.

  • ESP botó 12 a botó dret (RS232 pin 4)
  • ESP pin 14 a botó esquerre (RS232 pin 3)
  • ESP botó pin 35 a baix (RS232 pin 2)
  • Pin pin 25 al botó amunt (RS232 pin 1 i 6, és a dir, pal de control de foc)

Tingueu en compte que els pins ESP 12, 14, 25 i 35 també han d'estar connectats a GND mitjançant una resistència d'1 a 5 kOhm. D'aquesta manera, quan es deixa anar el botó (obert), el pin ESP té exactament zero volts.

La posició del joystick NB2 UP i el botó de disparar estan connectats entre si al pin ESP 25-

He connectat quatre botons a la placa del PC, d'aquesta manera no necessito el joystick per jugar (tot i que amb el joystick és molt més divertit). Una vegada més, el pin 9 de RS232 ha d'estar connectat a +5 V i els pins del joystick estan en paral·lel als botons.

Pas 6: Conclusió i reconeixement

Conclusió i reconeixement
Conclusió i reconeixement

Si tot funciona correctament, només cal que connecteu el monitor VGA i hauríeu de poder gaudir d’un joc d’estil antic.

També podeu dibuixar un conjunt Mandelbrot amb una resolució de 640 x 350 píxels, només per provar les capacitats de la biblioteca VGA.

Tingueu en compte que el codi està escrit de manera que altres jocs es puguin afegir fàcilment en el futur (l'ESP32 té molt espai!). Si aquest projecte té prou interès, ho puc fer …

Finalment, vull expressar els meus tancs a Fabrizio Di Vittorio per la seva impressionant biblioteca ESP32 VGA. Per obtenir més detalls, exemples i … Space Invaders, visiteu el seu lloc.

Recomanat: