Indholdsfortegnelse:

ESP32 VGA Arcade Games og Joystick: 6 trin (med billeder)
ESP32 VGA Arcade Games og Joystick: 6 trin (med billeder)

Video: ESP32 VGA Arcade Games og Joystick: 6 trin (med billeder)

Video: ESP32 VGA Arcade Games og Joystick: 6 trin (med billeder)
Video: How I Play Games in 2022!! Modern CRT Gaming! 2024, Juli
Anonim
Image
Image
ESP32 VGA arkadespil og joystick
ESP32 VGA arkadespil og joystick
ESP32 VGA arkadespil og joystick
ESP32 VGA arkadespil og joystick

I denne instruktive vil jeg vise, hvordan man gengiver fire arkade -lignende spil - Tetris - Snake - Breakout - Bomber - ved hjælp af en ESP32, med output til en VGA -skærm.

Opløsningen er 320 x 200 pixels, i 8 farver. Jeg har tidligere lavet en version med en Arduino Uno (se her), men opløsningen var kun 120 x 60 pixels, 4 farver, og Arduino -hukommelsen var næsten fuld. Takket være ESP32's større præstationer er både opløsning og spilbarhed højere. Desuden er der stadig masser af hukommelse til rådighed, så tilføjelse af nye spil i fremtiden vil være ligetil.

Jeg vil også vise varmt at tilslutte et simpelt joystick gennem et RS232 -kabel. Jeg bruger den samme pinout af Commodore 64 one.

Dette projekt er muliggjort af det fantastiske ESP32 VGA -bibliotek skrevet af Fabrizio Di Vittorio. Se her for flere detaljer.

Trin 1: ESP32 -plader, Arduino IDE -installation og VGA -bibliotekskonfiguration

ESP32 -tavler, Arduino IDE -installation og VGA -bibliotekskonfiguration
ESP32 -tavler, Arduino IDE -installation og VGA -bibliotekskonfiguration
ESP32 -tavler, Arduino IDE -installation og VGA -bibliotekskonfiguration
ESP32 -tavler, Arduino IDE -installation og VGA -bibliotekskonfiguration
ESP32 -tavler, Arduino IDE -installation og VGA -bibliotekskonfiguration
ESP32 -tavler, Arduino IDE -installation og VGA -bibliotekskonfiguration

Først og fremmest skal du købe en ESP32 revision 1 eller øvre. Der er mange versioner til rådighed, men jeg anbefaler at vælge en med mange ben, helst en model som den på dette billede, med 38 ben. Jeg bruger denne version, men jeg synes også mange andre er fine. På ebay kan du finde denne model til mindre end 7 Euro, inklusive levering.

Når du har fået tavlen, skal du fortsætte med følgende tre undertrin:

  1. Installer den sidste Arduino IDE
  2. Konfigurer ESP32 i IDE og
  3. Download og installer VGA -biblioteket

Deltrin 1. Der er forskellige metoder til at programmere ESP32, men her skal du bruge Arduino IDE (jeg bruger i øvrigt version 1.8.9). For at installere det kan du gå til Arduino IDE -siden og følge instruktionerne.

Deltrin 2. Når den tidligere handling er udført, skal du konfigurere din ESP32 inden for Arduino IDE. Dette er ikke trivielt, da ESP32 ikke (endnu?) Er hjemmehørende i det. Du kan følge denne vejledning eller følgende trin.

1) Åbn Arduino IDE

2) Åbn indstillingsvinduet, Fil/præference, eller tryk på "Ctrl+komma"

3) gå til "Yderligere bestyrelsesmanager -webadresser", kopier og indsæt følgende tekst:

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

og klik på knappen OK.

4) Åben bestyrelseschef. Gå til Tools/Board/Boards Manager …

5) Søg efter ESP32, og tryk på installationsknappen for "ESP32 by Espressif Systems":

6) På dette tidspunkt, når du tilslutter din ESP32 første gang, skal du vælge den rigtige model på den lange liste over tilgængelige ESP32 -tavler (se billedet i dette trin). Hvis du er i tvivl om modellen, skal du bare vælge den generiske, dvs. den første. Det virker for mig.

7) systemet skal også vælge den rigtige USB (COM) port og uploadhastigheden (normalt 921600). På dette tidspunkt bør forbindelsen mellem din pc og ESP32 -kortet etableres.

Deltrin 3. Endelig skal du installere FabGL VGA-biblioteket. Klik her for at downloade den komplette komprimerede fil. Komprimer den og kopier den resulterende mappe (FabGL-master) i mappen Arduino IDE biblioteker, der ligner:

"… / arduino-1.8.12 / biblioteker".

Trin 2: Upload "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0"

Download ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip nederst i dette trin. Pak den ud, og åbn den med Arduino IDE, og upload den derefter til din ESP32. Hvis du ikke har nogen fejlmeddelelser, skal koden allerede køre, og du skal bare tilslutte VGA -porten og knapper (eller joystick).

Trin 3: Tilslutning af VGA -porten

Tilslutning af VGA -porten
Tilslutning af VGA -porten

Du har brug for følgende dele:

  • et DSUB15 -stik, dvs. et VGA -hunstik eller et VGA -kabel, der skal skæres.
  • tre 270 Ohm modstande.

Tilslut ESP32 GPIO pin 2, 15 og 21 til henholdsvis VGA rød, grøn og blå gennem 270 Ohm modstande.

Tilslut VGA Hsync og Vsync til henholdsvis ESP32 GPIO ben 17 og 4.

Tilslut DSUB15 -stikstifterne 5, 6, 7, 8 og 10 til ESP32 GND.

For definition af VGA DSUB15 -stik pin, se billedet i dette trin. NB, dette er lodningssiden af hunstikket.

Trin 4: Tilslut de fire knapper

Tilslut de fire knapper
Tilslut de fire knapper
Tilslut de fire knapper
Tilslut de fire knapper
Tilslut de fire knapper
Tilslut de fire knapper

Hvis du ikke har et C64 -joystick, kan du tilslutte fire knapper efter dette trin. Hvis du har joysticket, kan du springe dette trin over og springe til det næste, men du kan alligevel forbinde både knapperne og joysticket (de er alligevel "parallelle").

Skematikken i dette trin viser, hvordan du tilslutter en enkelt knap (normalt åben) fra +5V til den angivne ESP32 -pin.

Bemærk, at du også skal tilslutte den ESP -givne pin til GND gennem en 1 til 5 kOhm modstand. På denne måde er knappen, når knappen slippes (åben), nøjagtigt nul volt. Mere specifikt skal du forbinde fire knapper med følgende rækkefølge:

  • Pin 12 til højre knap
  • Pin 25 til op -knap
  • Pin 14 til venstre knap
  • Pin 35 til knappen Ned

Trin 5: Tilslut joysticket

Tilslut joysticket
Tilslut joysticket
Tilslut joysticket
Tilslut joysticket
Tilslut joysticket
Tilslut joysticket

Et C64 -joystick har pinout vist på det første billede af dette trin. For at slutte den til ESP32 skal du bruge et 9 -bens DSUB -hanstik (dvs. en stikkontakt), som vist på det andet billede. Jeg fjernede en med synlige stifter fra et gammelt elektronisk bord. Du kan bruge en varmepistol til at fjerne den (men gør det udendørs!).

Du skal forbinde stifterne efter den numeriske rækkefølge på disse billeder. Bemærk, at skematikken refererer til joysticksiden, og dermed repræsenterer forbindelsen af dens hunstik. Stikkontakten (han) til tilslutning til ESP32 har stifterne med en "spejl" disposition. I tvivlstilfælde skal du huske, at pinkoden altid rapporteres på han- og hunstik, som vist på det tredje billede.

Hvis du kun vil styre spillene med joysticket, skal du slutte den fælles pin (9) til ESP32 +5V, og joystickstifterne 1, 2, 3, 4 og 6 til de ESP -givne stifter efter følgende liste.

  • ESP pin 12 til højre knap (RS232 pin 4)
  • ESP pin 14 til venstre knap (RS232 pin 3)
  • ESP pin 35 til Down -knap (RS232 pin 2)
  • ESP pin 25 til Up -knap (RS232 pin 1 og 6, dvs. joystick -brand)

NB ESP -benene 12, 14, 25 og 35 skal også tilsluttes GND gennem en 1 til 5 kOhm modstand. På denne måde er knappen, når knappen slippes (åben), nøjagtigt nul volt.

NB2 joystick UP-position og brandknap er forbundet til ESP pin 25-

Jeg har tilsluttet fire knapper på pc -kortet, på denne måde behøver jeg ikke joysticket til at spille (selvom det med joysticket er meget mere sjovt). Igen skal RS232 -pin 9 tilsluttes +5 V, og joystick -benene er lige parallelt med knapperne.

Trin 6: Konklusion og anerkendelse

Konklusion og anerkendelse
Konklusion og anerkendelse

Hvis alt fungerer korrekt, skal du bare tilslutte VGA -skærmen, og du bør kunne nyde et gammelt spil!

Du kan også tegne et Mandelbrot -sæt med en opløsning på 640 x 350 pixels, bare for at teste VGA -bibliotekets muligheder.

Bemærk, at koden er skrevet på en måde, hvorpå andre spil let kan tilføjes i fremtiden (ESP32 har masser af plads!). Hvis dette projekt får nok interesse, kan jeg gøre det …

Endelig vil jeg gerne udtrykke mine tanke til Fabrizio Di Vittorio for hans fantastiske ESP32 VGA -bibliotek. For flere detaljer, eksempler og … Space Invaders, besøg hans websted.

Anbefalede: