Talaan ng mga Nilalaman:

ESP32 VGA Arcade Games at Joystick: 6 Hakbang (na may Mga Larawan)
ESP32 VGA Arcade Games at Joystick: 6 Hakbang (na may Mga Larawan)

Video: ESP32 VGA Arcade Games at Joystick: 6 Hakbang (na may Mga Larawan)

Video: ESP32 VGA Arcade Games at Joystick: 6 Hakbang (na may Mga Larawan)
Video: ESP32 VGA four games & joystick 2024, Hulyo
Anonim
Image
Image
ESP32 VGA Arcade Games at Joystick
ESP32 VGA Arcade Games at Joystick
ESP32 VGA Arcade Games at Joystick
ESP32 VGA Arcade Games at Joystick

Sa itinuturo na ito ay ipapakita ko kung paano gumawa ng muli ng apat na arcade tulad ng mga laro - Tetris - Ahas - Breakout - Bomber - gamit ang isang ESP32, na may output para sa isang monitor ng VGA.

Ang resolusyon ay 320 x 200 mga pixel, sa 8 mga kulay. Nagawa ko na ang isang bersyon sa isang Arduino Uno (tingnan dito), ngunit ang resolusyon ay 120 x 60 pixel lamang, 4 na kulay, at ang memorya ng Arduino ay halos puno. Salamat sa mas malaking pagganap ng ESP32, mas mataas ang parehong resolusyon at kakayahang i-play. Bukod dito, mayroon pa ring maraming memorya na magagamit, sa gayon ang pagdaragdag ng mga bagong laro sa hinaharap ay magiging prangka.

Ipapakita ko rin ang mainit upang ikonekta ang isang simpleng joystick sa isang RS232 cable. Gumagamit ako ng parehong pinout ng Commodore 64 isa.

Ang proyektong ito ay ginawang posible ng kamangha-manghang aklatan ng ESP32 VGA na isinulat ni Fabrizio Di Vittorio. Tingnan dito para sa karagdagang detalye.

Hakbang 1: Mga Board ng ESP32, Pag-install ng Arduino IDE at Pag-configure ng VGA Library

Mga Board ng ESP32, Pag-install ng Arduino IDE at Pag-configure ng VGA Library
Mga Board ng ESP32, Pag-install ng Arduino IDE at Pag-configure ng VGA Library
Mga Board ng ESP32, Pag-install ng Arduino IDE at Pag-configure ng VGA Library
Mga Board ng ESP32, Pag-install ng Arduino IDE at Pag-configure ng VGA Library
Mga Board ng ESP32, Pag-install ng Arduino IDE at Pag-configure ng VGA Library
Mga Board ng ESP32, Pag-install ng Arduino IDE at Pag-configure ng VGA Library

Una sa lahat kailangan mong bumili ng isang ESP32 na rebisyon 1 o mas mataas. Maraming magagamit na mga bersyon, ngunit inirerekumenda kong pumili ng isa na may maraming mga pin, mas mabuti ang isang modelo tulad ng nasa larawan na ito, na may 38 mga pin. Gumagamit ako ng bersyon na ito, ngunit sa palagay ko marami pang iba ay mabuti rin. Sa ebay maaari mong makita ang modelong ito nang mas kaunti sa 7 Euro, kabilang ang paghahatid.

Kapag nakuha mo ang board, kailangan mong magpatuloy sa sumusunod na tatlong mga sub-hakbang:

  1. I-install ang huling Arduino IDE
  2. I-configure ang ESP32 sa IDE at
  3. I-download at i-install ang VGA library

Sub-hakbang 1. Mayroong iba't ibang mga pamamaraan upang mai-program ang ESP32, ngunit narito kailangan mong gamitin ang Arduino IDE (Gumagamit ako ng bersyon 1.8.9, sa pamamagitan ng paraan). Upang mai-install ito, maaari kang pumunta sa pahina ng Arduino IDE at sundin ang mga tagubilin.

Sub-hakbang 2. Kapag tapos na ang nakaraang operasyon, kailangan mong i-configure ang iyong ESP32 sa loob ng Arduino IDE. Ito ay hindi gaanong mahalaga, dahil ang ESP32 ay hindi (pa?) Katutubo dito. Maaari mong sundin ang tutorial na ito, o ang mga sumusunod na hakbang.

1) buksan ang Arduino IDE

2) buksan ang window ng mga kagustuhan, File / Preferensya, kahalili pindutin ang "Ctrl + comma"

3) pumunta sa "Mga Karagdagang Mga URL ng Manager ng Board", kopyahin at i-paste ang sumusunod na teksto:

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

at i-click ang OK na pindutan.

4) Open boards manager. Pumunta sa Mga Tool / Board / Board Board…

5) Maghanap para sa ESP32 at pindutin ang pindutan ng pag-install para sa "ESP32 ng Espressif Systems":

6) Sa puntong ito, kapag kumonekta ka sa unang pagkakataon sa iyong ESP32, dapat mong piliin ang tamang modelo sa mahabang listahan ng mga magagamit na mga board ng ESP32 (tingnan ang larawan sa hakbang na ito). Sa kaso ng mga pag-aalinlangan tungkol sa modelo, piliin lamang ang generic, ibig sabihin, ang una. Gumagana sa akin.

7) dapat ding piliin ng system ang tamang port ng USB (COM) at ang Bilis ng Pag-upload (normal na 921600). Sa puntong ito ang koneksyon sa pagitan ng iyong PC at ng board ng ESP32 ay dapat na maitatag.

Sub-hakbang 3. Panghuli kailangan mong i-install ang FabGL VGA library. Mag-click dito upang i-download ang kumpletong naka-compress na file. I-compress ito at kopyahin ang nagresultang folder (FabGL-master) sa folder ng mga aklatan ng Arduino IDE, na parang:

"… / Arduino-1.8.12 / mga aklatan".

Hakbang 2: Ina-upload ang "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0"

Mag-download ng ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip sa ilalim ng hakbang na ito. I-unzip at buksan ito gamit ang Arduino IDE, pagkatapos ay i-upload ito sa iyong ESP32. Kung wala kang mga mensahe ng error, dapat na tumatakbo ang code at kailangan mo lamang ikonekta ang port at mga pindutan ng VGA (o joystick).

Hakbang 3: Pagkonekta sa VGA Port

Pagkonekta sa VGA Port
Pagkonekta sa VGA Port

Kailangan mo ang mga sumusunod na bahagi:

  • isang Konektor ng DSUB15, ibig sabihin ay isang konektor ng babaeng VGA o isang VGA cable na puputulin.
  • tatlong 270 Ohm resistors.

Ikonekta ang ESP32 GPIO pin 2, 15 at 21 sa VGA Red, Green at Blue ayon sa pagkakabanggit, sa pamamagitan ng 270 Ohm resistors.

Ikonekta ang VGA Hsync at Vsync sa ESP32 GPIO pin 17 at 4 ayon sa pagkakabanggit.

Ikonekta ang mga konektor ng DSUB15 na 5, 6, 7, 8 at 10 sa ESP32 GND.

Para sa kahulugan ng pin ng konektor ng VGA DSUB15, tingnan ang larawan sa hakbang na ito. NB, ito ang bahagi ng paghihinang ng babaeng konektor.

Hakbang 4: Ikonekta ang Apat na Buttons

Ikonekta ang Apat na Butones
Ikonekta ang Apat na Butones
Ikonekta ang Apat na Butones
Ikonekta ang Apat na Butones
Ikonekta ang Apat na Butones
Ikonekta ang Apat na Butones

Kung wala kang isang C64 joystick maaari mong ikonekta ang apat na mga pindutan na sumusunod sa hakbang na ito. Kung ang yoy ay mayroong joystick, maaari mong laktawan ang hakbang na ito at tumalon sa susunod, ngunit maaari mo pa ring ikonekta ang parehong mga pindutan at ang joystick (sila ay "magkatulad").

Ipinapakita ng eskematiko sa hakbang na ito kung paano ikonekta ang isang solong pindutan (Karaniwan Bukas) mula sa + 5V sa ibinigay na pin na ESP32.

Tandaan na kailangan mo ring ikonekta ang ibinigay na pin na ESP sa GND sa labangan ng isang 1 hanggang 5 kOhm risistor. Sa ganitong paraan kapag ang pindutan ay pinakawalan (buksan) ang ESP pin ay eksaktong zero Volts. Mas partikular, kailangan mong ikonekta ang apat na mga pindutan sa sumusunod na pagkakasunud-sunod:

  • I-pin ang pindutan ng 12 hanggang Kanan
  • I-pin ang 25 hanggang Up button
  • I-pin ang 14 sa kaliwang pindutan
  • I-pin ang 35 hanggang Pababa na pindutan

Hakbang 5: Ikonekta ang Joystick

Ikonekta ang Joystick
Ikonekta ang Joystick
Ikonekta ang Joystick
Ikonekta ang Joystick
Ikonekta ang Joystick
Ikonekta ang Joystick

Ang isang C64 joystick ay ipinakita ang pinout sa unang larawan ng hakbang na ito. Upang ikonekta ito sa ESP32, kailangan mo ng isang 9 pin DSUB male konektor (ibig sabihin, isang socket), tulad ng ipinakita sa pangalawang larawan. Inalis ko ang isa na may nakalantad na mga pin mula sa isang lumang electronic board. Maaari mong gamitin ang isang heat-gun upang alisin ito (ngunit gawin ito sa labas!).

Kailangan mong ikonekta ang mga pin na sumusunod sa pagkakasunud-sunod ng bilang sa mga larawang ito. Tandaan na ang eskematiko ay tumutukoy sa bahagi ng joystick, sa gayon ito ay kumakatawan sa koneksyon ng babaeng plug nito. Ang socket (lalaki) upang kumonekta sa ESP32 ay may mga pin na may disposisyon na "mirror". Sa kaso ng pagdududa, tandaan na ang numero ng pin ay laging naiulat sa mga konektor ng lalaki at babae, tulad ng ipinakita sa pangatlong larawan.

Kung nais mong kontrolin ang mga laro gamit ang joystick lamang, ikonekta ang karaniwang pin (9) nito sa ESP32 + 5V, at ang mga joystick pin na 1, 2, 3, 4 at 6 sa mga ibinigay na pin na ESP na sumusunod sa sumusunod na listahan.

  • Pindutan ng ESP pin 12 hanggang Kanan (RS232 pin 4)
  • ESP pin 14 hanggang kaliwang pindutan (RS232 pin 3)
  • Button ng ESP pin 35 hanggang Down (RS232 pin 2)
  • Button ng ESP pin 25 hanggang Up (RS232 pin 1 at 6, ibig sabihin, sunog ng joystick)

NB ang mga pin ng ESP na 12, 14, 25 at 35 ay dapat na konektado din sa GND sa isang 1 hanggang 5 kOhm resistor. Sa ganitong paraan kapag ang pindutan ay pinakawalan (buksan) ang ESP pin ay eksaktong zero Volts.

Ang posisyon ng NB2 joystick UP at button ng sunog ay konektado magkasama sa ESP pin 25-

Nakakonekta ko ang apat na mga pindutan sa PC board, sa ganitong paraan hindi ko na kailangan ang joystick upang maglaro (bagaman sa joystick ay mas nakakatawa). Muli, ang RS232 pin 9 ay dapat na konektado sa +5 V at ang mga joystick pin ay kahanay lamang sa mga pindutan.

Hakbang 6: Konklusyon at Pagkilala

Konklusyon at Pagkilala
Konklusyon at Pagkilala

Kung gumagana ang lahat nang maayos, ikonekta lamang ang monitor ng VGA at dapat mong matamasa ang ilang lumang istilong laro!

Maaari ka ring gumuhit ng isang set ng Mandelbrot na may isang resolusyon na 640 x 350 pixel, upang subukan lamang ang mga kakayahan sa VGA library.

Tandaan na ang code ay nakasulat sa isang paraan na ang iba pang mga laro ay madaling maidagdag sa hinaharap (ang ESP32 ay may maraming puwang!). Ako ang proyektong ito ay nakakakuha ng sapat na interes, maaari kong gawin iyon …

Sa wakas, nais kong ipahayag ang aking mga tangke kay Fabrizio Di Vittorio para sa kanyang kahanga-hangang aklatan ng ESP32 VGA. Para sa higit pang mga detalye, halimbawa, at… Space Invaders, bisitahin ang kanyang site.

Inirerekumendang: