İçindekiler:

Nokta Atlama Oyunu (Arduino Kullanmadan): 6 Adım
Nokta Atlama Oyunu (Arduino Kullanmadan): 6 Adım

Video: Nokta Atlama Oyunu (Arduino Kullanmadan): 6 Adım

Video: Nokta Atlama Oyunu (Arduino Kullanmadan): 6 Adım
Video: SINIFLARA GÖRE AKILLI BİLEKLİKLER 2024, Aralık
Anonim
Nokta Atlama Oyunu (Arduino Kullanmadan)
Nokta Atlama Oyunu (Arduino Kullanmadan)

genel bakış

Merhaba! Ben Shivansh, IIIT-Hyderabad'da bir öğrenciyim. Google Chrome'un Dinosaur Jump oyunundan esinlenilmiş bir oyun olan ilk talimatımla karşınızdayım. Oyun basittir: Puan kazanmak için gelen engellerin üzerinden atlayın. Eğer çarpışırsanız, kaybedersiniz ve puan sıfırlanır.

Bu projenin öne çıkan özelliği, herhangi bir Arduino veya başka bir mikrodenetleyici kullanımının olmamasıdır. Tamamen temel elektrik bileşenlerinden türetilmiştir ve mantık diyagramları vb. yardımıyla Sonlu Durum Makinelerinin (FSM'ler) uygulanmasını içerir.

Ilgilenen? Başlayalım.

Önkoşullar:

  • Dirençler, Kapasitörler, Entegre Devreler (IC'ler) gibi elektrik bileşenleri hakkında temel bilgiler.
  • Temel Mantık Kapıları bilgisi (VE, VEYA, DEĞİL, vb.)
  • Flip-Flop, Counter, Multiplexer vs.'nin çalışması hakkında bilgi

NOT: Yukarıda listelenen ön koşullar, projenin tüm işleyişini anlamak içindir. Aynı konuda derinlemesine bilgi sahibi olmayan biri, talimattaki adımları izleyerek projeyi de oluşturabilir.

Adım 1: Çalışma Modelini Geliştirme

Çalışma Modelini Geliştirme
Çalışma Modelini Geliştirme
Çalışma Modelini Geliştirme
Çalışma Modelini Geliştirme

İlk görev, proje için çalışan bir model oluşturmaktır. Ancak o zaman proje için gerekli malzemelere karar verebiliriz. Tüm proje üç bölüme ayrılabilir.

Bölüm-1: Engel oluşturma

İlk olarak, Nokta'nın üzerinden atlaması için rastgele engeller oluşturmamız gerekiyor. Engeller ayrıca LED Dizinin bir ucundan diğerine hareket eden bir nokta darbesi şeklinde olacaktır.

Engel oluşturmak için, biri Yüksek Frekanslı (HF Zamanlayıcı) ve diğeri Düşük Frekanslı (LF Zamanlayıcı) olmak üzere iki Zamanlayıcı Devresini (ekli devre şemaları) kullanırız. 'Rastgelelik' kısmı, çıkışı LF zamanlayıcının (CLK girişi olarak alınan) her yükselen kenarında görülen HF Zamanlayıcı tarafından işlenir. Engel Oluşturma Talimatı, LF Zamanlayıcısının her yükselen kenarındaki HF Zamanlayıcısının durumudur (1 -> Engel Oluştur | 0 -> Engel Oluşturma). HF Zamanlayıcı, rastgele engel oluşumunu sağlamak için her 'JUMP'ta SIFIRLANIR. HF Zamanlayıcının çıkışı, LF Zamanlayıcı Çıkışı olarak CLK girişi ile bir D Flip Flop'a (bir sonraki döngü için talimat depolamak için) D girişi olarak verilir.

Engel oluşturma için ikili talimat çıktıktan sonra, LED Dizisinde 'engel darbesi' oluşturmamız gerekir. Bunu, çıkışı 4x16 demultiplexer'a (DeMUX) verilen 4 bitlik bir Sayaç yardımıyla yapıyoruz. DeMUX'un çıktısı, ilgili 16 LED'in yanmasını sağlayacaktı.

Bölüm-2: JUMP

JUMP Eylemi için, talimat olarak Basmalı Düğme Girişini alacağız. Talimat verildiğinde, sıralı nesne LED'i parlamayı durdurur ve üzerindeki başka bir LED yanarak bir sıçramayı belirtir.

Bölüm-3: Sonuç

Sonuç şöyle olacaktır: Eğer nesne çökerse, oyunu RESET; Aksi takdirde, puanı artırın.

Çarpışma, hem mania sinyalinin hem de manianın yer konumu için nesne sinyalinin ANDing'i olarak ifade edilebilir. Bir çarpışma gerçekleşmezse, bir çift 7 segmentli ekranda görüntülenen Nokta Sayacı artırılır.

Adım 2: Bileşenleri Toplama

Gerekli bileşenler aşağıdaki gibidir:

  • PCB x 1, Breadboard x 3
  • LED'ler: Yeşil(31), Kırmızı(1), BiColor:Kırmızı+Yeşil (1)
  • Düğme x 2
  • 7 segmentli Ekran x 2
  • IC 555 x 3 [Zamanlayıcı Devreleri için]
  • IC 7474 x 1 (D FlipFlop)
  • IC 7490 x 2 (On Yıl Sayacı) [puanı görüntülemek için]
  • IC 7447 x 2 (BCD'den 7-segment kod çözücüye) [puanı görüntülemek için]
  • IC 4029 x 1 (4-bit Sayaç) [engel gösterimi için]
  • IC 74154 x 1 (DeMUX) [engel gösterimi için]
  • IC 7400 x 3 (Kapı DEĞİL)
  • IC 7404 x 1 (NAND kapısı)
  • IC 7408 x 1 (VE kapısı)
  • IC soketleri
  • Voltaj Kaynağı (5V)

Gerekli aletler:

  • Havya
  • Tel makası

3. Adım: Engel Oluşturma: Kısım-A

Engel Oluşturma: Kısım-A
Engel Oluşturma: Kısım-A
Engel Oluşturma: Kısım-A
Engel Oluşturma: Kısım-A

Öncelikle Engel Oluşturma Sinyali (YÜKSEK/DÜŞÜK) üretmek için zamanlayıcı devrelerini kurmamız gerekiyor.

Devre, daha önce tartışılan teoriye göre kurulacaktır. Aynısı için devre şeması yukarıda eklenmiştir. Devre bir devre tahtası üzerinde (ancak bir PCB üzerinde de uygulanabilir) aşağıdaki gibi uygulanır:

  • İki 555 IC'yi ve D Flip Flop'u (IC 7474), aralarında biraz boş alan (4-5 sütun) olacak şekilde devre tahtasının ayırıcısı boyunca yerleştirin.
  • Breadboard'un üst sırasını Voltaj Kaynağının pozitif terminaline ve alt sırayı negatif terminale bağlayın.
  • Devre şemasını izleyerek başka bağlantılar yapın. Gerekli bağlantılardan sonra devre yukarıdaki resimdeki gibi görünecektir.

NOT: R1 & R2 dirençlerinin ve C kapasitansının değerleri aşağıdaki denklemler kullanılarak hesaplanır:

T = 0,694 x (R1 + 2*R2) * C

nerede T gereklidir Zaman Periyodu.

D = 0,694 x [(R1 + R2)/T] *100

burada D, Görev Döngüsü, yani AÇIK Süresinin Toplam Süreye oranıdır.

Bu projede Yüksek Frekans Zamanlayıcı için T = 0,5 sn ve Düşük Frekans Zamanlayıcı için T = 2 sn.

Adım 4: Engel Oluşturma: Kısım-B

Engel Oluşturma: Kısım-B
Engel Oluşturma: Kısım-B
Engel Oluşturma: Kısım-B
Engel Oluşturma: Kısım-B
Engel Oluşturma: Kısım-B
Engel Oluşturma: Kısım-B

Artık engeli ne zaman oluşturacağımızı bildiğimize göre, şimdi onu göstermemiz gerekiyor. 4 bitlik bir sayaç, bir Demultiplexer, bir zamanlayıcı ve bir dizi 16 LED kullanacağız. Neden 16? Bunun nedeni, demultiplexer kullanarak sayacın 4 bitlik çıkışını 16 LED'e eşleyeceğiz. Bu, sayacın 0'dan 15'e kadar sayacağı ve demultiplexer'ın bu indeks ile LED'i açacağı anlamına gelir.

Zamanlayıcının rolü, sayma hızını, yani engel hareket hızını düzenlemektir. Engel, zamanlayıcının Bir Zaman Periyodunda bir pozisyon değiştirecektir. Farklı hızlar elde etmek için önceki adımdaki denklemleri kullanarak farklı R1, R2 ve C değerleriyle oynayabilirsiniz.

LED matrisi için, ortak bir zemin ile doğrusal bir şekilde 16 LED lehimleyin. Her LED'in pozitif terminali DeMUX'a bağlanacaktır (DeMUX DÜŞÜK bir çıkış verdiğinden, NOT geçidi kullanılarak ters çevrildikten sonra).

Aynısı için devre şeması yukarıda eklenmiştir.

Adım 5: JUMP ve SONUÇ

JUMP ve SONUÇ
JUMP ve SONUÇ
JUMP ve SONUÇ
JUMP ve SONUÇ
JUMP ve SONUÇ
JUMP ve SONUÇ

Sonraki şey atlama eylemidir. Bir sıçramayı görüntülemek için, matrisin üzerine farklı renkte bir LED yerleştirin, topraklayın ve +ve terminalini bir düğmeye bağlayın. Basmalı düğmenin diğer ucunu voltaj kaynağına takın.

Ayrıca, bir öncekinin yanına yerleştirilmiş başka bir basmalı düğmeyi alın ve terminallerinden birini +5V'a bağlayın. Diğer terminal, JUMP LED'inin (yani nesne LED'inin) hemen altındaki LED'e giriş olarak NAND Gate'in diğer girişi ile bir NAND Gate'e (IC 7404) gider. NAND Kapısının çıktısı, puan sayacının RESET'ine (her iki BCD Sayacının PIN 2 ve 3'ü) gider. Bununla yaptığımız şey, hem NESNE LED'i (taban konumunda) sinyali hem de ENGEL sinyali aynı anda verilirse, yani nesne ve engel çarpıştığında puanı sıfırlıyoruz.

Her iki basma düğmesinin birlikte basıldığından emin olmak için biraz düzenleme yapın. Bir madeni para kullanabilir ve her iki düğmeyi de ona yapıştırabilirsiniz.

Skor sayacını ayarlamak için yukarıda ekli devre şemasını takip edin (Resim kaynağı: www.iamtechnical.com).

NOT: Engelle çarpışma durumunda puanı sıfırlaması için pim 2 ve 3'ü NAND Kapısının çıkışına bağlayın

Adım 6: Mutlu Oynama

Mutlu Oynama!
Mutlu Oynama!
Mutlu Oynama!
Mutlu Oynama!
Mutlu Oynama!
Mutlu Oynama!

Bu kadar. Projeniz bitti. İyi görünmesi için biraz bitirme ekleyebilirsiniz. Dinlenme iyidir.

EĞLENCE..!!

Önerilen: