İçindekiler:

Arduino Sorta Sudoku Oyunu: 3 Adım (Resimlerle)
Arduino Sorta Sudoku Oyunu: 3 Adım (Resimlerle)

Video: Arduino Sorta Sudoku Oyunu: 3 Adım (Resimlerle)

Video: Arduino Sorta Sudoku Oyunu: 3 Adım (Resimlerle)
Video: Aurora C#, surveying our system and first ship designs 2024, Kasım
Anonim
Arduino Sorta Sudoku Oyunu
Arduino Sorta Sudoku Oyunu

Birçok insan Sudoku oynamayı sever ve torunlar tahmin oyunlarını sever, ben de taşınabilir bir “Sorta Sudoku” oyunu yapmaya karar verdim. Benim versiyonumda oyun bir 4x4 ızgaradır ancak yalnızca bir numara verilmiştir. Buradaki fikir, sayıların geri kalanını en az denemede tahmin etmektir. Bu basit bir oyun ama tam 15 puanın peşinden koşarken biraz bağımlılık yapabilir. Oyun hem şans hem de mantık gerektiriyor ve şu ana kadar gördüğüm en iyi puan 16. Bir göz atın çünkü hatta oyunu oluşturmakla ilgilenmiyorsanız, kendi projelerinizden birinde kullanabileceğiniz yazılımın bazı öğeleri olabilir.

Adım 1: Donanım

Donanım
Donanım
Donanım
Donanım
Donanım
Donanım

Donanım, hemen hemen her Arduino sürümünü temel alabilir. Prototiplemeyi bir Nano kullanarak yaptım ve ardından kodu bir ATMega328 çipine yazdım. Bu, Nano'da kullanılan çipin aynısıdır, ancak bunu tek başına kullanmak daha kompakt bir yapı ve daha az güç tüketimi sağlar. Gördüğünüz gibi devreyi LCD modülüne binen küçük bir devre tahtası üzerine kurdum. Farklı olan diğer bir özellik ise Nano'nun harici bir kristal kullanarak 16 MHz'de çalışması ama ben ATMega328 yongası için yerleşik 8 MHz osilatörü kullanmayı seçtim. Bu, parça ve güç tasarrufu sağlar.

2004 LCD, Arduino'ya 1602 LCD ile aynı şekilde arayüz oluşturur. İlginç bir fark, görüntüleme konumlarının adreslenmesindedir. Açıkçası bir fark var çünkü iki yerine dört satır var ama 2004'te üçüncü satır birinci satırın uzantısı ve dördüncü satır ikinci satırın uzantısı. Başka bir deyişle, LCD'ye bir dizi karakter gönderen bir test programınız varsa, 21. karakter üçüncü satırın başında görünür ve 41. karakter ilk satırın başına geri döner. Yazılım, bu farkı bir LCD adres arama tablosuyla ele alır.

Oyunun girişi, ev yapımı bir 4x4 anahtar matrisidir. Her anahtar, doğrudan ekrandaki eşdeğer konuma karşılık gelir. Ayrıca bir güç anahtarı ve bir sıfırlama anahtarı vardır. Sıfırlama anahtarı eski oyunu siler ve yeni bir oyun oluşturur.

Sürümümü pille çalıştırmaya karar verdim, bu yüzden ortak bir 18650 Li-ion, 3,6 volt pil kullandım. Bu, USB şarjına izin vermek için küçük bir pano ve LCD ve ATMega yongası için pil voltajını 5 volta yükseltmek için başka bir küçük pano eklememi gerektirdi. Resimler kullandığım modülleri gösteriyor ancak her iki işlevi de yapan hepsi bir arada modüller de var.

2. Adım: Yazılım

Yazılım, hem Nano hem de ATMega328 yongası için aynıdır. Tek fark programlama yöntemindedir. LCD yazılımının kendi barebone sürümünü ve klavye matris kod çözme yazılımımı kullanıyorum. Bunlar proje için ayrı “include” dosyalarıdır.

Oyunun oluşturulmasına yardımcı olmak için “random” ve “randomSeed” komutları kullanılır. Her açılışta farklı bir sıranın üretilmesini sağlamak için “tohum” un EEPROM'una bir kaydetme ekledim. Bulmacanın satırları, 24 elemanlı bir arama dizisinden türetilmiştir. İlk üç satır, seçilen satırın önceki satırla çakışmadığından emin olmak için kontrollerle tablodan rastgele seçilir. Son satır, o noktada yalnızca bir olası desen olacağından manuel olarak doldurulur. Bundan sonrası sadece klavye matrisini taramak ve tuş basımlarını sayılara dönüştürmek meselesidir.

Bir sayıyı tahmin etmek için ilgili anahtara art arda basın. Her basışta görüntülenen sayı artar. İstediğiniz sayıyı aşarsanız, basmaya devam edin. Düğmeyi bir saniyeliğine bırakırsanız, görüntülenen son numarada kilitlenir. Numara yanlışsa numara silinir ve tekrar deneyebilirsiniz. Her tahmin, görüntülenen sayacı artırır ve bir sayı doğru tahmin edildiğinde, bu matris anahtarı etkin bir şekilde devre dışı bırakılır.

3. Adım: Ekranlar

görüntüler
görüntüler
görüntüler
görüntüler
görüntüler
görüntüler

İşte çeşitli ekranların bazı resimleri.

Önerilen: