İçindekiler:
Video: Arduino Savaş Gemisi Oyunu: 3 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Çocukken Savaş Gemisi Oyununun kağıt kalem versiyonunu oynadığımı hatırlıyorum. Aslında, 1. Dünya Savaşı'ndan beri var. 1960'ların başında, ışıkları, sesleri ve gizli mayınları olan “Sonar Sub Hunt” adlı bir “elektronik” varyantım da vardı. Günümüzün video oyunu standartlarına göre Battleship oldukça sıkıcı ama torunların bu konuda ne düşündüğünü görmek için yine de bir tane yapacağımı düşündüm. Sonuçta, bazen retro havalı olabilir.
Battleship oyununu yapmakla ilgilenmiyor olsanız bile, bu projenin başka yerlerde faydalı olabilecek parçaları var. Belirli bir karakter konumunu ayarlamak için bir rutin içeren basit bir 4-bit 1602 LCD arayüzüne sahiptir. 4x4 anahtar matrisinin kodunu çözmek için bir arayüz de vardır. Bu iki arabirim ayrı içerme dosyaları olarak mevcuttur, böylece kolayca taşınabilirler. Oyun ayrıca çeşitli ses efekti rutinlerine ve basit bir tek transistörlü ses yükseltici devresine sahiptir.
Adım 1: Donanım
Burada sunulan şema tek bir oyuncu içindir, bu nedenle iki ünite yapılması gerekir. Üniteler, UART TX ve RX hatlarını ve bir topraklama kablosunu içeren 3 kablolu bir arabirim kullanarak iletişim kurar. Standart 1/8 inç stereo kulaklık jakı ve her iki ucunda erkek fişli standart bir kablo kullanmayı seçtim. Bir kutudan gelen RX, diğer kutunun TX'ine gider ve bunun tersi de geçerlidir. Bunu, kutunun içindeki kulaklık jakına lehimlenmiş kabloları değiştirerek veya kurarken devre kartında değiştirerek yapabilirsiniz.
Klasik oyun bir matris olarak tasarlanmıştı ama ben ekran için 1602 LCD kullanarak basit bir uygulama yapmaya karar verdim. İlk satır, oyuncunun gemi konumlarını ve rakibin atışlarını gösterir. İkinci satır, oyuncunun atışlarını ve rakibin gemilerindeki isabetleri gösterir. Bu, gemiler için 16 olası konum sağlar. Gemi sayısı yazılımda ayarlandı ve ben keyfi olarak 5'i seçtim.
16 gemi konumu, 4x4 matrise izin verdiği için anahtar gereksinimlerine iyi uyum sağlar. 4x4 matris anahtar pedleri mevcuttur, ancak doğrusal ekrana uyması için tek bir satırda bireysel anahtarları kullanmayı seçtim. Bununla birlikte, anahtarları 4x4 matris olarak bağladım, böylece sadece sekiz Arduino pinine ihtiyaç duyuldu. Doğru bağlantılar için anahtar bağlantı şemasına ve şemaya bakın.
LCD ekran, 4 bitlik bir arayüz için kablolanmıştır. Ayrıca hangi oyuncunun atış yapması gerektiğini belirtmek için D13 pinine harici bir LED ekledim. İlk olarak, oyuncular ilk atışı kimin yapacağına karar verir ve ardından yazılım oyunun ileri geri hareketini otomatik olarak kontrol eder.
Atış, patlamalar, oyuna hazır ve kazanan/kaybeden için basit ses efektleri eklemek istedim. Basit bir piezo buzzer kullanmayı denedim ama bunun yerine küçük bir hoparlör buldum. Hoparlörün ihtiyaç duyduğu akım, Arduino'nun kaldırabileceğini aşıyor, bu nedenle basit bir transistör amplifikatörü eklendi. Ses hala harika değil ama sesli uyarıdan daha iyi. Hoparlörüm 4 ohm, ancak 8 ohm'luk bir hoparlörünüz varsa, şematikteki direnci 39 ohm'dan 33 ohm'a değiştirin. Piezo buzzer kullanıyorsanız, zilin diğer tarafı toprağa bağlıyken onu doğrudan Arduino pininden çalıştırabilmelisiniz.
Harici bir sıfırlama anahtarı da dahildir ve doğrudan toprak ile Arduino'daki "sıfırlama" pimi arasına bağlanır. Bu, oyunu yeniden başlatmak için araçlar sağlar.
2. Adım: Yazılım
Yazılım, LCD arayüzüm için içerme dosyasına sahiptir ve ayrıca 4x4 anahtar matris taraması için bir içerme dosyası oluşturdum. Başlatma, oyuncudan gemileri için konumları seçmesini ister ve ardından "Hazır" durumuna geçer. Her iki oyuncu da hazır olduğunda biri bir düğmeye basarak oyunu başlatır.
Atış konumu, UART aracılığıyla diğer oyuncuya iletilir ve uygun sonuç, atış yapan oyuncuya geri iletilir. Daha önce de belirtildiği gibi, ilk çekim yapıldıktan sonra yazılım, bir sonraki çekimi kimin yapacağını kontrol eder. Bir çekim iletilmeden önce, önceki çekimlerin konumlarına göre kontrol edilir. Bu konum zaten kullanılmışsa, çekim iletilmez. “My_Shot” LED'i sıranın kimde olduğunu belirler. Ayrıca geçerli bir seçim için üretilen bir atış sesi ve bir gemi vurulursa bir patlama sesi de vardır. Ses efektleri, oyuna uygun değişikliklerle çevrimiçi olarak bulunan örneklerden türetilmiştir.
Rakibin tüm gemileri vurulduğunda, her LCD'de biri kazanan, diğeri kaybeden olarak bir mesaj görüntülenir. Mesaj ayrıca, sıfırlama düğmesine basılarak oyunun yeniden başlatılabileceğini belirtir. Kazanan ve kaybeden için ayrı ses efektleri de vardır.
3. Adım: Ekran Görüntüleri
İşte oyundan bazı ekran görüntüleri. Bu yazı için bu kadar. Diğer Talimatlarıma ve ayrıca web siteme göz atın: www.boomerrules.wordpress.com
Önerilen:
Arduino Uzay Gemisi Arayüzü: 3 Adım
Arduino Uzay Gemisi Arayüzü: Merhaba Eğitilebilir topluluk, Bu sefer Arduino Uno ile tamamlanması en basit projelerden birini yaptım: bir uzay gemisi devresi. Erken bilimkurgu TV şovlarında ve sinema filmlerinde kullanılacak olan programlama ve devre türü olduğu için böyle adlandırılıyor
Gerçek Bir Savaş Kule Savunma Oyunu Yapmak: 11 Adım
Gerçek Hayat Savaş Kule Savunma Oyunu Yapmak: Merhaba, biz GBU'yuz! Ekibimize VG100, Intro to Engineering, sınıfımızda bir görev verildi: gerçek bir Warzone Kule Savunma Oyunu tasarlamak ve inşa etmek. VG100, tüm birinci sınıf öğrencilerinin Joint Institute'ta (JI) alması gereken bir temel sınıftır. The Joint Inst
Arduino Otonom Filtreleme Gemisi: 6 Adım
Arduino Otonom Filtreleme Gemisi: Bu Eğitilebilir Kitapta, Körfez Kıyısı sularındaki mevcut Kırmızı Alg sorunu için önerilen çözümümü nasıl tasarladığımı ve yaptığımı göstereceğim. Bu proje için tam otonom ve güneş enerjisiyle hareket edebilen bir gemi tasarlamak istedim
Biblo Mikrodenetleyicili Uzay Savaş Gemisi Yamato 2199: 8 Adım (Resimlerle)
Space Battleship Yamato 2199 Biblo Mikrodenetleyicili: Bandai modelinin çekici tasarımına ek olarak Space Battleship Yamato'nun animasyon ve filminin yeniden yapımı nedeniyle. Bu uzay savaş gemisi modelini yeniden inşa etmek ilgimi çekiyor. Bandai ölçeğinden bahsetmiyor, tahminen ~1:2500 olabilir
Savaş Gemileri Oyunu: 9 Adım
Savaş Gemileri Oyunu: Hiç deniz savaş makinelerinin tam kontrolünde bir kaptan olmayı hayal ettiniz mi? O zaman Savaş gemileri oyunu tam size göre. Bu destansı deniz savaşları oyunu patlayıcılarla dolu ve nihai amacı, nerede olduğunu tahmin ederek tüm düşman gemilerini yok etmek