Всем известна интеллектуальная игра «Что?Где?Когда?», но не все знают ее разновидность – так называемый «Свояк». Суть заключается в следующем: одновременно играют 2-3 команды, по шесть человек в каждой из них.
На столе (ну или где-то там) у жюри стоит пульт или ноутбук со специальной программой. Командам же раздают кнопки (по одной на каждую команду). Вопрос зачитывают всем командам сразу, и на размышление дается одна минута. Если команда знает ответ, то игрок жмет на кнопку, и отвечает. Если ответ верен отсчет времени прекращается, и зачитывается новый вопрос, а если неверен, то время для ответа остальных команд уменьшается (увеличивается) до 20 секунд.
Недавно меня попросили сделать контроллер кнопок для такой игры. Простейший вариант – собрать все на реле, но конструкция получится неподъемной, альтернатива – на МК.
Так как я как раз практикую программирование Arduino, то выбор пал на него. К слову, программа для Arduino весит меньше 3 кБайт.
Вот скрин исходного кода:
Рассмотрим поподробнее скетч:
Так как мы будем подключать устройство к ПК, то скорость COM порта для удобства можно выбрать 9600 бит/с (что бы меньше настраивать комп). Частоту опроса кнопок поставим 100мс, потому что десятая доля секунды мало на что влияет. Что бы не подключать к входам МК дополнительные подтягивающие резисторы, включим встроенные в МК Atmega 8 подтягивающие резисторы к VCC номиналом 20кОм.
Устройство подключается к ПК по USB, ну или по COM порту(смотря какой у вас Arduino/Freeduino).
Программа для Windows написана в среде Delphi (Embaracadero Delphi XE3). Вот ее окно:
.
ВАЖНО! Для правильной работы, после подключения к ПК нужно зайти в диспетчер устройств, выбрать появившийся COM порт и изменить его название на COM30. После этого можно запускать программу.
Внешний (скорее внутренний) вид устройства:
Кнопки к платформе Arduino нужно подключать следующим образом:
Прикрепленные файлы:
- CGK_II.zip (3110 Кб)