Mündəricat:

ESP32 VGA Arcade Oyunları və Joystick: 6 addım (şəkillərlə)
ESP32 VGA Arcade Oyunları və Joystick: 6 addım (şəkillərlə)

Video: ESP32 VGA Arcade Oyunları və Joystick: 6 addım (şəkillərlə)

Video: ESP32 VGA Arcade Oyunları və Joystick: 6 addım (şəkillərlə)
Video: ESP32 VGA four games & joystick 2024, Iyul
Anonim
Image
Image
ESP32 VGA Arcade Oyunları və Joystick
ESP32 VGA Arcade Oyunları və Joystick
ESP32 VGA Arcade Oyunları və Joystick
ESP32 VGA Arcade Oyunları və Joystick

Bu təlimatda, bir VGA monitoru çıxışı olan bir ESP32 istifadə edərək - Tetris - Snake - Breakout - Bomber - oyun kimi dörd arcade -in necə təkrarlanacağını göstərəcəyəm.

Çözünürlük 8 rəngdə 320 x 200 pikseldir. Daha əvvəl Arduino Uno ilə bir versiya hazırladım (buraya baxın), ancaq qətnamə yalnız 120 x 60 piksel, 4 rəng idi və Arduino yaddaşı demək olar ki, dolu idi. ESP32 -nin daha böyük performansları sayəsində həm qətnamə, həm də oynatma qabiliyyəti daha yüksəkdir. Bundan əlavə, hələ də kifayət qədər yaddaş var, beləliklə gələcəkdə yeni oyunlar əlavə etmək asan olacaq.

RS232 kabeli ilə sadə bir joystick bağlamaq üçün isti göstərəcəyəm. Commodore 64 -ün eyni pinoutundan istifadə edirəm.

Bu layihə Fabrizio Di Vittorio tərəfindən yazılan möhtəşəm ESP32 VGA kitabxanası sayəsində mümkün oldu. Ətraflı məlumat üçün bura baxın.

Addım 1: ESP32 Kartları, Arduino IDE Quraşdırması və VGA Kitabxana Konfiqurasiyası

ESP32 Lövhələri, Arduino IDE Quraşdırması və VGA Kitabxana Konfiqurasiyası
ESP32 Lövhələri, Arduino IDE Quraşdırması və VGA Kitabxana Konfiqurasiyası
ESP32 Lövhələri, Arduino IDE Quraşdırması və VGA Kitabxana Konfiqurasiyası
ESP32 Lövhələri, Arduino IDE Quraşdırması və VGA Kitabxana Konfiqurasiyası
ESP32 Lövhələri, Arduino IDE Quraşdırması və VGA Kitabxana Konfiqurasiyası
ESP32 Lövhələri, Arduino IDE Quraşdırması və VGA Kitabxana Konfiqurasiyası

Əvvəlcə bir ESP32 versiyası 1 və ya daha yüksək bir satın almalısınız. Mövcud bir çox versiya var, amma bir çox sancağı olan birini, bu şəkildəki kimi 38 pinli bir model seçməyi məsləhət görürəm. Bu versiyanı istifadə edirəm, amma düşünürəm ki, bir çoxları da yaxşıdır. Ebayda bu modeli çatdırılma daxil olmaqla 7 Avrodan aşağı qiymətə tapa bilərsiniz.

Lövhəni əldə etdikdən sonra aşağıdakı üç alt addıma davam etməlisiniz:

  1. Son Arduino IDE -ni quraşdırın
  2. IDE -də ESP32 -ni konfiqurasiya edin
  3. VGA kitabxanasını yükləyin və quraşdırın

Alt addım 1. ESP32-ni proqramlaşdırmağın fərqli üsulları var, ancaq burada Arduino IDE-dən istifadə etməlisiniz (bu arada 1.8.9 versiyasını istifadə edirəm). Qurmaq üçün Arduino IDE səhifəsinə gedib təlimatları izləyə bilərsiniz.

Alt addım 2. Əvvəlki əməliyyat edildikdən sonra, Arduino IDE-də ESP32-ni konfiqurasiya etməlisiniz. Bu əhəmiyyətsiz deyil, çünki ESP32 özündə deyil (hələ?). Bu təlimatı və ya aşağıdakı addımları izləyə bilərsiniz.

1) Arduino IDE -ni açın

2) üstünlüklər pəncərəsini açın, Fayl/Tercih, alternativ olaraq "Ctrl+virgül" düymələrini basın.

3) "Əlavə İdarə Heyəti Menecer URL'ləri" nə gedin, aşağıdakı mətni kopyalayın və yapışdırın:

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

və OK düyməsini basın.

4) Açıq lövhələr meneceri. Alətlərə/İdarə Heyətinə/İdarə Heyətinə gedin …

5) ESP32 axtarın və "ESP32 by Espressif Systems" üçün quraşdırma düyməsini basın:

6) ESP32 -ni ilk dəfə bağladığınız zaman, mövcud ESP32 lövhələrinin uzun siyahısında doğru modeli seçməlisiniz (bu addımdakı şəklə baxın). Modeldən şübhə edirsinizsə, ümumi olanı, yəni birincisini seçin. Mənim üçün işləyir.

7) sistem eyni zamanda düzgün USB (COM) portunu və Yükləmə Sürətini (normal olaraq 921600) seçməlidir. Bu zaman kompüterinizlə ESP32 lövhəsi arasında əlaqə qurulmalıdır.

Alt addım 3. Nəhayət, FabGL VGA kitabxanasını quraşdırmalısınız. Tam sıxılmış faylı yükləmək üçün bura vurun. Açın və ortaya çıxan qovluğu (FabGL-master) Arduino IDE kitabxana qovluğuna kopyalayın:

"… / arduino-1.8.12 / kitabxanalar".

Addım 2: "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0" yüklənir

Bu addımın altındakı ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip yükləyin. Arduino IDE ilə açın və açın, sonra ESP32 -yə yükləyin. Heç bir səhv mesajınız yoxdursa, kod artıq işləməlidir və yalnız VGA portunu və düymələrini (və ya joystick) bağlamanız lazımdır.

Addım 3: VGA Portuna qoşulun

VGA Portuna qoşulma
VGA Portuna qoşulma

Aşağıdakı hissələrə ehtiyacınız var:

  • DSUB15 Konnektoru, yəni kəsiləcək VGA dişi konnektoru və ya VGA kabeli.
  • üç 270 Ohm rezistor.

270 Ohm rezistorlar vasitəsilə ESP32 GPIO pin 2, 15 və 21 -ni sırasıyla VGA Red, Green və Blue -a qoşun.

VGA Hsync və Vsync -ni sırasıyla ESP32 GPIO pinlərinə 17 və 4 -ə qoşun.

5, 6, 7, 8 və 10 DSUB15 bağlayıcı pinlərini ESP32 GND -ə qoşun.

VGA DSUB15 bağlayıcı pinin tərifi üçün bu addımdakı şəklə baxın. NB, bu qadın bağlayıcının lehimləmə tərəfidir.

Addım 4: Dörd Düyməni Bağlayın

Dörd Düyməni Bağlayın
Dörd Düyməni Bağlayın
Dörd Düyməni Bağlayın
Dörd Düyməni Bağlayın
Dörd Düyməni Bağlayın
Dörd Düyməni Bağlayın

C64 joystickiniz yoxdursa, bu addımı izləyən dörd düyməni birləşdirə bilərsiniz. Joystickiniz varsa, bu addımı atıb bir sonrakı mərhələyə keçə bilərsiniz, amma hər halda həm düymələri, həm də joysticki bağlaya bilərsiniz (onlar hər halda "paralel" dir).

Bu addımdakı sxem, +5V -dən ESP32 -ə verilən tək bir düyməni (Normal Açıq) necə bağlayacağınızı göstərir.

Diqqət yetirin ki, ESP verilən pini 1 ilə 5 kOhm müqavimət vasitəsi ilə GND -yə bağlamalısınız. Bu şəkildə düymə buraxıldıqda (açıldıqda) ESP pimi tam sıfır Voltdur. Daha dəqiq desək, aşağıdakı düyməni basaraq dörd düyməni bağlamalısınız:

  • 12 düyməsini sağ düyməyə bərkidin
  • 25 düyməsini yuxarı qaldırın
  • 14 düyməsini sol düyməyə bərkidin
  • 35 düyməsini Aşağı düyməsinə bərkidin

Addım 5: Joystick'i bağlayın

Joystick'i qoşun
Joystick'i qoşun
Joystick'i qoşun
Joystick'i qoşun
Joystick'i qoşun
Joystick'i qoşun

C64 joystick -də bu addımın ilk şəkilində göstərilən pinout var. ESP32 -yə bağlamaq üçün, ikinci şəkildə göstərildiyi kimi 9 pinli DSUB kişi konnektoru (yəni, priz) lazımdır. Açıq sancaqlar olan birini köhnə elektron lövhədən çıxardım. Çıxarmaq üçün istilik silahı istifadə edə bilərsiniz (ancaq açıq havada edin!).

Bu şəkillərdəki rəqəm sırasına uyğun olaraq pinləri bağlamalısınız. Diqqət yetirin ki, sxem, joystick tərəfinə aiddir, buna görə də qadın fişinin əlaqəsini təmsil edir. ESP32 -yə qoşulmaq üçün yuva (kişi) "güzgü" mövqeyinə malik pinlərə malikdir. Şübhə halında, üçüncü nömrədə göstərildiyi kimi pin nömrəsinin həmişə kişi və qadın konnektorlarda bildirildiyini unutmayın.

Oyunları yalnız joystick ilə idarə etmək istəyirsinizsə, onun ümumi pinini (9) ESP32 +5V -ə və 1, 2, 3, 4 və 6 -cı joystick pinlərini aşağıdakı siyahıdan sonra verilən ESP pinlərinə bağlayın.

  • ESP pin 12 - sağ düymə (RS232 pin 4)
  • ESP pin 14 - Sol düymə (RS232 pin 3)
  • ESP pin 35 Aşağı düyməsinə (RS232 pin 2)
  • ESP pin 25 -dən yuxarı düyməsinə (RS232 pin 1 və 6, yəni joystick atəşi)

NB ESP sancaqları 12, 14, 25 və 35 də 1 ilə 5 kOhm müqavimət vasitəsi ilə GND -yə qoşulmalıdır. Bu şəkildə düymə buraxıldıqda (açıldıqda) ESP pimi tam sıfır Voltdur.

NB2 joystick YUKARI mövqeyi və yanğın düyməsi ESP pin 25-ə birləşdirilir.

PC lövhəsində dörd düyməni bağladım, bu şəkildə oynamaq üçün joystickə ehtiyacım yoxdur (baxmayaraq ki, joystick ilə daha gülməli olsa da). Yenə RS232 pin 9 +5 V -ə qoşulmalıdır və joystick pinləri düymələrə paraleldir.

Addım 6: Nəticə və Təsdiq

Nəticə və etiraf
Nəticə və etiraf

Hər şey düzgün işləyirsə, sadəcə VGA monitorunu bağlayın və köhnə üslublu oyunlardan zövq ala bilərsiniz!

Yalnız VGA kitabxana imkanlarını yoxlamaq üçün 640 x 350 piksel qətnamə ilə Mandelbrot dəsti çəkə bilərsiniz.

Kodun digər oyunların gələcəkdə asanlıqla əlavə oluna biləcəyi şəkildə yazıldığını unutmayın (ESP32 -də çox yer var!). Bu layihə kifayət qədər maraq görürsə, bunu edə bilərəm …

Nəhayət, zəhmli ESP32 VGA kitabxanası üçün tanklarımı Fabrizio Di Vittorio -ya bildirmək istəyirəm. Daha ətraflı məlumat, nümunələr və… Space Invaders üçün saytına daxil olun.

Tövsiyə: