İçindekiler:
- 1. Adım: Genel Bakış
- Adım 2: Malzemeler
- Adım 3: Oyunu Yapmak
- Adım 4: Gelecekteki Değişiklikler
- Adım 5: Sonuç
Video: Mayın Tarlası: 5 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:21
CPE 133 final projemiz için Chase ve ben, bir Basys-3 kartından gelen düğme ve anahtar girişinin yanı sıra VHDL kodunu kullanan bir 'Mayın Tarlası' oyunu oluşturmaya karar verdik. Oyun için daha iyi bir isim 'Rus Ruleti' olabilir, ancak daha aile dostu bir isim ile gitmek istedik. Oyun, kullanıcının bir bomba ile 'aktif' olmak üzere 16 anahtardan birini rastgele atamak için Basys panosundaki orta düğmeye basmasını içerir. Daha sonra, iki oyuncu sırayla, oyunculardan biri 'bomba' ile düğmeyi çevirene kadar anahtarları birer birer çevirir. Bu olduğunda, yedi bölümlü ekran, oyuncuları o oyuncunun oyunu kaybettiği konusunda uyarır.
1. Adım: Genel Bakış
Proje, bu çeyrek boyunca kullandığımız birçok VHDL modülünü kullandı. Anahtarlardan birini etkinleştirmek için rastgele dört bitlik bir sayıyı simüle etmek için saat kenarı ile birlikte dört bitlik bir sayaç kullanıldı. Yedi segmentli ekrana, oyuncular oyunun ortasındayken 'OYNA' ile oyunculardan biri aktif anahtarı çevirdiğinde 'KAYBET' arasında değişen farklı kelimelerin çıktısını almak için bir durum diyagramı da kullanıldı.
Adım 2: Malzemeler
- Digilent, Inc.'den Basys3 Geliştirme Kurulu
- Vivado Design Suite BC_DEC.vhd (Bu dosya bize Polylearn üzerinden sağlandı ve Bryan Mealy tarafından yazıldı)
- T flip floplardan yapılmış 4 bitlik bir sayaç
- bir FSM
Adım 3: Oyunu Yapmak
Bu oyunu yapmanın ilk adımı, kullanacağımız tüm bileşenleri içeren bir devre şeması çizmekti. Bu sistem için girişler düğme 1, 16 anahtar ve Saat idi. Çıktılar yedi segmentli ekran ve anotlardı. Devre şemasını çizdikten sonra Vivado'da her bileşen için ayrı kaynak dosyaları yazdık ve ana kaynak dosyanın altında port haritalarını kullanarak bir araya getirdik.
Oyunun tüm temeli, 16 anahtardan birini bir bomba ile aktif olacak şekilde rastgele atamak ve oyuncuların bu aktif anahtar çevrilene kadar hangi anahtarın aktif olduğunu bilmemesi etrafında döner. Çevrimiçi olarak rastgele ve sahte rasgele sayı üreteçlerine baktık, ancak sonunda 4 bitlik bir sayaç kullanmanın ve karşılık gelen anahtarı aktif olarak atamanın aradığımız şey için yeterince rastgele olduğuna karar verdik. Bu görev için çalışabilmek için önceki bir projede oluşturduğumuz 4-Bit sayacımızı yeniden kullanabildik. 0-15 arasında rastgele bir sayı oluşturmak için sayacı kullandık; daha sonra ana1 bileşeninde, tahtadaki karşılık gelen anahtarına rastgele sayının ondalık eşdeğerini atadık. Şematikte görüldüğü gibi, hem ana1 bileşeninden X çıkışı ('aktif bomba') hem de oyuncuların açtığı anahtarlar FSM1'e gidiyor. Durum makinesi, daha sonra BC_DEC1 tarafından okunan bir bitlik Z değeri verir. Kullandığımız Sonlu Durum Makinesinin iki farklı durumu vardır: A durumunda, yedi segmentli ekran 'OYNAT' verir ve makine, etkinleştirilmiş anahtarın çevrildiğini tanıyana kadar bu durumda kalır. Bu gerçekleştiğinde, FSM, yedi segmentli ekrana 'LOSE' çıkışı verdiği B durumuna gider ve 16 anahtarın tümü '0'a çevrilene kadar bu durumda kalır. Bu koşul karşılandığında, FSM bir kez daha A durumuna geçer ve oyuncuların başka bir oyuna başlamasını bekler. Bu FSM'yi anlamaya yardımcı olacak bir Moore diyagramı yukarıda gösterilmiştir.
Adım 4: Gelecekteki Değişiklikler
Oyunumuza yapmayı düşündüğümüz birkaç değişiklik, alana daha fazla bomba eklemek (muhtemelen birden üçe çıkarak), bir puan sayacı ve birden fazla tur eklemek. Daha uzun, uzatılmış bir oyun oynamanın, genellikle üç veya dört geçişten sonra sona eren bir oyundan genellikle daha gergin ve nihayetinde daha eğlenceli olduğunu bulduğumuz için, nihayetinde bu iyileştirmelere karşı karar verdik.
Adım 5: Sonuç
Bu projenin nihai sonucundan çok memnun kaldık; sadece oyunun son versiyonunu oynamak eğlenceli olduğu için değil, aynı zamanda projeyi oluşturmak ve programlamak, bu çeyrekte öğrendiklerimizin hepsini olmasa da çoğunu kullanmamızı gerektirdiği için. Flip Flop'ları, sayaçları, FSM'leri, saati, panodan kullanıcı girdisini ve yedi segmentli ekrana çıktıyı kullandık.
Ayrıca, birkaç sözdizimi hatasının programı nasıl tamamen bozabileceğini (Python veya Java gibi diğer programlama dillerinde iyi olarak kabul edilseler bile) ve yalnızca birden çok simülasyondan ve koda yüklenen ve üzerinde test edilen kodun birden çok yinelemesinden sonra öğrendik. tahta, sonunda tüm hataları kodunuzdan çıkarabilecek misiniz?
Önerilen:
Nasıl Yapılır: Raspberry PI 4 Headless (VNC) Kurulumu Rpi-imager ve Resimlerle: 7 Adım (Resimlerle)
Nasıl Yapılır: Raspberry PI 4 Headless (VNC) Kurulumu Rpi-imager ve Resimlerle: Bu Rapsberry PI'yi blogumda bir sürü eğlenceli projede kullanmayı planlıyorum. Kontrol etmekten çekinmeyin. Raspberry PI'mi kullanmaya geri dönmek istedim ama yeni konumumda Klavye veya Farem yoktu. Ahududu kurduğumdan beri bir süre geçti
Mayın Tarlası-Raspberry-Pi-Edition: 7 Adım (Resimli)
Mayın Tarlası-Ahududu-Pi Sürümü: Louisiana Tech Üniversitesi'ndeki CSC 130 serisi için son projem Mayın Tarlası Raspberry Pi Sürümü. Bu projede Python programlamanın Tkinter kütüphanesini kullanarak klasik mayın tarama gemisi oyununu yeniden yaratmaya çalıştım
Adım Adım Arduino Uno ile Akustik Kaldırma (8 adım): 8 Adım
Arduino Uno ile Akustik Kaldırma Adım Adım (8 adım): ultrasonik ses dönüştürücüler L298N erkek dc pinli Dc dişi adaptör güç kaynağı Arduino UNOBreadboardBu nasıl çalışır: İlk olarak, Arduino Uno'ya kod yüklersiniz (dijital ile donatılmış bir mikrodenetleyicidir) ve kodu dönüştürmek için analog bağlantı noktaları (C++)
Kolay Adımlar ve Resimlerle Bilgisayar Nasıl Sökülür: 13 Adım (Resimlerle)
Kolay Adımlar ve Resimlerle Bir Bilgisayar Nasıl Sökülür: Bu, bir PC'nin nasıl söküleceği hakkında bir talimattır. Temel bileşenlerin çoğu modülerdir ve kolayca çıkarılabilir. Ancak bu konuda organize olmanız önemlidir. Bu, parçaları kaybetmenize ve aynı zamanda yeniden birleştirmeyi kolaylaştırmaya yardımcı olacaktır
Adım Adım Ciclop 3d Tarayıcı My Way: 16 Adım (Resimlerle)
Adım Adım Ciclop 3d Tarayıcı Adım Adım: Merhabalar, ünlü Ciclop 3D tarayıcıyı gerçekleştireceğim. Orijinal projede iyi açıklanan tüm adımlar mevcut değil. Öncelikle işlemi basitleştirmek için bazı düzeltmeler yaptım. Tabanı yazdırıyorum ve PCB'yi yeniden sterilize ediyorum, ama devam et