İçindekiler:

Zeka Oyunu: 8 Adım
Zeka Oyunu: 8 Adım

Video: Zeka Oyunu: 8 Adım

Video: Zeka Oyunu: 8 Adım
Video: Dünyanın en zor zeka oyunu daha çözebilen yok 😳😳 2024, Ekim
Anonim
Image
Image

Merhaba, bu derste Arduino Uno ve Oled ekran ile matematik alıştırması için kullanılan küçük bir oyunun nasıl oluşturulacağını göstereceğim.

Her şey oğluma okul ödevlerinde yardım ederken başladı.

Analog saati ve temel aritmetiği uygulamak için bir cihaz kullanma fikrini buldum.

Diğer talimatımı "OLEDDICE" okuduysanız, muhtemelen kutuyu ve o projedeki diğer şeyleri tanımışsınızdır.

Zar projesinin tasarımını yaparken birkaç özel yapım PCB satın aldım ve bunları belirli bir kutu için tasarladım, bu yüzden birçok taşınabilir proje için tekrar kullanacağım.

Yukarıdaki video nedeniyle, son özel beyin oyununu ve nasıl kullanılacağını gösteren video, ancak bu talimatta onu bir breadboard üzerinde nasıl kuracağımı anlatacağım.

İki versiyonu mevcuttur.

1. Standart versiyon

2. Otomatik Güç Kapatma Sürümü

AutoPowerOff sürümü, pil tasarrufu yapmak için gücü otomatik olarak kapatmak için eklenen birkaç ekstra bileşene sahiptir.

Benim gibi taşınabilir olması için bir tane yaparsanız, bu mükemmel bir seçimdir.

Adım 1: Fonksiyonlar

Fonksiyonlar
Fonksiyonlar
Fonksiyonlar
Fonksiyonlar

Aşağıda açıklanan işlevler, AutoPowerOff özelliği dışında her iki sürüm için de aynıdır.

Oyun, kontrol için üç standart anlık PCB anahtarına sahiptir., Tamam ve Geri öğesini seçin

Bu nasıl oynanır.

Oyunu ilk açtığınızda, oyun menüsünden oyun seçmeniz istenecektir.

2 sayfa arasından seçim yapabilirsiniz.

İlk sayfa:

  • ek
  • çıkarma
  • çarpma işlemi
  • Bölüm

İkinci sayfa:

  • ikili dönüştürme
  • altıgen dönüştürme
  • Analog saat okumaları
  • Temel matematik boyunca çalışan rastgele mod.

Hangi oyunu oynamak istediğinize karar verdiğinizde OK tuşuna basın ve seçim yapmak için bir sonraki menüye geçeceksiniz.

1-4 arası seviye

Geri düğmesine basmak sizi bir önceki menüye geri götürür.

2. Adım: Oynatmayı Başlatın

Oynatmayı Başlat
Oynatmayı Başlat
Oynatmayı Başlat
Oynatmayı Başlat
Oynatmayı Başlat
Oynatmayı Başlat

Oynatmayı başlatmak için tamam'a basın.

Oyun 1-4

İlk menüden oyunu seçtiyseniz, ekranın altında bir soru ve büyüyen bir zaman çubuğu olacak. Zaman bittiğinde oyun doğru cevabı gösterecektir.

Tamam'a tekrar basmak size yeni bir görev verecektir.

Oyun 5-8

İkinci sayfadan dönüştürmeyi seçerseniz, davranış benzerdir, ancak burada rastgele ondalık, ikili veya onaltılı arasında dönüştürme yapmanız gerekir.

Bu oyunu oynarken, zaman çubuğunuz olmayacak, cevabı göstermeye hazır olduğunuzda sadece Tamam'a basın.

Son oyun analog saat okumalarıdır, tamam'a basıldığında saat durmadan önce rastgele bir sayıda dönmeye ve yavaşlamaya başlar ve ardından saatin kaç olduğunu yanıtlamanız istenir.

Bunu kolaylaştırmak için saat her zaman 5 dakikalık aralıklarla duracaktır.

Tüm oyunlar için, ses etkinleştirilirse oynarken bir ses sinyali alırsınız.

Sesi etkinleştirmek veya devre dışı bırakmak için geri düğmesini 1 saniyeden fazla basılı tutun. Ses kapalıysa, sağ üst köşede küçük bir sessiz sembolü vardır.

Adım 3: Otomatik Güç Kapatma İşlevleri

AutoPowerOff sürümünü oluşturursanız, birkaç ek işlev vardır.

Tamam butonuna bir saniye basılı tutarak cihazı açıyorsunuz. Herhangi bir oyun oynamıyorsanız, otomatik kapanma uyarısı almadan önce oyun yaklaşık 60 saniye çalışıyor.

Herhangi bir tuşa basmazsanız güç kesiliyor, bu da oyunu kapatmayı asla unutmamanızı sağlıyor.

Herhangi bir düğmeye basmak zamanlayıcıyı sıfırlayacaktır.

Geri düğmesini üç saniyeden fazla basılı tutup bırakın, oyunu kapanmaya zorlar.

Çizim, verileri depolamak için Arduino IDE ile birlikte gelen EEPROM kitaplığını kullanır.

Güç kesilmeden hemen önce mikro denetleyici en son durumu kaydeder ve bir sonraki yeniden başlatmada, Oyun, Seviye ve Ses durumunu hatırlayacaktır.

Adım 4: Oluşturmaya Başlayalım

İnşaya Başlayalım
İnşaya Başlayalım

İhtiyacın olan şey bu.

Her iki sürüm:

1 Arduino Uno

1 0.96 i2c Oled ekran Oled ekran

3 anlık basma düğmesi PCB Anahtarı

3 Direnç 10K

1 Piezo öğesi

1 adet lehimsiz Ekmek Tahtası

bazı atlama telleri.

Otomatik Güç Kapatma Sürümü:

AutoPowerOff sürümü için de ihtiyacınız var.

1 Pfet Transistör IRF9640 veya benzeri

1 NPN Transitor BC547 veya benzeri

2 Diyot 1N4148

1 Voltaj regülatörü 7805

2 Direnç 100K

2 Kapasitör 10uF

1 Kapasitör 0, 1uF

1 9 Volt pil

Standart sürümü oluşturmak, oled ekranı, piezoyu, düğmeleri ve çekme dirençlerini bağlamakla ilgilidir. yukarıdaki fritzing resme bakın.

Ekrandaki SCL, Arduino üzerinde Analog5'e ve SDA, Analog4'e bağlıdır.

Adım 5: AutoPowerOff Sürümü

Otomatik Güç Kapatma Sürümü
Otomatik Güç Kapatma Sürümü
Otomatik Güç Kapatma Sürümü
Otomatik Güç Kapatma Sürümü

Autopoweroff sürümünü oluşturuyorsanız, listedeki ekstra bileşenleri devre tahtanıza eklemelisiniz.

Ok düğmesi için 10K çekme direncini güç kontrol devresine taşımanız ve Dijital çıkış 8'den ekstra kablo eklemeniz gerektiğini unutmayın.

Ayrıca Arduino'nuzu üst kısımdaki 5 Volt pin üzerinden çalıştırdığınızdan emin olun (yan taraftaki DC jakından değil).

Ayrıca kroki yüklendiğinde USB kablonuzu da çıkarmanız gerekir, aksi takdirde devre kapalı olsa bile Arduino'nun USB'den beslenmesine bağlı olarak otomatik kapanma işlevi çalışmayacaktır.

Otomatik kapanma devresi bu şekilde çalışır.

Tamam düğmesine basıldığında, PFet:s Kapısı üzerindeki voltaj düşüşü, aküden gelen gücün transistör üzerinden voltajı 5 Volt'a sabitleyen voltaj regülatörüne akmasına izin verir.

Arduino'ya güç verildiğinde, dijital pim 8, mantık YÜKSEK olarak ayarlanır ve Pim, dijital pim 8 YÜKSEK olduğu sürece devreyi kilitleyecek olan BC547 tabanına bağlanır.

Tamam düğmesi ayrıca D2 diyotu aracılığıyla Arduino'daki dijital girişi 7 kontrol ediyor.

Adım 6: Eskiz

Kroki
Kroki

Çizim, ekran için U8g2 kitaplığını kullanır, burada bulabilirsiniz.

Kodu derlemeden önce indirin ve kurun.

Kitaplığı kurmak için yardıma mı ihtiyacınız var?https://www.arduino.cc/en/guide/Libraries

ÖNEMLİ:

Her iki sürüm için de aynı çizimi kullanıyorsunuz, ancak standart sürümü oluşturuyorsanız çizimin başındaki "#define AUTOPOWER" öğesini hariç tutmanız gerekiyor.

7. Adım: Değişiklikler

Değişiklikler
Değişiklikler
Değişiklikler
Değişiklikler
Değişiklikler
Değişiklikler

Taslakta, kullanıcının oyuncu referanslarına daha iyi uyması için değiştirmek isteyebileceği birkaç parametre vardır.

  1. Çeşitli seviyeler için düşünme zamanı.
  2. Farklı oyun ve seviyeler için rastgele aralık.

Rastgele sayılar aralığı, her oyun ve her seviye için 2 boyutlu bir dizide saklanır.

Varsayılandan farklı bir I2c adresine sahip bir oled kullanıyorsanız, bunu ekranınıza uyacak şekilde kolayca değiştirebilirsiniz.

Adım 8: Bitir

Bitirdiniz.

Umarım projeyi ve oyunu beğenirsiniz.

İyi eğlenceler.

tomas

Önerilen: