Taula de continguts:
- Pas 1: targetes ESP32, instal·lació IDE Arduino i configuració de la biblioteca VGA
- Pas 2: càrrega de "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0"
- Pas 3: Connexió del port VGA
- Pas 4: connecteu els quatre botons
- Pas 5: connecteu el joystick
- Pas 6: Conclusió i reconeixement
Vídeo: ESP32 VGA Arcade Games i Joystick: 6 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
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
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:
- Instal·leu l'últim ID Arduino
- Configureu l'ESP32 a l'IDE i
- 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
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
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
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
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:
Cadira de rodes controlada per joystick amb ajuda del rastrejador d’obstacles: 3 passos (amb imatges)
Cadira de rodes controlada per joystick amb ajuda del rastrejador d’obstacles: per tal de facilitar a les persones amb discapacitat física una conducció segura, s’utilitza un sensor d’ultrasons per rastrejar els obstacles presents al camí. Basant-se en el moviment del joystick, els motors conduiran la cadira de rodes en qualsevol direcció i velocitat en cada di
Plataformes amb nivells infinits a GameGo amb Makecode Arcade: 5 passos (amb imatges)
Plataforma amb nivells infinits a GameGo amb Makecode Arcade: GameGo és una consola portàtil de jocs retro compatible amb Microsoft Makecode, desenvolupada per l'educació TinkerGen STEM. Està basat en el xip STM32F401RET6 ARM Cortex M4 i està dissenyat per a educadors STEM o simplement per a persones que els agrada divertir-se creant videojocs retro
PC bàsic Arduino amb sortida VGA: 5 passos (amb imatges)
PC bàsic Arduino amb sortida VGA: en el meu anterior instructable he mostrat com construir un ordinador retro de 8 bits amb BASIC, mitjançant dos Arduino, i amb un senyal de sortida en blanc i negre per a una pantalla de televisió. Ara mostraré com construir el mateix ordinador, però amb el senyal de sortida a
Com fer un Bartop Arcade DIY de 2 jugadors amb ranures personalitzades per a monedes, amb una caixa de Pandora: 17 passos (amb imatges)
Com fer un Bartop Arcade DIY de 2 jugadors amb ranures personalitzades per a monedes, utilitzant una caixa de Pandora: aquest és un tutorial pas a pas sobre com construir una màquina arcade superior de 2 jugadors amb barres per a monedes personalitzades incorporades a la marquesina. Les ranures per a monedes es faran de manera que només acceptin monedes de la mida de quarts i més. Aquest arcade està alimentat
Arduino Arcade Lego Games Box: 19 passos (amb imatges)
Arduino Arcade Lego Games Box: si teniu fills, és probable que tingueu els mateixos problemes que els dels jocs de Lego que heu comprat per a ells. Es munten i juguen amb ells, però al cap d’un temps els conjunts es transformen en una sola pila de maons. Els nens es fan grans i no saps què