İçindekiler:

Rekabetçi Buzzer Sistemi: 5 Adım
Rekabetçi Buzzer Sistemi: 5 Adım

Video: Rekabetçi Buzzer Sistemi: 5 Adım

Video: Rekabetçi Buzzer Sistemi: 5 Adım
Video: BUNU YAŞAMAYAN YOKTUR 😂 #emirbeşli #shorts 2024, Kasım
Anonim
Image
Image
Malzemeler
Malzemeler

Bu projede tasarlanan rekabetçi sesli uyarı sistemi, Bölgesel ve Ulusal Bilim Kase Müsabakalarında kullanılan sesli uyarı sistemlerine benzer şekilde çalışır. Bu proje, lisemin bilim kase takımına üç yıl boyunca dahil olmamdan ilham aldı. 5 saniyelik ve 20 saniyelik bir zamanlayıcı ile kilitleme sesli uyarı sistemini her zaman yeniden yaratma arzumuz vardı.

Buzzer sistemi hakkında biraz bilgi vermek için, bilim kase buzzerleri maksimum 8 oyuncu (8 ayrı zil ile) girecek şekilde programlanmıştır. Bir zile basıldığında, soruyu hangi oyuncunun aldığını belirtmek için birinci kişinin sesli uyarısı yanacaktır. Oyuncuların geri kalanı "kilitlenir", bu da, moderatör sesli uyarı sistemini sıfırlayana kadar sesli uyarılarının yanıt vermeyeceği anlamına gelir.

Moderatör soruları okuduktan sonra, yedi segmentli ekranda görüntülenecek olan geri sayım sayacını başlatmak için bir düğmeye basacaktır. Bir "toss-up" sorusundan sonra moderatör sağ tuşa basarak geri sayımı 5 saniyeden başlatabilir. Bu arada, bir "bonus" sorudan sonra, moderatör 20 saniyeden geri sayımı başlatmak için sol düğmeye basabilir. Zamanlayıcı sıfıra ulaştığında, sesli bir uyarı oynatıcının süresinin dolduğunu gösterecektir.

Sistemi ve geri sayım sayacını sıfırlamak için moderatör ortadaki düğmeye basabilir. Kilitleme mekanizmasını ve oynatıcı LED'lerini sıfırlamak için oyuncu 1 ve oyuncu 2 anahtarları düşük konumda olmalıdır.

Adım 1: Malzemeler

Aşağıdakilere ihtiyacınız olacak:

  • Basys3 kartı (veya eşdeğeri FPGA kartı)
  • Mikro-B USB kablosu
  • Hoparlör (Pasif hoparlör kullandım)
  • 2 tel
  • FPGA'da uygulanacak yazılım (Vivado kullandım)
  • Rekabetçi Buzzer Sistemi dosyası

2. Adım: Kara Kutu Şeması

Kara Kutu Şeması
Kara Kutu Şeması

Kara kutu şeması bu buzzer sisteminde kullanılacak giriş ve çıkışları göstermektedir.

GİRİŞLER:

player1, player2 Bu girişler, Basys3 kartındaki iki anahtara bağlanır. Kolaylık sağlamak için en soldaki ve en sağdaki anahtarlar kullanılacaktır.

sıfırlama Ortadaki düğme, sıfırlama düğmesini temsil etmek için kullanılacaktır.

count_down_20_sec Sol düğme, 20 saniyelik zamanlayıcı düğmesini temsil etmek için kullanılacaktır.

count_down_5_sec Sağdaki düğme, 20 saniyelik zamanlayıcı düğmesini temsil etmek için kullanılacaktır. Hem 20 saniyelik hem de 5 saniyelik zamanlayıcının başladığından emin olmak için, yedi segmentli ekran zamanlayıcıyı gösterene kadar düğmeyi basılı tutun.

CLK FPGA kartı, 10 ns frekansında çalışan bir saat üretecektir.

ÇIKTILAR:

hoparlör Hoparlör çıkışı harici bir zile veya hoparlöre bağlıdır. Hoparlörü Basys3 kartı JA pmod bağlantı noktalarına bağlamanız gerekecek. Bu adım aşağıda özetlenecektir.

Speaker_LED Bu çıkış, kartın ortasındaki bir LED'e bağlanır ve sadece FPGA'nın hoparlör çıkışının yüksek olduğunu gösterir. Bunu harici hoparlörünüzü test etmek için kullanabilirsiniz. Bazı pmod bağlantı noktalarının iyi çalışmayabileceğini unutmayın, bu nedenle farklı olanları deneyebilir ve hoparlörün açık olup olmadığını kontrol etmek için LED'i kullanabilirsiniz.

SEGMENTLER Bu çıkış, ondalık nokta dahil yedi segmentli ekrandaki sekiz ayrı segmente bağlanır.

DISP_EN Bu çıkış yedi segmentli ekrandaki dört anoda bağlanır.

player_LED Bu çıkış, player1 ve player2 anahtarlarının üzerindeki LED'lere bağlanan 2 demetli bir sinyaldir. İlgili anahtarı çeviren ilk oyuncu LED ile gösterilecektir. Her iki LED'in aynı anda açık olamayacağını unutmayın.

Adım 3: Harici Hoparlörü Bağlama

Harici Hoparlörü Bağlama
Harici Hoparlörü Bağlama

Harici hoparlörü Basys3 kartına bağlamak için iki kablonuzu alın ve yukarıdaki resimde gösterildiği gibi bağlayın. Beyaz çizgi, hoparlörün negatif terminalini karttaki toprak bağlantı noktasına bağlar. Kırmızı çizgi, hoparlörün pozitif terminalini karttaki JA10 pmod bağlantı noktasına bağlar.

Kısıtlamalar dosyası, JA1'den JA10'a kadar herhangi bir bağlantı noktasının çalışması için tasarlanmıştır. Ancak, karttaki bazı pinler yanıt vermiyor, bu nedenle JA10 çalışmıyorsa, diğer bağlantı noktalarını deneyebilirsiniz.

Adım 4: Yapısal Diyagram

Yapısal Diyagram
Yapısal Diyagram

Yukarıdaki resim, ana modülü oluşturan tüm bileşenleri içeren rekabetçi sesli uyarı sisteminin yapısal şemasını göstermektedir. Açıklamaları aşağıdaki gibidir:

player_lockout_LED1 Player Lockout LED bileşeni, tek-sıcak kodlamayı kullanan sonlu durumlu bir makinedir. Dört girişi vardır: player1, player2, reset ve CLK. 2 bitlik bir paket çıkış player_LED içerir. player_lockout_LED1 bileşeninin giriş ve çıkışlarının tümü, ana modülün aynı adlı giriş ve çıkışlarına doğrudan bağlıdır.

buzzer_tone1 Buzzer bileşeni, bir forumda yayınlanan bu kodu temel alır

stackoverflow.com/questions/22767256/vhdl-… Ancak, 440 Hz frekansında sürekli bir ses çıkışı verecek şekilde değiştirildi (Bir not). Etkinleştirme girişi, down_counter_FSM1 bileşeninin bir çıkışı olan bir buzzer_enable sinyaline bağlanır.

clk_div1 Saat bölücü bileşeni, Profesör Bryan Mealy'nin PolyLearn'de sağlanan saat bölücünün değiştirilmiş bir versiyonudur. Saati yavaşlatır, böylece çıkış periyodu 1 saniyedir.

down_counter_FSM1 Aşağı sayaç, sıfıra geri saymak için tasarlanmış bir FSM'dir. İki olası başlangıç zamanı, kullanıcı girişi tarafından seçilen 20 veya 5'tir. Sürenin dolduğunu belirtmek için zamanlayıcı sıfıra ulaştığında '1' verir. Bu çıkış, sesli uyarı tonu bileşeni için bir etkinleştirme işlevi görür. Sayaç ayrıca, segment kod çözücüye gönderilen 8 bitlik bir BCD gönderen 8 bitlik bir demet sinyali verir. Diğer bir çıkış, aynı zamanda segment kod çözücüdeki geçerli girişe bağlı olan counter_on'dur.

sseg_dec1 Yedi bölümlü kod çözücü bileşeni PolyLearn'de sağlanır ve Profesör Bryan Mealy tarafından yazılmıştır. down_counter_FSM1 tarafından sağlanan bir BCD girişini kullanır ve yedi bölümlü ekranda ondalık eşdeğerini verir. Sayaç açıkken geçerli giriş yüksektir. Bu, kod çözücünün yedi bölümlü ekranda ondalık sayıyı görüntülemesini sağlar. Sayaç kapalıyken geçerli giriş düşüktür. Yedi bölümlü ekran bu durumda yalnızca dört çizgi gösterecektir.

Adım 5: Sonlu Durum Makinesi (FSM) Şeması

Sonlu Durum Makinesi (FSM) Şeması
Sonlu Durum Makinesi (FSM) Şeması

Sonlu durum makinesinin duyarlılık listesi oynatıcı1, oynatıcı2, sıfırlama ve saati içerir. FSM çıkışı, Basys3 kartındaki iki LED'e bağlı 2 bitlik bir player_LED paketidir. Sonlu Durum Makinesi aşağıdaki üç durumu gösterir:

ST0 başlangıç durumudur. Bu durumda, iki LED kapatılır. Hem oyuncu1 hem de oyuncu2 düşükse FSM bu durumda kalacaktır. Eşzamansız bir sıfırlama da durumu ST0'a ayarlar. Player1 anahtarı yüksek olarak ayarlandığında, sonraki durum ST1 olacaktır. Player2 anahtarı yüksek olarak ayarlanırsa, sonraki durum ST2 olacaktır.

ST1, player1 LED'inin açık olduğu durumdur. FSM, herhangi bir giriş için bu durumda kalacaktır. Bu, oyuncu1 anahtarı yüksek olduktan hemen sonra oyuncu2 anahtarı yüksek olarak ayarlansa bile, ST1'de kalacağı anlamına gelir. Yalnızca asenkron sıfırlama sonraki durumu ST0'a ayarlayabilir.

ST2, player2 LED'inin açık olduğu durumdur. ST!'ye benzer şekilde, oyuncu2 anahtarı yüksek olduktan hemen sonra oyuncu1 anahtarı yüksek olarak ayarlansa bile FSM herhangi bir giriş için bu durumda kalacaktır. Yine, yalnızca asenkron sıfırlama sonraki durumu ST0'a ayarlayabilir.

Önerilen: