Радио-кнопки для игры "Угадай мелодию".

Нет ответов
Jaeger
Jaeger аватар
Offline
Зарегистрирован: 23.03.2018

      В игру давно играют как в семейном кругу так и на вечеринках с друзьями. Напомню смысл игры: ведущий включает фрагмент мелодии, игроки нажимают кнопки. Кто угадал и быстрее нажал свою кнопку тому + N-количество очков. Если не правильно угадал - минус. Возможны вариации правил игры в зависимости от фантазии ведущего. Преимущество беспроводных кнопок для игроков очевидно - они не привязаны к определенному месту и позволяют располагаться вокруг ведущего в радиусе 10 и более метров. Предлагаемый вариант беспроводных кнопок состоит из трех кнопок для игроков и одной для ведущего и предназначен для домашнего использования. Кнопки построены на самых дешевых ардуинах Pro Mini ATmega168/328/8MHz/3,3V и трансиверах nRF24L01+.

Структурная схема системы.

 

     Кнопка ведущего представляет собой HID - устройство, подключается к USB порту компьтера и позволяет эмулировать команды мм-клавиатуры для управления плеером. Данное устройство передает плееру только две команды - PLAY и STOP. Также к кнопке ведущего подключена лампа-сигнализатор, которая включатся соответствующим цветом при нажатии кнопки игрока. В режиме ожидания кнопки игроков заблокированы и ожидают команды от кнопки ведущего. Ведущий выбирает на компе файл мелодии и нажимает свою кнопку. "Кнопка посылает" кнопкам игроков сигнал разблокировки  и запускает плеер с выбранной мелодией. Длительность проигрывания мелодии ограничена в данном варианте 10-ю секундами, по истечении которых плеер останавливается и вновь блокируются кнопки игроков. Если при проигрывании мелодии будет нажата кнопка одного из игроков - плеер останавливается, блокируются кнопки игроков, зажигается лампа-сигнализатор на 5 сек соответствующим цветом.

Принципиальные схемы и скетчи.

Схема кнопки ведущего.

Кнопка ведущего запитана от шины 5V USB порта. При выборе ардуины для этой кнопки следует ориентироваться на варианты клонов Pro-Mini 168/328 с "большим" стабилизатором и кварцем на борту.

 

Дело в том, что от внутреннего стабилизатора 3,3V запитывается не только чип мк ардуины, но и периферия в лице трансивера nRF24L01+, что требует от стабилизатора повышенной мощности. Что касается кварца, то его нужно поменять на 12МГц. Это требования USB-драйвера для ардуины. Для кнопок игроков стабилизаторы ардуин не учавствуют в питании, поэтому там могут быть любые модификации плат 8Мгц/3,3V.

Трансиверы nRF24L01+ могут быть обычными или мини. Следует учесть, что у платы-мини вывод N1 это VCC(3,3V).

В качестве сигнализатора нажатой кнопки игрока используется "пятачек" CJMCU-2812-7, с 7-ю адресными светодиодами WS2812B, помещенный под колпак сгоревшей сетевой лед-лампы.

Можно использовать огрызок адресной ленты или 7 отдельных  WS2812B. При использовании длинной ленты, ее следует запитать от отдельного источника 5V и скорректировать скетч. Можно использовать обычные RGB светодиоды после минимальной доработки схемы и скетча.

Для заливки скетча в ардуины потребуется USB/UART конвертер. Рекомендую FTDI232 на чипе FT232RL, кроме USB/UART конвертера он может работать как SPI bit-bang программатор. SPI программатор потребуется для заливки загрузчика в ардуину после замены кварца с 8 на 12МГц или при заливке готового HEX файла. Для поддержки Arduino IDE плат с "нестандартной" частотой необходимо в IDE установить дополнение MiniCore Подробности установки дополнений и заливки загрузчика можно найти в интернете.

Скетч кнопки ведущего:

 

Схема кнопки игроков.

Для каждой кнопки игрока заливается свой скетч. В скетче нужно раскомментировать #define GAMER  для соответствующей кнопки, это нужно чтобы у каждой кнопки был свой адрес трубы для передачи, необходимо для распознавания нажатой кнопки у ведущего.

Скетч кнопки игрока:

По мотивам темы:

Материалы проекта:

Лажевенький видосик: