Innholdsfortegnelse:

ESP32 VGA arkadespill og joystick: 6 trinn (med bilder)
ESP32 VGA arkadespill og joystick: 6 trinn (med bilder)

Video: ESP32 VGA arkadespill og joystick: 6 trinn (med bilder)

Video: ESP32 VGA arkadespill og joystick: 6 trinn (med bilder)
Video: 自作ミニ筐体で心眼! 2024, Juli
Anonim
Image
Image
ESP32 VGA arkadespill og joystick
ESP32 VGA arkadespill og joystick
ESP32 VGA arkadespill og joystick
ESP32 VGA arkadespill og joystick

I denne instruksen vil jeg vise hvordan du gjengir fire arkade som spill - Tetris - Snake - Breakout - Bomber - ved hjelp av en ESP32, med utgang for en VGA -skjerm.

Oppløsningen er 320 x 200 piksler, i 8 farger. Jeg har tidligere gjort en versjon med en Arduino Uno (se her), men oppløsningen var bare 120 x 60 piksler, 4 farger, og Arduino -minnet var nesten fullt. Takket være de større ytelsene til ESP32, er både oppløsning og spillbarhet høyere. Videre er det fortsatt mye minne tilgjengelig, og det vil derfor være enkelt å legge til nye spill i fremtiden.

Jeg vil også vise varmt å koble til en enkel joystick gjennom en RS232 -kabel. Jeg bruker samme pinout av Commodore 64.

Dette prosjektet er muliggjort av det fantastiske ESP32 VGA -biblioteket skrevet av Fabrizio Di Vittorio. Se her for mer informasjon.

Trinn 1: ESP32 -kort, Arduino IDE -installasjon og VGA -bibliotekskonfigurasjon

ESP32 -kort, Arduino IDE -installasjon og VGA -bibliotekskonfigurasjon
ESP32 -kort, Arduino IDE -installasjon og VGA -bibliotekskonfigurasjon
ESP32 -kort, Arduino IDE -installasjon og VGA -bibliotekskonfigurasjon
ESP32 -kort, Arduino IDE -installasjon og VGA -bibliotekskonfigurasjon
ESP32 -kort, Arduino IDE -installasjon og VGA -bibliotekskonfigurasjon
ESP32 -kort, Arduino IDE -installasjon og VGA -bibliotekskonfigurasjon

Først må du kjøpe en ESP32 revisjon 1 eller nyere. Det er mange versjoner tilgjengelig, men jeg anbefaler å velge en med mange pinner, helst en modell som den på dette bildet, med 38 pinner. Jeg bruker denne versjonen, men jeg tror mange andre er fine også. På ebay kan du finne denne modellen for mindre enn 7 Euro, inkludert levering.

Når du har fått brettet, må du fortsette med følgende tre deltrinn:

  1. Installer den siste Arduino IDE
  2. Konfigurer ESP32 i IDE og
  3. Last ned og installer VGA -biblioteket

Deltrinn 1. Det er forskjellige metoder for å programmere ESP32, men her må du bruke Arduino IDE (jeg bruker forresten versjonen 1.8.9). For å installere det, kan du gå til Arduino IDE -siden og følge instruksjonene.

Deltrinn 2. Når den forrige operasjonen er utført, må du konfigurere ESP32 i Arduino IDE. Dette er ikke trivielt, siden ESP32 ikke er (ennå?) Hjemmehørende i det. Du kan følge denne opplæringen eller trinnene nedenfor.

1) åpne Arduino IDE

2) åpne innstillingsvinduet, Fil/Preferanse, eller trykk "Ctrl+komma"

3) gå til "Ekstra Board Manager -nettadresser", kopier og lim inn følgende tekst:

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

og klikk på OK -knappen.

4) Leder for åpne styrer. Gå til Tools/Board/Boards Manager …

5) Søk etter ESP32 og trykk på installasjonsknappen for "ESP32 by Espressif Systems":

6) Når du kobler til ESP32 for første gang, bør du velge riktig modell i den lange listen over tilgjengelige ESP32 -kort (se bildet i dette trinnet). Hvis du er i tvil om modellen, er det bare å velge den generiske, dvs. den første. Det funker for meg.

7) Systemet bør også velge riktig USB (COM) port og opplastingshastighet (normalt 921600). På dette tidspunktet bør forbindelsen mellom PC -en og ESP32 -kortet opprettes.

Deltrinn 3. Til slutt må du installere FabGL VGA-biblioteket. Klikk her for å laste ned hele den komprimerte filen. Komprimer den og kopier den resulterende mappen (FabGL-master) i Arduino IDE biblioteker-mappen, som ser ut som:

"… / arduino-1.8.12 / biblioteker".

Trinn 2: Last opp "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0"

Last ned ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip nederst i dette trinnet. Pakk ut og åpne den med Arduino IDE, og last den deretter opp til ESP32. Hvis du ikke har noen feilmeldinger, skal koden allerede kjøre, og du trenger bare å koble til VGA -porten og knappene (eller joysticken).

Trinn 3: Koble til VGA -porten

Koble til VGA -porten
Koble til VGA -porten

Du trenger følgende deler:

  • en DSUB15 -kontakt, dvs. en VGA -hunkontakt eller en VGA -kabel som skal kuttes.
  • tre 270 Ohm motstander.

Koble ESP32 GPIO -pinne 2, 15 og 21 til henholdsvis VGA rød, grønn og blå gjennom 270 Ohm -motstandene.

Koble VGA Hsync og Vsync til ESP32 GPIO -pinnene 17 og 4.

Koble DSUB15 -kontaktpinnene 5, 6, 7, 8 og 10 til ESP32 GND.

For definisjon av VGA DSUB15 -kontaktstift, se bildet i dette trinnet. NB, dette er loddesiden av hunkontakten.

Trinn 4: Koble til de fire knappene

Koble til de fire knappene
Koble til de fire knappene
Koble til de fire knappene
Koble til de fire knappene
Koble til de fire knappene
Koble til de fire knappene

Hvis du ikke har en C64 -joystick, kan du koble til fire knapper etter dette trinnet. Hvis du har joysticken, kan du hoppe over dette trinnet og hoppe til neste, men du kan uansett koble både knappene og joysticken (de er uansett "parallelle").

Skjematikken i dette trinnet viser hvordan du kobler en enkelt knapp (normalt åpen) fra +5V til ESP32 gitt pin.

Vær oppmerksom på at du også må koble den angitte ESP -pinnen til GND gjennom en 1 til 5 kOhm motstand. På denne måten når knappen slippes (åpen) er ESP -pinnen på nøyaktig null volt. Nærmere bestemt må du koble til fire knapper med følgende rekkefølge:

  • Fest 12 til høyre knapp
  • Fest 25 til Opp -knappen
  • Fest 14 til venstre knapp
  • Fest 35 til ned -knappen

Trinn 5: Koble til styrespaken

Koble styrespaken
Koble styrespaken
Koble styrespaken
Koble styrespaken
Koble styrespaken
Koble styrespaken

En C64 -joystick har pinout vist på det første bildet av dette trinnet. For å koble den til ESP32 trenger du en 9 -pinners DSUB -hankontakt (dvs. en stikkontakt), som vist på det andre bildet. Jeg fjernet en med synlige pinner fra et gammelt elektronisk kort. Du kan bruke en varmepistol til å fjerne den (men gjør det utendørs!).

Du må koble pinnene etter den numeriske rekkefølgen på disse bildene. Vær oppmerksom på at skjematisk refererer til styrespaken, og representerer dermed tilkoblingen til hunpluggen. Stikkontakten (hann) for å koble til ESP32 har pinnene med en "speil" disposisjon. I tvilstilfelle, husk at pin -nummeret alltid er rapportert på han- og hunnkontaktene, som vist på det tredje bildet.

Hvis du bare vil kontrollere spillene med joysticken, kobler du den vanlige pinnen (9) til ESP32 +5V, og joystickpinnene 1, 2, 3, 4 og 6 til ESP -pinnene etter følgende liste.

  • ESP pin 12 til høyre knapp (RS232 pin 4)
  • ESP pin 14 til venstre knapp (RS232 pin 3)
  • ESP pin 35 til Down -knapp (RS232 pin 2)
  • ESP pin 25 til Up -knapp (RS232 pin 1 og 6, dvs. joystickbrann)

NB ESP -pinnene 12, 14, 25 og 35 må også kobles til GND gjennom en 1 til 5 kOhm motstand. På denne måten når knappen slippes (åpen) er ESP -pinnen på nøyaktig null volt.

NB2 joystick UP-posisjon og brannknapp er koblet sammen til ESP pin 25-

Jeg har koblet til fire knapper på PC -kortet, på denne måten trenger jeg ikke joysticken for å spille (selv om joysticken er mye mer morsom). Igjen må RS232 -pinnen 9 kobles til +5 V, og styrespakene er parallelt med knappene.

Trinn 6: Konklusjon og anerkjennelse

Konklusjon og anerkjennelse
Konklusjon og anerkjennelse

Hvis alt fungerer som det skal, er det bare å koble til VGA -skjermen, så skal du kunne nyte et gammelt spill!

Du kan også tegne et Mandelbrot -sett med en oppløsning på 640 x 350 piksler, bare for å teste VGA -bibliotekets muligheter.

Vær oppmerksom på at koden er skrevet på en måte at andre spill enkelt kan legges til i fremtiden (ESP32 har god plass!). Hvis dette prosjektet får nok interesse, kan jeg gjøre det …

Til slutt ønsker jeg å uttrykke tankene mine til Fabrizio Di Vittorio for hans fantastiske ESP32 VGA -bibliotek. For flere detaljer, eksempler og… Space Invaders, besøk hans nettsted.

Anbefalt: