İçindekiler:

ESP32 VGA Atari Oyunları ve Joystick: 6 Adım (Resimlerle)
ESP32 VGA Atari Oyunları ve Joystick: 6 Adım (Resimlerle)

Video: ESP32 VGA Atari Oyunları ve Joystick: 6 Adım (Resimlerle)

Video: ESP32 VGA Atari Oyunları ve Joystick: 6 Adım (Resimlerle)
Video: ESP32 Mini Game Console - Game Wing 2024, Temmuz
Anonim
Image
Image
ESP32 VGA Atari Oyunları ve Joystick
ESP32 VGA Atari Oyunları ve Joystick
ESP32 VGA Atari Oyunları ve Joystick
ESP32 VGA Atari Oyunları ve Joystick

Bu talimatta, bir ESP32 kullanarak, bir VGA monitör çıkışı ile dört arcade benzeri oyunun - Tetris - Snake - Breakout - Bomber - nasıl yeniden üretileceğini göstereceğim.

Çözünürlük, 8 renkte 320 x 200 pikseldir. Daha önce bir Arduino Uno ile bir sürüm yaptım (buraya bakın), ancak çözünürlük sadece 120 x 60 piksel, 4 renkti ve Arduino belleği neredeyse doluydu. ESP32'nin daha yüksek performansları sayesinde hem çözünürlük hem de oynanabilirlik daha yüksektir. Ayrıca, hala bol miktarda bellek var, bu nedenle gelecekte yeni oyunlar eklemek kolay olacak.

Ayrıca, bir RS232 kablosu aracılığıyla basit bir joystick'i bağlamayı da göstereceğim. Commodore 64'ün aynı pin çıkışını kullanıyorum.

Bu proje, Fabrizio Di Vittorio tarafından yazılan harika ESP32 VGA kitaplığı sayesinde mümkün oldu. Daha fazla ayrıntı için buraya bakın.

Adım 1: ESP32 Kartları, Arduino IDE Kurulumu ve VGA Kütüphane Yapılandırması

ESP32 Kartları, Arduino IDE Kurulumu ve VGA Kütüphane Yapılandırması
ESP32 Kartları, Arduino IDE Kurulumu ve VGA Kütüphane Yapılandırması
ESP32 Kartları, Arduino IDE Kurulumu ve VGA Kütüphane Yapılandırması
ESP32 Kartları, Arduino IDE Kurulumu ve VGA Kütüphane Yapılandırması
ESP32 Kartları, Arduino IDE Kurulumu ve VGA Kütüphane Yapılandırması
ESP32 Kartları, Arduino IDE Kurulumu ve VGA Kütüphane Yapılandırması

Her şeyden önce bir ESP32 revizyon 1 veya üstü satın almanız gerekir. Pek çok versiyonu mevcut ama ben çok pinli olanı tercih etmenizi tavsiye ederim, tercihen bu resimdeki gibi 38 pinli bir model. Bu sürümü kullanıyorum, ancak diğerlerinin de iyi olduğunu düşünüyorum. Ebay'de bu modeli teslimat dahil 7 Euro'dan daha ucuza bulabilirsiniz.

Tahtayı aldıktan sonra, aşağıdaki üç alt adımla ilerlemeniz gerekir:

  1. Son Arduino IDE'yi yükleyin
  2. IDE'de ESP32'yi yapılandırın ve
  3. VGA kitaplığını indirin ve yükleyin

Alt adım 1. ESP32'yi programlamak için farklı yöntemler var, ancak burada Arduino IDE'yi kullanmanız gerekiyor (bu arada ben 1.8.9 sürümünü kullanıyorum). Kurulum için Arduino IDE sayfasına gidebilir ve yönergeleri takip edebilirsiniz.

Alt adım 2. Bir önceki işlem tamamlandıktan sonra, Arduino IDE içinde ESP32'nizi yapılandırmanız gerekir. ESP32 (henüz?) yerel olmadığı için bu önemsiz değildir. Bu öğreticiyi veya aşağıdaki adımları takip edebilirsiniz.

1) Arduino IDE'yi açın

2) tercihler penceresini açın, Dosya/Tercih, alternatif olarak "Ctrl+virgül" tuşlarına basın

3) "Ek Pano Yöneticisi URL'leri"ne gidin, aşağıdaki metni kopyalayıp yapıştırın:

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

ve Tamam düğmesini tıklayın.

4) Kurul yöneticisini açın. Araçlar/Pano/Pano Yöneticisi'ne gidin…

5) ESP32'yi arayın ve “ESP32 by Espressif Systems“için kurulum düğmesine basın:

6) Bu noktada, ESP32'nizi ilk kez bağladığınızda, mevcut ESP32 kartlarının uzun listesinden doğru modeli seçmelisiniz (bu adımdaki resme bakın). Model hakkında şüpheniz varsa, genel olanı seçin, yani ilkini. Benim için çalışıyor.

7) sistem ayrıca doğru USB (COM) bağlantı noktasını ve Yükleme Hızını (normalde 921600) seçmelidir. Bu noktada PC'niz ile ESP32 kartı arasındaki bağlantı kurulmalıdır.

Alt Adım 3. Son olarak FabGL VGA kitaplığını kurmanız gerekir. Sıkıştırılmış dosyanın tamamını indirmek için buraya tıklayın. Sıkıştırılmış dosyayı açın ve ortaya çıkan klasörü (FabGL-master) Arduino IDE kitaplıkları klasörüne kopyalayın, şuna benzer:

"…\arduino-1.8.12\kütüphaneler".

2. Adım: "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0" yükleme

Bu adımın altındaki ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip dosyasını indirin. Arduino IDE ile açın ve açın, ardından ESP32'nize yükleyin. Hata mesajınız yoksa, kod zaten çalışıyor olmalı ve sadece VGA bağlantı noktasını ve düğmelerini (veya joystick'i) bağlamanız gerekir.

Adım 3: VGA Bağlantı Noktasını Bağlama

VGA Bağlantı Noktasını Bağlama
VGA Bağlantı Noktasını Bağlama

Aşağıdaki parçalara ihtiyacınız var:

  • bir DSUB15 Konektör, yani bir VGA dişi konektör veya kesilecek bir VGA kablosu.
  • üç 270 Ohm direnç.

ESP32 GPIO pin 2, 15 ve 21'i 270 Ohm dirençler aracılığıyla sırasıyla VGA Kırmızı, Yeşil ve Mavi'ye bağlayın.

VGA Hsync ve Vsync'i sırasıyla ESP32 GPIO pinleri 17 ve 4'e bağlayın.

DSUB15 konektörlerinin 5, 6, 7, 8 ve 10 numaralı pinlerini ESP32 GND'ye bağlayın.

VGA DSUB15 konektör pin tanımı için bu adımdaki resme bakın. Not, bu dişi konnektörün lehimleme tarafıdır.

Adım 4: Dört Düğmeyi Bağlayın

Dört Düğmeyi Bağlayın
Dört Düğmeyi Bağlayın
Dört Düğmeyi Bağlayın
Dört Düğmeyi Bağlayın
Dört Düğmeyi Bağlayın
Dört Düğmeyi Bağlayın

C64 joystick'iniz yoksa bu adımı izleyerek dört düğme bağlayabilirsiniz. Joystick'iniz varsa, bu adımı atlayabilir ve bir sonrakine atlayabilirsiniz, ancak yine de hem düğmeleri hem de joystick'i bağlayabilirsiniz (yine de "paraleldirler").

Bu adımdaki şema, +5V'den tek bir düğmenin (Normalde Açık) ESP32 verilen pine nasıl bağlanacağını gösterir.

Ayrıca ESP tarafından verilen pimi 1 ila 5 kOhm'luk bir direnç aracılığıyla GND'ye bağlamanız gerektiğini unutmayın. Bu şekilde düğme bırakıldığında (açıldığında) ESP pini tam olarak sıfır Volttadır. Daha spesifik olarak, aşağıdaki sırayla dört düğmeyi bağlamanız gerekir:

  • 12'yi Sağa Sabitle düğmesi
  • 25'i Yukarıya Sabitle düğmesi
  • 14'ü Sola Sabitle düğmesi
  • 35'i Aşağı düğmesine sabitleyin

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

Joystick'i bağlayın
Joystick'i bağlayın
Joystick'i bağlayın
Joystick'i bağlayın
Joystick'i bağlayın
Joystick'i bağlayın

Bir C64 joystick, bu adımın ilk resminde gösterilen pin çıkışına sahiptir. ESP32'ye bağlamak için ikinci resimde gösterildiği gibi 9 pinli bir DSUB erkek konektöre (yani bir soket) ihtiyacınız vardır. Eski bir elektronik karttan açıkta pimleri olan birini çıkardım. Çıkarmak için bir ısı tabancası kullanabilirsiniz (ancak bunu açık havada yapın!).

Bu resimlerdeki sayısal sırayı takip ederek pinleri bağlamanız gerekmektedir. Şemanın joystick tarafına atıfta bulunduğunu, dolayısıyla dişi fişinin bağlantısını temsil ettiğini unutmayın. ESP32'ye bağlanacak soket (erkek) "ayna" yerleşimli pinlere sahiptir. Şüphe durumunda, üçüncü resimde gösterildiği gibi erkek ve dişi konektörlerde pin numarasının her zaman bildirildiğini unutmayın.

Oyunları sadece joystick ile kontrol etmek istiyorsanız, ortak pinini (9) ESP32 +5V'ye ve joystick pinleri 1, 2, 3, 4 ve 6'yı aşağıdaki listeyi takip ederek ESP tarafından verilen pinlere bağlayın.

  • ESP pin 12'den Sağ düğmeye (RS232 pin 4)
  • ESP pimi 14'ten Sol düğmeye (RS232 pim 3)
  • ESP pimi 35'ten Aşağı düğmesine (RS232 pim 2)
  • ESP pimi 25 - Yukarı düğmesi (RS232 pim 1 ve 6, yani joystick ateşlemesi)

NB ESP pinleri 12, 14, 25 ve 35 de 1 ila 5 kOhm'luk bir direnç üzerinden GND'ye bağlanmalıdır. Bu şekilde düğme bırakıldığında (açıldığında) ESP pini tam olarak sıfır Volttadır.

NB2 joystick YUKARI konumu ve ateşleme düğmesi, ESP pin 25-'e bağlanır

PC kartına dört düğme bağladım, bu şekilde oynamak için joystick'e ihtiyacım yok (joystick ile çok daha eğlenceli olsa da). Yine RS232 pin 9 +5 V'a bağlanmalıdır ve joystick pinleri butonlara tam paraleldir.

Adım 6: Sonuç ve Teşekkür

Sonuç ve Teşekkür
Sonuç ve Teşekkür

Her şey düzgün çalışıyorsa, sadece VGA monitörünü bağlayın ve eski tarz oyunların keyfini çıkarabilmelisiniz!

Sadece VGA kitaplık özelliklerini test etmek için 640 x 350 piksel çözünürlüğe sahip bir Mandelbrot seti de çizebilirsiniz.

Kodun, gelecekte diğer oyunların kolayca eklenebileceği bir şekilde yazıldığını unutmayın (ESP32'de bol miktarda alan vardır!). Bu proje yeterince ilgi görürse bunu yapabilirim…

Son olarak, harika ESP32 VGA kütüphanesi için tanklarımı Fabrizio Di Vittorio'ya ifade etmek istiyorum. Daha fazla ayrıntı, örnekler ve… Space Invaders için sitesini ziyaret edin.

Önerilen: