Satura rādītājs:

ESP32 VGA arkādes spēles un kursorsvira: 6 soļi (ar attēliem)
ESP32 VGA arkādes spēles un kursorsvira: 6 soļi (ar attēliem)

Video: ESP32 VGA arkādes spēles un kursorsvira: 6 soļi (ar attēliem)

Video: ESP32 VGA arkādes spēles un kursorsvira: 6 soļi (ar attēliem)
Video: Galaga ESP32 #6: Boot "menu" 2024, Jūlijs
Anonim
Image
Image
ESP32 VGA arkādes spēles un kursorsvira
ESP32 VGA arkādes spēles un kursorsvira
ESP32 VGA arkādes spēles un kursorsvira
ESP32 VGA arkādes spēles un kursorsvira

Šajā pamācībā es parādīšu, kā reproducēt četras arkādes līdzīgas spēles - Tetris - Snake - Breakout - Bomber - izmantojot ESP32, ar izeju VGA monitoram.

Izšķirtspēja ir 320x200 pikseļi, 8 krāsās. Iepriekš esmu izveidojis versiju ar Arduino Uno (skatīt šeit), taču izšķirtspēja bija tikai 120 x 60 pikseļi, 4 krāsas, un Arduino atmiņa bija gandrīz pilna. Pateicoties ESP32 lielākajai veiktspējai, gan izšķirtspēja, gan atskaņojamība ir augstāka. Turklāt joprojām ir daudz atmiņas, tāpēc jaunu spēļu pievienošana nākotnē būs vienkārša.

Es arī parādīšu, kā savienot vienkāršu kursorsviru caur RS232 kabeli. Es izmantoju to pašu Commodore 64 pinout.

Šo projektu ir radījusi lieliskā ESP32 VGA bibliotēka, ko uzrakstījis Fabrizio Di Vittorio. Plašāku informāciju skatiet šeit.

1. darbība: ESP32 plates, Arduino IDE instalēšana un VGA bibliotēkas konfigurēšana

ESP32 plates, Arduino IDE instalēšana un VGA bibliotēkas konfigurācija
ESP32 plates, Arduino IDE instalēšana un VGA bibliotēkas konfigurācija
ESP32 plates, Arduino IDE instalēšana un VGA bibliotēkas konfigurācija
ESP32 plates, Arduino IDE instalēšana un VGA bibliotēkas konfigurācija
ESP32 plates, Arduino IDE instalēšana un VGA bibliotēkas konfigurācija
ESP32 plates, Arduino IDE instalēšana un VGA bibliotēkas konfigurācija

Vispirms jums ir jāiegādājas ESP32 1 vai jaunāka versija. Ir pieejamas daudzas versijas, bet es iesaku izvēlēties vienu ar daudzām tapām, vēlams tādu modeli kā šajā attēlā, ar 38 tapām. Es izmantoju šo versiju, bet es domāju, ka arī daudziem citiem ir labi. Ebay varat atrast šo modeli par mazāk nekā 7 eiro, ieskaitot piegādi.

Kad esat saņēmis tāfeli, jums jāturpina veikt šādas trīs apakšdarbības:

  1. Instalējiet pēdējo Arduino IDE
  2. Konfigurējiet ESP32 IDE un
  3. Lejupielādējiet un instalējiet VGA bibliotēku

1. solis. ESP32 programmēšanai ir dažādas metodes, taču šeit jums jāizmanto Arduino IDE (starp citu, es izmantoju versiju 1.8.9). Lai to instalētu, varat doties uz Arduino IDE lapu un izpildīt norādījumus.

2. solis. Kad iepriekšējā darbība ir pabeigta, jums ir jākonfigurē ESP32 Arduino IDE. Tas nav mazsvarīgi, jo ESP32 tajā (vēl?) Nav dzimtā. Jūs varat izpildīt šo apmācību vai šādas darbības.

1) atveriet Arduino IDE

2) atveriet preferenču logu, Fails/Preference, vai arī nospiediet "Ctrl+komats"

3) dodieties uz “Papildu valdes pārvaldnieka vietrāži URL”, nokopējiet un ielīmējiet šādu tekstu:

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

un noklikšķiniet uz pogas Labi.

4) Atvērto dēļu vadītājs. Dodieties uz Rīki/Valdes/Dēļu pārvaldnieks…

5) Meklējiet ESP32 un nospiediet instalēšanas pogu “ESP32 by Espressif Systems”:

6) Šajā brīdī, kad pirmo reizi pievienojat savu ESP32, jums vajadzētu izvēlēties pareizo modeli garajā pieejamo ESP32 dēļu sarakstā (skatiet attēlu šajā solī). Ja rodas šaubas par modeli, vienkārši izvēlieties vispārīgo, t.i., pirmo. Man tas der.

7) sistēmai jāizvēlas arī pareizais USB (COM) ports un augšupielādes ātrums (parasti 921600). Šajā brīdī ir jāizveido savienojums starp datoru un ESP32 plati.

3. solis. Visbeidzot, jums jāinstalē FabGL VGA bibliotēka. Noklikšķiniet šeit, lai lejupielādētu visu saspiesto failu. Izsaiņojiet to un nokopējiet iegūto mapi (FabGL-master) mapē Arduino IDE bibliotēkas, kas izskatās šādi:

"… / Arduino-1.8.12 / bibliotēkas".

2. darbība. ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0 augšupielāde

Lejupielādējiet ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip šīs darbības apakšā. Izsaiņojiet un atveriet to ar Arduino IDE, pēc tam augšupielādējiet to savā ESP32. Ja jums nav kļūdu ziņojumu, kodam jau vajadzētu darboties, un jums vienkārši jāpievieno VGA ports un pogas (vai kursorsviru).

3. darbība: pievienojiet VGA portu

VGA porta pievienošana
VGA porta pievienošana

Jums ir nepieciešamas šādas daļas:

  • DSUB15 savienotājs, t.i., VGA sieviešu savienotājs vai VGA kabelis, kas jāapgriež.
  • trīs 270 omu rezistori.

Savienojiet ESP32 GPIO 2., 15. un 21. tapu attiecīgi ar VGA sarkano, zaļo un zilo caur 270 omu rezistoriem.

Pievienojiet VGA Hsync un Vsync attiecīgi ESP32 GPIO tapām 17 un 4.

Pievienojiet DSUB15 savienotāju tapas 5, 6, 7, 8 un 10 ar ESP32 GND.

VGA DSUB15 savienotāja tapas definīciju skatiet šajā solī redzamajā attēlā. NB! Šī ir sieviešu savienotāja lodēšanas puse.

4. solis: pievienojiet četras pogas

Savienojiet četras pogas
Savienojiet četras pogas
Savienojiet četras pogas
Savienojiet četras pogas
Savienojiet četras pogas
Savienojiet četras pogas

Ja jums nav C64 kursorsviras, varat savienot četras pogas, veicot šo darbību. Ja jums ir kursorsvira, varat izlaist šo soli un pāriet uz nākamo, taču jebkurā gadījumā varat savienot gan pogas, gan kursorsviru (tās jebkurā gadījumā ir "paralēli").

Šajā darbībā shematiski parādīts, kā savienot vienu pogu (parasti atvērta) no +5 V uz ESP32 doto tapu.

Ņemiet vērā, ka ESP dotā tapa ir jāpievieno arī GND caur 1 līdz 5 kOhm rezistoru. Tādā veidā, kad poga tiek atlaista (atvērta), ESP tapa ir tieši pie nulles voltiem. Precīzāk, jums ir jāpievieno četras pogas šādā secībā:

  • Piespraudiet pogu 12 pa labi
  • Piespraudiet pogu 25 uz augšu
  • Piespraudiet pogu 14 pa kreisi
  • Piespraudiet pogu 35 uz leju

5. solis: pievienojiet kursorsviru

Pievienojiet kursorsviru
Pievienojiet kursorsviru
Pievienojiet kursorsviru
Pievienojiet kursorsviru
Pievienojiet kursorsviru
Pievienojiet kursorsviru

C64 kursorsvirā ir piespraude, kas parādīta šīs darbības pirmajā attēlā. Lai to savienotu ar ESP32, jums ir nepieciešams 9 kontaktu DSUB vīriešu savienotājs (t.i., kontaktligzda), kā parādīts otrajā attēlā. Noņēmu vienu ar atklātām tapām no vecas elektroniskās plates. Lai to noņemtu, varat izmantot karstuma pistoli (bet dariet to ārā!).

Šajos attēlos ir jāpievieno tapas, ievērojot ciparu secību. Ņemiet vērā, ka shēma attiecas uz kursorsviras pusi, tādējādi tā attēlo tās kontaktdakšas savienojumu. Kontaktligzdai (tēviņam), lai izveidotu savienojumu ar ESP32, ir tapas ar "spoguļa" izvietojumu. Šaubu gadījumā atcerieties, ka tapas numurs vienmēr tiek norādīts uz vīriešu un sieviešu savienotājiem, kā parādīts trešajā attēlā.

Ja vēlaties kontrolēt spēles tikai ar kursorsviru, pievienojiet tās kopējo tapu (9) pie ESP32 +5V, un kursorsviru tapas 1, 2, 3, 4 un 6 ar ESP dotajām tapām, ievērojot šo sarakstu.

  • ESP tapa 12 uz labo pogu (RS232 4. tapa)
  • ESP tapa 14 uz kreiso pogu (RS232 3. tapa)
  • ESP tapa 35 uz leju (RS232 2. tapa)
  • ESP tapa 25 līdz pogai Uz augšu (RS232 1. un 6. tapa, t.i., kursorsviras aizdegšanās)

NB! ESP tapas 12, 14, 25 un 35 arī jāpievieno GND caur 1 līdz 5 kOhm rezistoru. Tādā veidā, kad poga tiek atlaista (atvērta), ESP tapa ir tieši pie nulles voltiem.

NB2 kursorsviru UP pozīcija un ugunsgrēka poga ir savienotas kopā ar ESP tapu 25-

Esmu pieslēdzis četras pogas uz datora plates, šādā veidā man nav nepieciešama kursorsviru spēlēšana (lai gan ar kursorsviru ir daudz smieklīgāk). Atkal RS232 tapai 9 jābūt savienotai ar +5 V, un kursorsviru tapas atrodas tikai paralēli pogām.

6. darbība. Secinājums un apstiprinājums

Secinājums un atzinība
Secinājums un atzinība

Ja viss darbojas pareizi, vienkārši pievienojiet VGA monitoru, un jums vajadzētu būt iespējai izbaudīt kādu vecā stila spēli!

Varat arī uzzīmēt Mandelbrota komplektu ar izšķirtspēju 640 x 350 pikseļi, lai pārbaudītu VGA bibliotēkas iespējas.

Ņemiet vērā, ka kods ir rakstīts tā, lai nākotnē varētu viegli pievienot citas spēles (ESP32 ir daudz vietas!). Mani šis projekts interesē pietiekami, es varētu to darīt …

Visbeidzot, es vēlos izteikt savus tankus Fabrizio Di Vittorio par viņa lielisko ESP32 VGA bibliotēku. Lai iegūtu sīkāku informāciju, piemērus un… Kosmosa iebrucēji, apmeklējiet viņa vietni.

Ieteicams: