İçindekiler:

Mors'ta Arduino Cellat: 9 Adım
Mors'ta Arduino Cellat: 9 Adım

Video: Mors'ta Arduino Cellat: 9 Adım

Video: Mors'ta Arduino Cellat: 9 Adım
Video: 193 . Tablet & Laptop💻Aufbewahrung/Auszieh - Schrank, selbst bauen 2024, Haziran
Anonim
Mors Arduino Cellat
Mors Arduino Cellat

Bu derste, telefonunuzdan basit bir el feneri veya meşale işlevi ile Mors kodu göndererek Adam Asmaca oynamak için kendi Arduino'nuzu nasıl kuracağınızı göstereceğim.

Takip etmeniz gereken tek şey: Bir Arduino Board.10 LED-lightsHepsini bağlamak için teller. Ekstra:Bir Piezo elemanı (ses eklemek için).

Adım 1: LED ışıklarının ayarlanması

LED ışıkların ayarlanması
LED ışıkların ayarlanması

Bu Mors oyunu, kelimedeki tahmin edilmesi gereken 4 harfi belirtmek için 4 ışıktan ve oyuncunun tahmin etmek için bıraktığı hayatları belirtmek için 5 ışıktan yararlanacak, bu yüzden her şeyden önce 9 LED bağlamanız gerekecek. -resimde görüldüğü gibi her zamanki gibi yanar.

2. Adım: Bir Geçici Işık Sensörü ekleyin

Elektronik mağazalarına para saçarak dolaşamayız, bu yüzden geçici bir ışık sensörü olarak basit bir LED ışığı kullanarak bu projeyi ucuz tutmaya karar verdim.

Tek yapmanız gereken LED ışığının artı tarafını analog portlarınızdan birine (benim durumumda A0) ve eksi tarafını da toprağa bağlamak.

3. Adım: Sözlüğünüzü Ekleyin

Sözlüğünüzü Ekleyin
Sözlüğünüzü Ekleyin

İlk önce, harfleri karşılık gelen Mors kodlarına çevirmek için bir tür sözlük ekleyerek başlayalım. Bunu yapmak için, her ikincil dizinin ilk yuvasında harf ve sonraki 4 yuvada karşılık gelen Mors kodu veya kod kalmamışsa boşluk olacak şekilde 26'ya 5'lik bir dizi yaparız. Örneğin, s harfiyle, ilk yuvada 's', ikinci, üçüncü ve dördüncü yuvalarda '.' vardır. ve son yuvada ' ' vardır.

Adım 4: Işıkların Varsayılan Olarak Yanmasını Sağlayın

Işıkların Varsayılan Olarak Yanmasını Sağlayın
Işıkların Varsayılan Olarak Yanmasını Sağlayın
Işıkların Varsayılan Olarak Yanmasını Sağlayın
Işıkların Varsayılan Olarak Yanmasını Sağlayın

Bu adımda, program başladığında ışıkların yandığından ve kullanıcı doğru tahmin ettiğinde temsil ettiği harfi Morse'den emin oluruz (bunun için kod 6. adımda yazılacaktır). Ayrıca, oyuncunun kalan can sayısı kadar ışığın yandığından emin oluruz.

Bundan önce, ışığın açılıp kapanması gereken zamanı ve LED ışığının Mors'un hangi bölümünü gösterdiğini göstermek için bağlantı noktası numaraları ve tamsayıları 0'a ayarlanmış bir diziye sahip olduğunuzdan emin olun.

Adım 5: Girişi Ekleme

Giriş Ekleme
Giriş Ekleme

Şimdi, oynatıcının analog bağlantı noktamız A0'a bağlı LED ışığına ışık tutup tutmadığını ve doğru harfe çevireceklerini kontrol etmek için kodu yazacağız.

Okumanın doğru olduğundan emin olmak için, LED ışığı ile her 20 okumanın ortalamasını alırız ve bu sayıyı ışığın kapalı mı yoksa açık mı olduğunu izlemek için kullanırız. Bunu yapmak için, programın başlangıcında, ortalamasını almadan önce ışığı kontrol etmesini istediğimiz sayıya NUM_AVG'yi ayarladık. Bu sayı ne kadar yüksek olursa, okuma o kadar doğru olur, ancak gecikmelere de neden olabilir.

msBtnPushed, ışığın açık olduğu süreyi temsil eder.lastPressed, ışığın önceki döngüde açık olup olmadığını takip eden bir boole değeridir.

Adım 6: Girdiyi Kullanma

Girişi İşleme
Girişi İşleme
Girişi İşleme
Girişi İşleme

Bu adım için, artık Mors eklenmeyeceğini varsaymak için yeterli zaman geçtikten sonra ne yapacağımıza bir göz atacağız ve gönderilen Mors'un bir mektup oluşturup oluşturmadığını ve doğru bir mektup olup olmadığını kontrol etmemiz gerekiyor.

Bunu yapmak için, oyuncularımızın tahmin etmesini istediğimiz kelimeye wordToGuess dizesini ayarlamalıyız. Şahsen, başlangıçta rastgele bir kelimeye ayarlamak için rastgele bir sayı üretecim var, ancak onu tek bir kelimeye de ayarlayabilirsiniz.

Ayrıca sayacın her döngüde bir arttığından emin olmamız gerekir, aksi takdirde tüm program hiçbir şey yapmazdı. Ayrıca, her milisaniyede bir döngü olduğundan emin olmak için gecikme işlevini ekledim.

Not: Tüm Serial.println işlevleri yalnızca test amaçlıdır. Tamamlandığında silinebilirler.

goodTimer ve badTimer, ses eklemek için bir Piezo öğesi kullanmayı planlıyorsanız, yalnızca değerlerdir. Bunu yapmak isterseniz, ikinci resimdeki sesleri çalan kodu da eklemelisiniz.

Adım 7: Doğru Tahmin Edilen Harfleri Morslamak

Doğru Tahmin Edilen Harfleri Morsing
Doğru Tahmin Edilen Harfleri Morsing

Daha önce söz verdiğimiz gibi, bu adımda doğru tahmin edilen harfleri temsil eden ışıkları Mors harfini yapacağız.

Bunun için iki fonksiyon yazdım: morseThis ve nextLetter. Zamanlayıcı dizimizde daha önce belirlediğimiz sayıları kullanır ve Mors kodunun o anda parladığı bölüme göre değiştirir.

Zamanlayıcı ışığın yanması gereken zamana ulaşırsa, sadece ışığı açar ve ışığı kapatıp tekrar açmak için yeni zamanlayıcılar ayarlamak için kodu çalıştırır. Zamanlayıcı ışığın geri gitmesi gereken kısma ulaşırsa kapatır, ışığı kapatır ve ardından mektubun sonraki bölümünü temsil edecek kodu ayarlar. Sonraki bölüm yoksa, ilk bölüme sıfırlar.

Adım 8: Kurulumumuzu İnceleme ve Sıfırlama

Kurulumumuzu Gözden Geçirme ve Sıfırlama
Kurulumumuzu Gözden Geçirme ve Sıfırlama

Işıklar çıkış ve giriş olarak ayarlanmazsa elbette program çalışmayacaktır. Ayrıca wordToGuess adlı bir diziye koyduğum kelimeler listesinden bir kelime eklemek için rastgele bir sayı üreteci ekliyorum.

Bunun yanı sıra, sıfırlama işlevini eklemeli ve tüm değerlerin varsayılana sıfırlandığından emin olmalıyız.

Adım 9: Tüm Değişkenler Tek Resimde

Tüm Değişkenler Tek Resimde
Tüm Değişkenler Tek Resimde

Son olarak, gerekli tüm değişkenlerin doğru şekilde ayarlanıp ayarlanmadığını kontrol etmek için bunu kullanabilirsiniz.

Şimdi Mors'ta Adam Asmaca oynamanın tadını çıkarın!

Önerilen: