Spisu treści:
- Krok 1: Materiały
- Krok 2: Schemat czarnej skrzynki
- Krok 3: Podłączanie zewnętrznego głośnika
- Krok 4: Schemat strukturalny
- Krok 5: Diagram maszyny skończonej (FSM)
Wideo: Konkurencyjny system brzęczyka: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
Opracowany w tym projekcie system brzęczyków wyczynowych działa podobnie do systemów brzęczyków stosowanych w Regionalnych i Ogólnopolskich Zawodach Science Bowl. Ten projekt został zainspirowany moim zaangażowaniem w zespół miski naukowej mojej szkoły średniej przez trzy lata. Zawsze chcieliśmy odtworzyć system blokady brzęczyka z 5-sekundowym i 20-sekundowym zegarem.
Aby dać pewne informacje na temat systemu brzęczyków, brzęczyki misy naukowej są zaprogramowane do wprowadzania maksymalnie 8 graczy (z 8 oddzielnymi brzęczykami). Po naciśnięciu jednego brzęczyka, brzęczyk pierwszej osoby zostanie podświetlony, aby wskazać, który gracz otrzymał pytanie. Reszta graczy zostanie „zablokowana”, co oznacza, że ich brzęczyki nie zareagują, dopóki moderator nie zresetuje systemu brzęczyków.
Po przeczytaniu pytań moderator naciśnie przycisk, aby uruchomić minutnik, który będzie wyświetlany na wyświetlaczu siedmiosegmentowym. Po odrzuceniu pytania moderator może nacisnąć prawy przycisk, aby rozpocząć odliczanie od 5 sekund. Tymczasem po „bonusowym” pytaniu moderator może nacisnąć lewy przycisk, aby rozpocząć odliczanie od 20 sekund. Gdy licznik osiągnie zero, brzęczyk dźwiękowy wskaże, że graczowi skończył się czas.
Aby zresetować system i licznik czasu, moderator może nacisnąć środkowy przycisk. Aby zresetować mechanizm blokujący i diody LED odtwarzacza, przełączniki odtwarzacza 1 i odtwarzacza 2 muszą znajdować się w stanie niskim.
Krok 1: Materiały
Będziesz potrzebować:
- Płyta Basys3 (lub równoważna płyta FPGA)
- Kabel USB Micro-B
- Głośnik (użyłem głośnika pasywnego)
- 2 przewody
- Oprogramowanie do wdrożenia na FPGA (ja używałem Vivado)
- Konkurencyjny plik brzęczyka systemu
Krok 2: Schemat czarnej skrzynki
Schemat czarnej skrzynki pokazuje wejścia i wyjścia, które będą używane w tym systemie brzęczyka.
WEJŚCIA:
player1, player2 Te wejścia są podłączone do dwóch przełączników na płycie Basys3. Dla wygody zostaną użyte przełączniki skrajnie lewy i prawy.
reset Środkowy przycisk będzie używany do reprezentowania przycisku resetowania.
count_down_20_sec Lewy przycisk będzie używany do reprezentowania 20-sekundowego przycisku timera.
count_down_5_sec Prawy przycisk będzie używany do reprezentowania 20-sekundowego przycisku timera. Aby zapewnić uruchomienie zarówno 20-sekundowego, jak i 5-sekundowego timera, przytrzymaj przycisk, aż wyświetlacz siedmiosegmentowy pokaże timer.
CLK Płyta FPGA wygeneruje zegar, który działa z częstotliwością 10 ns.
WYJŚCIA:
głośnik Wyjście głośnika jest podłączone do zewnętrznego brzęczyka lub głośnika. Będziesz musiał podłączyć głośnik do portów JA pmod na płycie Basys3. Ten krok zostanie opisany poniżej.
speaker_LED To wyjście jest połączone z diodą LED na środku płyty i po prostu wskazuje, kiedy wyjście głośnikowe FPGA jest wysokie. Możesz użyć tego do testowania zewnętrznego głośnika. Zwróć uwagę, że niektóre porty pmod mogą nie działać dobrze, więc możesz wypróbować inne i użyć diody LED, aby sprawdzić, czy głośnik powinien być włączony.
SEGMENTY To wyjście jest połączone z ośmioma pojedynczymi segmentami na siedmiosegmentowym wyświetlaczu, łącznie z kropką dziesiętną.
DISP_EN To wyjście jest połączone z czterema anodami na siedmiosegmentowym wyświetlaczu.
player_LED To wyjście to 2-pakowy sygnał, który jest podłączony do diod LED nad przełącznikami player1 i player2. Pierwszy gracz, który przełączy odpowiedni przełącznik, zostanie wskazany przez diodę LED. Zwróć uwagę, że obie diody nie mogą świecić jednocześnie.
Krok 3: Podłączanie zewnętrznego głośnika
Aby podłączyć głośnik zewnętrzny do płyty Basys3, weź dwa przewody i podłącz je, jak pokazano na powyższym obrazku. Biała linia łączy ujemny zacisk głośnika z portem uziemienia na płycie. Czerwona linia łączy dodatni zacisk głośnika z portem JA10 pmod na płycie.
Plik z ograniczeniami został zaprojektowany tak, aby każdy port od JA1 do JA10 działał. Jednak niektóre piny na płycie nie reagują, więc jeśli JA10 nie działa, możesz wypróbować inne porty.
Krok 4: Schemat strukturalny
Powyższy rysunek przedstawia schemat strukturalny konkurencyjnego systemu brzęczyków wraz ze wszystkimi komponentami składającymi się na moduł główny. Ich opisy są następujące:
player_lockout_LED1 Komponent LED blokady odtwarzacza jest maszyną skończonych stanów, która używa kodowania one-hot. Posiada cztery wejścia: player1, player2, reset i CLK. Zawiera 2-bitowe wyjście pakietu player_LED. Wejścia i wyjścia komponentu player_lockout_LED1 są bezpośrednio połączone z identycznie nazwanymi wejściami i wyjściami modułu głównego.
buzzer_tone1 Buzzer jest oparty na kodzie zamieszczonym na forum
stackoverflow.com/questions/22767256/vhdl-… Zmodyfikowano go jednak tak, aby generował ciągły dźwięk o częstotliwości 440 Hz (uwaga). Wejście enable jest połączone z sygnałem buzzer_enable, który jest wyjściem komponentu down_counter_FSM1.
clk_div1 Komponent dzielnika zegara jest zmodyfikowaną wersją dzielnika zegara profesora Bryana Mealy'ego udostępnionego na PolyLearn. Spowalnia zegar, więc okres wyjścia wynosi 1 sekundę.
down_counter_FSM1 Licznik w dół jest FSM zaprojektowany do odliczania do zera. Dwa możliwe czasy rozpoczęcia to 20 lub 5, które są wybierane przez użytkownika. Wysyła „1”, gdy zegar osiągnie zero, aby wskazać, że czas się skończył. To wyjście działa jako aktywacja komponentu tonu brzęczyka. Licznik wyprowadza również 8-bitowy sygnał wiązki, który wysyła 8-bitowy kod BCD, który jest wysyłany do dekodera segmentu. Innym wyjściem jest counter_on, który jest również podłączony do prawidłowego wejścia w dekoderze segmentu.
sseg_dec1 Komponent siedmiosegmentowego dekodera jest dostarczany na platformie PolyLearn i został napisany przez profesora Bryana Mealy. Wykorzystuje wejście BCD dostarczane przez down_counter_FSM1 i wyświetla dziesiętny odpowiednik na siedmiosegmentowym wyświetlaczu. Gdy licznik jest włączony, ważne wejście jest w stanie wysokim. Umożliwia to dekoderowi wyświetlanie liczby dziesiętnej na siedmiosegmentowym wyświetlaczu. Gdy licznik jest wyłączony, to ważne wejście jest w stanie niskim. Wyświetlacz siedmiosegmentowy pokaże wtedy tylko cztery kreski.
Krok 5: Diagram maszyny skończonej (FSM)
Lista czułości maszyny skończonych stanów zawiera player1, player2, reset i zegar. Wyjście FSM to 2-bitowy pakiet player_LED podłączony do dwóch diod LED na płycie Basys3. Maszyna skończona pokazuje następujące trzy stany:
ST0 to stan początkowy. W tym stanie dwie diody LED są wyłączone. FSM pozostanie w tym stanie, jeśli zarówno gracz 1, jak i gracz 2 są na niskim poziomie. Reset asynchroniczny również ustawia stan na ST0. Gdy przełącznik player1 jest ustawiony na wysoki, następnym stanem będzie ST1. Jeśli przełącznik player2 jest ustawiony na wysoki, następnym stanem będzie ST2.
ST1 to stan, w którym dioda player1 jest włączona. FSM pozostanie w tym stanie dla każdego wejścia. Oznacza to, że nawet jeśli przełącznik player2 jest ustawiony na wysoki zaraz po tym, jak przełącznik player1 jest wysoki, pozostanie on w ST1. Tylko reset asynchroniczny może ustawić następny stan na ST0.
ST2 to stan, w którym dioda player2 jest włączona. Podobnie do ST!, FSM pozostanie w tym stanie dla każdego wejścia, nawet jeśli przełącznik player1 jest ustawiony na wysoki zaraz po tym, jak przełącznik player2 jest wysoki. Ponownie tylko reset asynchroniczny może ustawić następny stan na ST0.
Zalecana:
Jak korzystać z czujnika PIR i modułu brzęczyka - samouczek Visuino: 6 kroków
Jak używać czujnika PIR i modułu brzęczyka - Samouczek Visuino: W tym samouczku nauczymy się, jak używać czujnika PIR i modułu brzęczyka, aby wydawać dźwięk za każdym razem, gdy czujnik PIR wykryje ruch. Obejrzyj film demonstracyjny
Prosta muzyka brzęczyka: 6 kroków
Simple Buzzer Music: Prosta biblioteka do odtwarzania własnych utworów za pomocą Arduino za pomocą brzęczyka lub głośnika. Mały przykład utworu „praeludium”; Johanna Sebastiana Bacha jest wliczony w cenę
Kontroluj dźwięk brzęczyka za pomocą Arduino: 7 kroków
Kontroluj dźwięk brzęczyka za pomocą Arduino: Istnieje wiele interaktywnych prac, które można wykonać za pomocą Arduino, najczęściej używanym i najczęściej używanym jest wyświetlanie dźwięku i światła. Najczęstszymi komponentami, które mogą wydawać dźwięk, są brzęczyk i klakson. Porównaj te dwa, brzęczyk jest prostszy
Moja próba melodii brzęczyka przycisku Arduino: 11 kroków
My Attempt at the Arduino Button Buzzer Melody: W tym samouczku pokażę, jak przycisk może rozpocząć melodię. W ciągu roku szkolnego wiele z naszego życia to dzwonki lub tony, które informują nas, kiedy nadszedł czas, aby wyjść lub czas iść. Większość z nas rzadko zatrzymuje się i myśli o tym, jak te różne
Jak używać brzęczyka HW-508 ze SkiiiD: 8 kroków
Jak używać Buzzera HW-508 z SkiiiD: Ten projekt jest instrukcją „jak korzystać z Buzzera HW-508 (dotyczy KY-006) z Arduino za pośrednictwem skiiiDB Przed rozpoczęciem poniżej znajduje się podstawowy samouczek dotyczący korzystania ze skiiiD https: //www.instructables.com/id/Getting-Started-W