Оглавление:
- Шаг 1: материалы
- Шаг 2: Схема черного ящика
- Шаг 3: Подключение внешнего динамика
- Шаг 4: структурная схема
- Шаг 5: Диаграмма конечного автомата (FSM)
Видео: Конкурсная система зуммера: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
Система звукового оповещения, разработанная в этом проекте, работает аналогично системам звукового оповещения, используемым в региональных и национальных соревнованиях по научным чашам. Этот проект был вдохновлен моим участием в команде школьного кубка по науке в течение трех лет. У нас всегда было желание воссоздать систему звукового сигнала блокировки с 5-секундным и 20-секундным таймером.
Чтобы дать некоторое представление о системе зуммера, зуммеры научной чаши запрограммированы на ввод максимум 8 игроков (с 8 отдельными зуммера). После нажатия одной кнопки зуммера загорится зуммер первого человека, чтобы указать, какой игрок получит вопрос. Остальные игроки будут «заблокированы», что означает, что их зуммеры не будут отвечать, пока модератор не сбросит систему зуммера.
После того, как модератор прочитает вопросы, он нажмет кнопку, чтобы запустить таймер обратного отсчета, который будет отображаться на семисегментном дисплее. После «подбрасывания» вопроса модератор может нажать правую кнопку, чтобы начать обратный отсчет с 5 секунд. Между тем, после «бонусного» вопроса модератор может нажать левую кнопку, чтобы начать обратный отсчет с 20 секунд. Как только таймер достигнет нуля, раздастся звуковой сигнал, указывающий на то, что время игрока истекло.
Чтобы сбросить систему и таймер обратного отсчета, модератор может нажать центральную кнопку. Чтобы сбросить механизм блокировки и светодиоды проигрывателя, переключатели для игрока 1 и игрока 2 должны быть на низком уровне.
Шаг 1: материалы
Вам понадобится следующее:
- Плата Basys3 (или эквивалентная плата FPGA)
- Кабель Micro-B USB
- Динамик (я использовал пассивный динамик)
- 2 провода
- Программное обеспечение для реализации на ПЛИС (я использовал Vivado)
- Файл системы конкурентного зуммера
Шаг 2: Схема черного ящика
На схеме черного ящика показаны входы и выходы, которые будут использоваться в этой системе зуммера.
ВХОДЫ:
player1, player2 Эти входы подключены к двум переключателям на плате Basys3. Для удобства будут использоваться крайний левый и крайний правый переключатели.
сброс Центральная кнопка будет использоваться для обозначения кнопки сброса.
count_down_20_sec Левая кнопка будет использоваться для представления кнопки 20-секундного таймера.
count_down_5_sec Правая кнопка будет использоваться для представления кнопки 20-секундного таймера. Чтобы обеспечить запуск как 20-секундного, так и 5-секундного таймера, удерживайте кнопку, пока на семисегментном дисплее не отобразится таймер.
CLK Плата FPGA генерирует тактовую частоту 10 нс.
ВЫХОДЫ:
динамик Выход динамика подключен к внешнему зуммеру или динамику. Вам нужно будет подключить динамик к портам JA pmod платы Basys3. Этот шаг будет описан ниже.
Speaker_LED Этот выход подключен к светодиодному индикатору в центре платы и будет просто указывать, когда на выходе динамика FPGA высокий уровень. Вы можете использовать это для тестирования внешнего динамика. Обратите внимание, что некоторые из портов pmod могут работать некорректно, поэтому вы можете попробовать другие и использовать светодиод, чтобы проверить, должен ли динамик быть включен.
СЕГМЕНТЫ Этот выход подключен к восьми отдельным сегментам семисегментного дисплея, включая десятичную точку.
DISP_EN Этот выход подключен к четырем анодам семисегментного дисплея.
player_LED Этот выход представляет собой сигнал с двумя связками, который подключен к светодиодным индикаторам над переключателями player1 и player2. Игрок, первым щелкнувший соответствующий переключатель, будет обозначен светодиодом. Обратите внимание, что оба светодиода не могут гореть одновременно.
Шаг 3: Подключение внешнего динамика
Чтобы подключить внешний динамик к плате Basys3, возьмите два провода и прикрепите их, как показано на изображении выше. Белая линия соединяет отрицательный вывод динамика с портом заземления на плате. Красная линия соединяет положительный вывод динамика с портом pmod JA10 на плате.
Файл ограничений разработан таким образом, что любой порт от JA1 до JA10 должен работать. Однако некоторые контакты на плате не отвечают, поэтому, если JA10 не работает, вы можете попробовать другие порты.
Шаг 4: структурная схема
На изображении выше показана структурная схема системы зуммера конкурентов, включая все компоненты, составляющие основной модуль. Их описания следующие:
player_lockout_LED1 Компонент светодиода блокировки проигрывателя - это конечный автомат, который использует одноразовое кодирование. Он имеет четыре входа: player1, player2, reset и CLK. Он содержит 2-битный пакет вывода player_LED. Входы и выходы компонента player_lockout_LED1 напрямую подключены к идентично названным входам и выходам основного модуля.
buzzer_tone1 Компонент зуммера основан на этом коде, опубликованном на форуме
stackoverflow.com/questions/22767256/vhdl-… Однако он был изменен для вывода непрерывного звука с частотой 440 Гц (примечание). Вход включения подключен к сигналу buzzer_enable, который является выходом компонента down_counter_FSM1.
clk_div1 Компонент делителя часов - это модифицированная версия делителя часов профессора Брайана Мили, представленного на PolyLearn. Он замедляет часы, поэтому период вывода составляет 1 секунду.
down_counter_FSM1 Обратный счетчик - это автомат, рассчитанный на обратный отсчет до нуля. Два возможных времени запуска - 20 или 5, которые выбираются пользователем. Он выводит «1», когда таймер достигает нуля, чтобы указать, что время истекло. Этот выход действует как включение компонента тона зуммера. Счетчик также выдает 8-битный пакетный сигнал, который отправляет 8-битный BCD, который отправляется в декодер сегмента. Другой выход - это counter_on, который также подключен к действующему входу на декодере сегмента.
sseg_dec1 Компонент семисегментного декодера предоставляется в PolyLearn и был написан профессором Брайаном Мили. Он использует вход BCD, предоставляемый down_counter_FSM1, и выводит десятичный эквивалент на семисегментном дисплее. Когда счетчик включен, допустимый входной сигнал высокий. Это позволяет декодеру отображать десятичное число на семисегментном дисплее. Когда счетчик выключен, допустимый входной сигнал низкий. В этом случае семисегментный дисплей покажет только четыре черточки.
Шаг 5: Диаграмма конечного автомата (FSM)
Список чувствительности для конечного автомата включает player1, player2, reset и часы. Выход FSM представляет собой 2-битный пакет player_LED, подключенный к двум светодиодам на плате Basys3. Конечный автомат показывает следующие три состояния:
ST0 - начальное состояние. В этом состоянии два светодиода выключены. FSM останется в этом состоянии, если и player1, и player2 находятся на низком уровне. Асинхронный сброс также устанавливает состояние на ST0. Когда переключатель player1 установлен в высокое положение, следующим состоянием будет ST1. Если переключатель player2 установлен в высокое положение, следующим состоянием будет ST2.
ST1 - это состояние, при котором горит светодиод player1. Конечный автомат останется в этом состоянии для любого входа. Это означает, что даже когда переключатель player2 установлен в высокий уровень сразу после того, как переключатель player1 находится в состоянии высокого уровня, он останется в ST1. Только асинхронный сброс может установить следующее состояние на ST0.
ST2 - это состояние, при котором горит светодиод player2. Подобно ST !, конечный автомат будет оставаться в этом состоянии для любого входа, даже если переключатель player1 установлен в высокий уровень сразу после того, как переключатель player2 находится в состоянии высокого уровня. Опять же, только асинхронный сброс может установить следующее состояние на ST0.
Рекомендуемые:
Как использовать ИК-датчик и модуль зуммера - Учебное пособие по Visuino: 6 шагов
Как использовать ИК-датчик и модуль зуммера - Учебное пособие по Visuino: в этом учебном пособии мы узнаем, как использовать ИК-датчик и модуль зуммера, чтобы издавать звук каждый раз, когда ИК-датчик обнаруживает движение. Посмотреть демонстрационное видео
Супер Марио с помощью зуммера: 3 шага
Super Mario, использующий зуммер: прослушивание музыки расслабляет наш разум и душу. Давайте добавим музыку в ваши проекты Arduino с помощью одного компонента, buzzer. Я нашел этот замечательный проект, используя Buzzer, который воспроизводит тематическую песню super mario, написанную Dipto Pratyaksa, на инструкциях. Вдобавок
Простая музыка зуммера: 6 шагов
Simple Buzzer Music: простая библиотека для вывода ваших собственных песен с помощью Arduino через зуммер или динамик. Небольшой пример песни "praeludium" Иоганна Себастьяна Баха включен
Управление звуком зуммера с помощью Arduino: 7 шагов
Управление звуком зуммера с помощью Arduino: есть много интерактивных работ, которые можно выполнить с помощью Arduino, наиболее распространенным и наиболее часто используемым является отображение звука и света. Наиболее распространенными компонентами, которые могут издавать звук, являются зуммер и звуковой сигнал. Сравните два, зуммер проще
Моя попытка воспроизвести мелодию зуммера кнопки Arduino: 11 шагов
Моя попытка создать мелодию зуммера кнопки Arduino: в этом уроке я покажу вам, как кнопка может запускать мелодию. В течение учебного года многие из наших жизней управляются колокольчиками или звуковыми сигналами, которые сообщают нам, когда пора уходить или пора уходить. Большинство из нас редко останавливается и думает о том, как эти разные