INHOUDSOPGAWE:

ESP32 VGA Arcade Games en Joystick: 6 stappe (met foto's)
ESP32 VGA Arcade Games en Joystick: 6 stappe (met foto's)

Video: ESP32 VGA Arcade Games en Joystick: 6 stappe (met foto's)

Video: ESP32 VGA Arcade Games en Joystick: 6 stappe (met foto's)
Video: ESP32 VGA four games & joystick 2024, Julie
Anonim
Image
Image
ESP32 VGA Arcade Games en joystick
ESP32 VGA Arcade Games en joystick
ESP32 VGA Arcade Games en joystick
ESP32 VGA Arcade Games en joystick

In hierdie instruksies sal ek wys hoe u vier arcade -speletjies kan reproduseer - Tetris - Snake - Breakout - Bomber - met behulp van 'n ESP32, met die uitset vir 'n VGA -monitor.

Die resolusie is 320 x 200 pixels, in 8 kleure. Ek het voorheen 'n weergawe met 'n Arduino Uno gedoen (sien hier), maar die resolusie was slegs 120 x 60 pixels, 4 kleure, en die Arduino -geheue was amper vol. Danksy die groter prestasies van die ESP32, is beide resolusie en speelbaarheid hoër. Verder is daar nog baie geheue beskikbaar, en dit sal eenvoudig wees om nuwe speletjies in die toekoms by te voeg.

Ek sal ook warm wees om 'n eenvoudige joystick met 'n RS232 -kabel aan te sluit. Ek gebruik dieselfde pinout van die Commodore 64 -een.

Hierdie projek word moontlik gemaak deur die ontsaglike ESP32 VGA -biblioteek, geskryf deur Fabrizio Di Vittorio. Sien hier vir meer besonderhede.

Stap 1: ESP32 -borde, Arduino IDE -installasie en VGA -biblioteekopstelling

ESP32 -borde, Arduino IDE -installasie en VGA -biblioteekopstelling
ESP32 -borde, Arduino IDE -installasie en VGA -biblioteekopstelling
ESP32 -borde, Arduino IDE -installasie en VGA -biblioteekopstelling
ESP32 -borde, Arduino IDE -installasie en VGA -biblioteekopstelling
ESP32 -borde, Arduino IDE -installasie en VGA -biblioteekopstelling
ESP32 -borde, Arduino IDE -installasie en VGA -biblioteekopstelling

Eerstens moet u 'n ESP32 -weergawe 1 of hoër koop. Daar is baie weergawes beskikbaar, maar ek raai u aan om een met baie penne te kies, verkieslik 'n model soos die op hierdie foto, met 38 penne. Ek gebruik hierdie weergawe, maar ek dink baie ander is ook goed. Op eBay kan u hierdie model vind vir minder as 7 euro, insluitend aflewering.

Nadat u die bord gekry het, moet u met die volgende drie substappe voortgaan:

  1. Installeer die laaste Arduino IDE
  2. Stel die ESP32 in die IDE en
  3. Laai die VGA -biblioteek af en installeer dit

Sub-stap 1. Daar is verskillende metodes om die ESP32 te programmeer, maar hier moet u die Arduino IDE gebruik (ek gebruik die weergawe 1.8.9, terloops). Om dit te installeer, kan u na die Arduino IDE -bladsy gaan en die instruksies volg.

Substap 2. Sodra die vorige operasie uitgevoer is, moet u u ESP32 in die Arduino IDE instel. Dit is nie triviaal nie, aangesien die ESP32 (nog nie) inheems is nie. U kan hierdie tutoriaal of die volgende stappe volg.

1) maak die Arduino IDE oop

2) maak die voorkeure -venster, lêer/voorkeur, oop, of druk "Ctrl+komma"

3) gaan na die 'Addisionele raadbestuurder -URL's', kopieer en plak die volgende teks:

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

en klik op die OK knoppie.

4) Open boards bestuurder. Gaan na Tools/Board/Boards Manager …

5) Soek na ESP32 en druk die installeringsknoppie vir die "ESP32 by Espressif Systems":

6) As u op hierdie stadium u ESP32 vir die eerste keer aansluit, moet u die regte model kies in die lang lys beskikbare ESP32 -borde (sien die prentjie in hierdie stap). In geval van twyfel oor die model, kies net die generiese model, dit wil sê die eerste. Dit werk vir my.

7) moet die stelsel ook die regte USB -poort (COM) en die oplaaisnelheid (gewoonlik 921600) kies. Op hierdie punt moet die verbinding tussen u rekenaar en die ESP32 -kaart tot stand kom.

Sub-stap 3. Uiteindelik moet u die FabGL VGA-biblioteek installeer. Klik hier om die volledige saamgeperste lêer af te laai. Pak dit uit en kopieer die resulterende vouer (FabGL-master) in die gids Arduino IDE biblioteke, wat soos volg lyk:

"… / arduino-1.8.12 / biblioteke".

Stap 2: Laai "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0" op

Laai ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip onderaan hierdie stap af. Pak dit oop en maak dit oop met die Arduino IDE, en laai dit dan op na u ESP32. As u geen foutboodskappe het nie, moet die kode reeds loop en hoef u net die VGA -poort en knoppies (of joystick) aan te sluit.

Stap 3: Verbind die VGA -poort

Verbind die VGA -poort
Verbind die VGA -poort

U benodig die volgende dele:

  • 'n DSUB15 -aansluiting, dws 'n VGA -vroulike aansluiting of 'n VGA -kabel wat gesny moet word.
  • drie 270 Ohm weerstande.

Koppel die ESP32 GPIO pen 2, 15 en 21 aan VGA Rooi, Groen en Blou onderskeidelik deur die 270 Ohm weerstande.

Koppel die VGA Hsync en Vsync aan ESP32 GPIO penne 17 en 4 onderskeidelik.

Koppel die DSUB15 -aansluitpenne 5, 6, 7, 8 en 10 aan ESP32 GND.

Sien die prentjie in hierdie stap vir die definisie van die VGA DSUB15 -aansluitpen. NB, dit is die soldeerkant van die vroulike aansluiting.

Stap 4: Koppel die vier knoppies

Koppel die vier knoppies
Koppel die vier knoppies
Koppel die vier knoppies
Koppel die vier knoppies
Koppel die vier knoppies
Koppel die vier knoppies

As u nie 'n C64 -joystick het nie, kan u vier knoppies verbind volgens hierdie stap. As u die joystick het, kan u hierdie stap oorslaan en na die volgende stap spring, maar u kan in elk geval beide die knoppies en die joystick koppel (dit is in elk geval 'parallel').

Die skematiese in hierdie stap toon hoe u 'n enkele knoppie (normaalweg oop) van +5V aan die ESP32 gegewe pen kan koppel.

Let daarop dat u ook die gegewe ESP -pen aan die GND moet koppel via 'n 1 tot 5 kOhm -weerstand. Op hierdie manier, wanneer die knoppie losgemaak word (oop), is die ESP -pen presies op nul volt. Meer spesifiek, moet u vier knoppies verbind met die volgende volgorde:

  • Speld 12 aan die regterknoppie vas
  • Speld 25 tot op -knoppie
  • Speld 14 aan die linkerknoppie vas
  • Speld 35 op die knoppie af

Stap 5: Koppel die joystick

Koppel die joystick
Koppel die joystick
Koppel die joystick
Koppel die joystick
Koppel die joystick
Koppel die joystick

Die pinout word op die C64 -joystick op die eerste foto van hierdie stap getoon. Om dit aan die ESP32 te koppel, benodig u 'n 9 -polige DSUB -manlike aansluiting (dit wil sê 'n aansluiting), soos in die tweede prentjie getoon. Ek het een met blootgestelde penne van 'n ou elektroniese bord verwyder. U kan 'n hittegeweer gebruik om dit te verwyder (maar doen dit buite!).

U moet die penne volgens die numeriese volgorde in hierdie foto's verbind. Let daarop dat die skematiese verwysing na die joystick -kant is; dit verteenwoordig dus die verbinding van die vroulike prop. Die aansluiting (manlik) om aan te sluit op die ESP32 het die penne met 'n "spieël" -instelling. Onthou, in geval van twyfel, dat die speldnommer altyd op die manlike en vroulike verbindings aangegee word, soos in die derde prentjie getoon.

As u die speletjies slegs met die joystick wil beheer, koppel die gewone pen (9) aan ESP32 +5V en die joystickpenne 1, 2, 3, 4 en 6 aan die ESP -penne volgens die volgende lys.

  • ESP -pen 12 tot regterknoppie (RS232 -pen 4)
  • ESP -pen 14 na linkerknoppie (RS232 -pen 3)
  • ESP -pen 35 tot onder -knoppie (RS232 -pen 2)
  • ESP -pen 25 tot op -knoppie (RS232 -pen 1 en 6, dws joystick -vuur)

Let op: die ESP -penne 12, 14, 25 en 35 moet ook met 'n 1 tot 5 kOhm -weerstand aan die GND gekoppel word. Op hierdie manier, wanneer die knoppie losgemaak word (oop), is die ESP -pen presies op nul volt.

NB2 joystick UP-posisie en vuurknoppie is aan mekaar gekoppel aan ESP-pen 25-

Ek het vier knoppies op die rekenaarbord gekoppel, op hierdie manier hoef ek nie die joystick te speel nie (alhoewel die joystick baie snaakser is). Die RS232 -pen 9 moet weer aan +5 V gekoppel word en die joystickpenne is net parallel met die knoppies.

Stap 6: Gevolgtrekking en erkenning

Gevolgtrekking en erkenning
Gevolgtrekking en erkenning

As alles reg werk, koppel net die VGA -monitor aan, en u kan 'n ou speletjie geniet!

U kan ook 'n Mandelbrot -stel met 'n resolusie van 640 x 350 pixels teken om die funksies van die VGA -biblioteek te toets.

Let daarop dat die kode op 'n manier geskryf is sodat ander speletjies in die toekoms maklik bygevoeg kan word (die ESP32 het baie ruimte!). As hierdie projek genoeg belangstelling kry, kan ek dit doen …

Ten slotte wil ek my tenks aan Fabrizio Di Vittorio uitspreek vir sy wonderlike ESP32 VGA -biblioteek. Vir meer besonderhede, voorbeelde en … Space Invaders, besoek sy webwerf.

Aanbeveel: