İçindekiler:

ESP8266 VGA Pong: 5 Adım (Resimlerle)
ESP8266 VGA Pong: 5 Adım (Resimlerle)

Video: ESP8266 VGA Pong: 5 Adım (Resimlerle)

Video: ESP8266 VGA Pong: 5 Adım (Resimlerle)
Video: VGA Graphics on ESP8266 2024, Temmuz
Anonim
Image
Image
Malzeme Listesi
Malzeme Listesi

Bu Eğitilebilir Kitapta, bir ESP8266 ve diğer birkaç bileşen kullanarak bir VGA monitör için klasik Pong oyununun bir kopyasının nasıl oluşturulacağını göstereceğim.

Bu oyun, yakın zamanda GitHub'da Sandro Maffiodo (aka Smaffer) tarafından yayınlanan EspVGAx kütüphanesi tarafından mümkün kılınmıştır ve bildiğim kadarıyla bu, onu kullanan ilk oyundur.

Kitaplık, RAM içinde 30720 bayt gerektiren bir çerçeve arabelleğinde depolanan 512 x 480 piksel çözünürlüğü uygular. Çözünürlük, Arduino TVout veya VGAx olanlara kıyasla çok büyük (sırasıyla 128 x 96 ve 120 x 60 piksel). Umarım bu oyun diğer programcılara daha karmaşık oyunlar geliştirmeleri veya yeniden üretmeleri için ilham verir.

Adım 1: Malzeme Listesi

EspVGAx kitaplığı, ESP-12E, NodeMCU-12E kartı veya GPIO5 (D1), GPIO4 (D2) ve GPIO13 (D7) gibi tüm GPIO'ların açıkta olduğu bir ESP8266 gerektirir.

Özellikle şunları kullandım:

  • bir ESP8266 NodeMCU-12E (buraya bağlantı)
  • bir DSUB15 konektörü (yani bir VGA dişi konektör)
  • 330 Ohm Direnç
  • başka bir direnç (yaklaşık 1 ila 3 kOhm)
  • iki adet 10 kOhm Potansiyometre
  • bir Basmalı Düğme (n.o.)
  • iki Diyot (1N4007s gibi)
  • ekmek tahtası
  • teller

DSUB15 konektörünü eski bir VGA PC kartından aldım. Alternatif olarak, eski bir VGA kablosunu da kesebilir ve kabloları doğrudan devre tahtasına bağlayabilirsiniz.

2. Adım: Kitaplık ve Çizim Yükleme

Kitaplık ve Çizim Yükleme
Kitaplık ve Çizim Yükleme

ESP8266 ve ESP8266'yı programlamanın farklı yöntemleri vardır; Arduino IDE'yi Pong yazmak ve kodu yüklemek için kullandım.

Lütfen EspVGAx kitaplığının Arduino IDE 1.8.1 için çalıştığını unutmayın. Başka sürümleriniz varsa, en iyisi.zip dosyalarını indirmek ve özel bir klasörde sıkıştırmaktır. Windows sürümü burada. Diğer işletim sistemleri için sürümler burada.

Daha sonra GithHub sayfasından EspVGAx kütüphanesini buradan indirmelisiniz (zip versiyonu için direkt link burada) ve Arduino yazılımındaki klasör kütüphanelerinde sıkıştırmalısınız.

NB espvgax_draw.h dosyasında küçük bir hata var. Düzeltmek için 17. satırı değiştirin:

while (x0%32) { ile while (x0%32 && sw > 32) {

Son olarak bu adımın sonunda ESP8266_Pong.rar dosyasını indirebilirsiniz.

Açıldıktan sonra, ESP8266'nıza yüklemek için Arduino IDE'yi yapılandırmanız gerekir.

Hiç yapmadıysanız, bu Talimatlarda, özellikle Adım 2'de gerekli tüm talimatları bulabilirsiniz.

Her şey yapılandırıldıktan sonra, ESP8266 ayarları yukarıdaki resimde gösterilenler gibi görünmelidir.

Kodu hatasız yükleyebilirseniz parçaları birleştirmeye başlayabilirsiniz.

Adım 3: Parçaları Bağlama: VGA Konektörü

Parçaları Bağlama: VGA Konektörü
Parçaları Bağlama: VGA Konektörü
Parçaları Bağlama: VGA Konektörü
Parçaları Bağlama: VGA Konektörü
Parçaları Bağlama: VGA Konektörü
Parçaları Bağlama: VGA Konektörü

Yukarıdaki resimlerde gösterildiği gibi önce VGA bağlantı noktasını bağlamanızı tavsiye ederim. Kırmızı, Yeşil ve Mavi üç pini (yani DSUB15 konektöründeki 1, 2 ve 3 numaralı pinler) birbirine bağlayarak, ekranınızda S&B bir görüntü elde edeceğinizi lütfen unutmayın. Farklı renk kombinasyonlarına da sahip olabilirsiniz. Kitaplık GitHub sayfasındaki ayrıntılara bakın.

Ayrıca, ESP8266'daki RGB pinleri ile D7 (GPIO13) arasına 330 Ohm'luk bir direnç bağlamalısınız. Bu bana monitörümde biraz grimsi bir görüntü verdi, bu yüzden birkaç denemeden sonra onu tamamen ortadan kaldırmaya karar verdim.

Bu noktada, her şey düzgün çalışıyorsa, zaten monitörü bağlayabilir ve oyunun başlangıç ekranını "ESP8266 VGAx Pong" başlığıyla görebilirsiniz.

Adım 4: Parçaların Bağlanması: Potansiyometreler ve Düğme

Parçaların Bağlanması: Potansiyometreler ve Düğme
Parçaların Bağlanması: Potansiyometreler ve Düğme

Düğme 3.3V ile pin D0 (GPIO16) arasına bağlanmalıdır. D0'dan toprağa 1 ila 3 kOhm direnci de bağlayın. Bu, düğme açıkken D0'ın belirsiz bir durumda olmasını önler.

İki potansiyometrenin bağlantısı daha az önemsizdir, aslında ESP8266'nın sadece bir analog giriş portu A0 (ADC0) vardır! İşin püf noktası, her iki pot.s çıkışını aynı bağlantı noktasına bağlamak ve bunları 'multiplex' etmektir. Çoğullama, basitçe, bir potansiyometreyi açacağınız, okuyacağınız ve ardından kapatacağınız ve ikincisine geçeceğiniz anlamına gelir.

Bu yöntem hakkında daha fazla bilgi edinmek istiyorsanız, bu Eğitilebilir Yazıyı okuyabilirsiniz.

Bir potansiyometreyi GND'ye, diğer uç ucunu sol oyuncu potansiyometresi için D5'e ve sağ oyuncu potansiyometresi için D6'ya bağlayın.

Her bir potansiyometre merkez pimi, ayrı bir diyota bağlanmalı ve diyotların diğer tarafları, yukarıdaki resimde gösterilen polarite ile A0'a (ADC0) bağlanmalıdır.

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

ESPVGAX kitaplığı için Sandro Maffiodo - SMAFFER'a minnettarım. Bu oyun onsuz mümkün olmazdı.

Umarım bu Eğitilebilir Kitap, Arduino'dan çok daha az sınırlamaya sahip olan ESP8266 ile daha karmaşık klasik arcade oyunlarının reprodüksiyonlarını yapmak için diğer programcılara ilham kaynağı olur.

Son olarak, bu Eğitilebilir Yazıyı Oyuncak Yarışması'na göndermek için yazdım: Beğenirseniz veya çoğaltırsanız, lütfen oy vermek için bir dakikanızı ayırın!

Önerilen: