İçindekiler:

POI! - Arduino Atari Oyunu!: 3 Adım
POI! - Arduino Atari Oyunu!: 3 Adım

Video: POI! - Arduino Atari Oyunu!: 3 Adım

Video: POI! - Arduino Atari Oyunu!: 3 Adım
Video: Mario Bile Oynatan Arduino Tabanlı Game Boy 2024, Kasım
Anonim
Image
Image
POI! - Arduino Atari Oyunu!
POI! - Arduino Atari Oyunu!

Elegoo Inc.'in "En Eksiksiz Başlangıç Kiti UNO R3 Projesi" kitindeki parçaları kullanan PONG tarzı bir arcade oyunu yapacağız.

Tam Açıklama - Bu Talimat için sağlanan parçaların çoğu yazara Elegoo Inc. tarafından sağlanmıştır.

Bir LED Matrix modülü kullanarak bir proje oluşturmak istedim. Temel 8x8 LED ekran, matristeki ayrı LED'leri adresleyebilmek için ek kaydırma yazmaçlarının kullanılmasını gerektirir. Bunun yerine, bu proje MAX7219 8x8 LED modülünü kullanır. Kullanımı oldukça kolay bir modüldür.

Bu projedeki çok sayıda kablo bağlantısı nedeniyle, ORTA düzeyde bir Eğitilebilir olarak kabul edileceğini öneririm.

Başlayalım!

Gereçler

Elegoo Başlangıç Seti Kullanılan Parçalar (https://rebrand.ly/dvjb3w8)

  • UNO R3 Mikrodenetleyici
  • MAX7219 8x8 LED Modül
  • LCD 16x2 Ekran Modülü
  • 10K Trim Potansiyometre ve düğme
  • Dupont Telleri
  • 220R Direnç
  • Pasif Piezo Buzzer
  • Güç kaynağı modülü
  • 9V 1A Adaptör - UNO, 8x8 LED Modülü için yeterli akım sağlayamadığı için gereklidir
  • ekmek tahtası

Gerekli Ekstra Parçalar

2 x 10K Lineer Potansiyometre - ucuzdur ve eBay, AliExpress, Banggood vb.'de yaygın olarak bulunur.

Adım 1: Devreyi Kablolama

Devreyi Kablolama
Devreyi Kablolama

Devre şemasına göre devreyi bağlayın. Acele etmeyin. İki ekran için çok sayıda bağlantı gereklidir.

Devrenin fotoğrafında, güç modülünün devre tahtasının sol tarafına takıldığına ve LED matrisine yeterli akımın sağlanması için 9V 1A DC Adaptörün güç modülüne takıldığına dikkat edin. UNO üzerindeki 5V pin ile devre tahtası arasında HİÇBİR bağlantı yoktur. AMA, UNO'daki GND pimi, devre tahtasındaki GND'ye bağlanır.

Çalışmanızı iki ve üç kez kontrol edin.

Adım 2: Arduino Kodu

Bu talimat, Arduino'da nasıl programlanacağını zaten bildiğinizi varsayar.

Ekli Arduino taslağını indirin. Arduino kitaplıklarınıza LedControl kitaplığını eklediğinizden emin olun. Eberhard Fahle'nin versiyonunu kullandım. Kitaplıkları Yönet tarayıcısında MAX7219'u aramanız yeterlidir; onu bulup kuracaksınız.

pitches.h dosyasının çiziminizin klasöründe olduğundan emin olun. Oyundaki sesleri çalmak için kullanılır.

Zamanlama hakkında biraz

Delay() komutu, çalıştığında çiziminizin yürütülmesini tamamen duraklattığından, bunun yerine, çizimin animasyonla ilgili kısımlarını yürütmek istediğimizde geçen zaman periyotlarını ararız. Topun ekrandaki konumunu güncellemek gibi taslağın bölümlerini uygulamadan önce geçecek önceden ayarlanmış bir süre ararız.

Daha da önemlisi, delay() komutu gerçekten yalnızca loop() yönteminde yürütülür. Genellikle diğer yöntemlerde beklendiği gibi yürütülmez. Bu nedenle, animasyonla ilgili tüm zamanlama, loop() yönteminde yapılır.

Örnek:

Bazı 'uzun' tip değişkenler ve birkaç boole tanımlıyoruz ve ardından bunları setup()'ın sonuna yerleştiriyoruz.

bEşik = 80; // top güncellemeleri arasındaki milisaniye cinsinden süre

ballTime = millis();// mevcut sistem saatine ayarla

bon = yanlış; // top LED'i açık mı kapalı mı

ballReturn = yanlış; // bir raket vuruşundan sonra bir top mu dönüyoruz?

Topu çizmek için loop() içinde:

if ((millis() - ballTime > bThresh) && bon == false) {// top KAPALI ise ve yeterli süre geçmişse ballOn();// top LED'ini aç

bon = doğru; // top artık AÇIK

topZaman = millis(); // ballTime'ı şimdiki zamana sıfırla

}

if ((millis() - ballTime > bThresh) && bon == true) { // top AÇIK ise ve yeterli zaman geçmişse

topOff(); // top LED'ini kapat

bon = yanlış; // top artık KAPALI

topZaman = millis(); ballTIME'ı şimdiki zamana sıfırla

}

Bu oyunu yapmanın birçok yolu var. Bunlar sadece benim tercihlerim.

Çizim tamamen belgelenmiştir, bu yüzden nasıl çalıştığını görmek için sizi kodu okumaya davet ediyorum.

Kodunuzu kontrol edin, derleyin ve yükleyin.

Oyun oynamanın tadını çıkarın!

3. Adım: Sonuç

Çözüm
Çözüm
Çözüm
Çözüm

Bu projede kullanılan başlangıç kitini sağladığı için Elegoo Inc'e teşekkürlerimi sunarım. Sizi Arduino Maker dünyasına iyi bir şekilde sokacak çok çeşitli parça ve modüllere sahip bir kit.

Önerilen: