İçindekiler:
- Adım 1: ESP32 Kartları, Arduino IDE Kurulumu ve VGA Kütüphane Yapılandırması
- 2. Adım: "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0" yükleme
- Adım 3: VGA Bağlantı Noktasını Bağlama
- Adım 4: Dört Düğmeyi Bağlayın
- Adım 5: Joystick'i bağlayın
- Adım 6: Sonuç ve Teşekkür
Video: ESP32 VGA Atari Oyunları ve Joystick: 6 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
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ı
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:
- Son Arduino IDE'yi yükleyin
- IDE'de ESP32'yi yapılandırın ve
- 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
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
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
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
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:
Scratch Oyunları (FNaF): 4 Adım
Scratch Oyunları Yapmak (FNaF): Ben, eevee1tree. SCRATCH'ta FNaF Oyununun Nasıl Yapılacağını Size Göstereceğim!!! Scratch'i bilmiyorsanız, oyun, animasyon, sanat yapabileceğiniz bir Programlama sitesidir ve bununla bugün konumuz olan oyunları bir FNaF oyunu yapabiliriz
In-Line LED Display Arduino Oyunları: 7 Adım (Resimlerle)
In-Line LED Ekran Arduino Oyunları: aka LED Merdiven Ekran Oyun Sistemi. Aksiyon dolu "video" oynatmak için donanım ve yazılımla donatılmış bir Attiny-85; oyunlar, sıralı bir LED ekranda. Çok katlı 12 LED merdiven ekranına sahiptir ve 6 adede kadar düğme girişini ve bir opt
Puan Tablosu ile İki Kişilik Tek LED Şerit Oyunları: 10 Adım
Puan Tablosu ile İki Kişilik Tek LED Strip Oyunları: Her şeyden önce dünyadaki tüm insanlar için tanrıya dua edin, bu zamanda bize sadece Tanrı yardım edebilir ve bize barış verebilir. Hepimiz kilitliyiz ve gidecek hiçbir yerimiz yok. Yapacak daha fazla işim yok, bu yüzden çevrimiçi python öğrenmeye başlayın ve herhangi bir şey düşünemiyorum
Yamaç Paraşütü Oyunları için Kendin Yap Kontrolörü: 5 Adım (Resimlerle)
Yamaç Paraşütü Oyunları için Kendin Yap Kontrolörü: Birkaç farklı yamaç paraşütü oyunu oynadım ve her zaman hangi kontrolleri kullandığınızla ilgili sorunu buldum. Yamaç paraşütü uçuşu çok analog olduğu için Fare ve Klavye harika değil. Bir tür uçuş simülatörü veya araba yarışı oyununa benziyor, bir eğlenceye ihtiyacınız var
Yarış Oyunları veya Coaster Simülatörleri için Hız Simülatörü: 5 Adım (Resimlerle)
Yarış Oyunları veya Coaster Simülatörleri için Hız Simülatörü: Basit bir proje, oyun içi hıza göre bir fan yüzünüze hava üfleyecek. Yapması kolay ve eğlenceli