Контроллер кнопок для игры brain ring v2.0

Содержание

Контроллер кнопок для игры Brain Ring v2.0

Это не первая моя статья про контроллер кнопок для игры Brain Ring (менее известное название “Свояк”, но правила там немного отличаются – в Brain Ring можно уходить в “минуса” за неправильный ответ). В предыдущем варианте контроллер кнопок был выполнен на платформе Arduino, этот же вариант использует в качестве главного элемента схемы микроконтроллер компании Microchip – PIC12F683. Данный выбор обусловлен не только стоимостью ATmega8 (о стоимости всей платы Arduino я молчу), но и размерами корпусов этих МК. У меня в распоряжении на момент разработки уст-ва был корпус типа “Малышка”. Из-за его небольших размеров пришлось вынести преобразователь USB-UART за пределы корпуса. Вот что в итоге вышло:

Итак, начнем по порядку.

1. Предназначение

Это устройство (как я уже писал выше) предназначено для проведения командных игр “Brain Ring”. Но с его помощью можно так же проводить и “Свояк”. Различия в правилах игр незначительные – в “Brain Ring” за неправильный ответ игрок получает “-“, а в “Свояке” не получает ничего. Так как устройство работает в паре с ПК, то в программе для последнего я реализовал поддержку обоих систем.

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

Принципиальная (электрическая) схема устройства достаточно проста. Так как микроконтроллер работает от встроенного генератора, то кварцевый резонатор и обвязка для него не потребовались, что позволило упростить и схему и плату. Всего в схеме используется 13 деталей (без учета деталей преобразователя USB-UART, так как вместо него можно взять обычный телефонный шнурок на CP2303). Ниже представлена принципиальная схема устройства:

*Элемент P1 использовался мной для отладки схемы в Proteus, и в реальной схеме его нет. Но в реальной схеме на его месте стоит преобразователь USB-UART.

Печатная плата для сего девайса получалась так же достаточно простенькой:

3. О работе схемы

Как вы видите схема питается от USB. Это одна из причин,по которым я не захотел использовать преобразователь TTL-RS232. Ведь в таком случае пришлось бы использовать внешнее питание. Ну вторая причина общеизвестна – в современной компьютерной технике COM порт очень нечастый гость, тем более на ноутбуках.

Для подключения кнопок я использовал пины микроконтроллера GPIO0-GPIO2. Решив, что отслеживать нажатия по высокому уровню на входах будет удобнее (наверное последствия работы с советской логикой :)), подтянул эти выводы к земле, через резисторы порядка 1кОм.

Для связи с ПК, как уже упоминалось, используется UART. Но так как в данном микроконтроллере “железно” реализованного интерфейса нет, то пришлось использовать программный. Функциональность у программного UART значительно ниже, но для поставленных задач он вполне годится. Вход “reset” микроконтроллера я отключать не стал (я чаще работаю с микроконтроллерами фирмы Atmel , а там это табу!), хотя в данном случае от него толку “0”

4. Прошивка МК

Прошивка для МК была написана в среде mikroPascal.

Как уже упоминалось, МК тактируется от внутреннего генератора на 4МГц, а для связи используется программный UART.

Т еперь собственно о прошивке. Вот ее исходный код:

Первым делом в программе отключаем компаратор и АЦП, далее записываем в регистр GPIO “0” и инициализируем софтверный UART. После этих действий запускаем бесконечный цикл.

Собственно в этом цикле и происходит постоянный опрос кнопок.

Например, нажата кнопка 1. На входе GPIO0 устанавливается высокий уровень, и программа определив это переходит к выполнению заданных действий : отсылает по UART номер нажатой кнопки (в данном случае “1”), и проверяет, нажата ли еще эта кнопка, если да – возвращается на метку “a” и далее по кругу. Как только кнопку отпускают, программа снова начинает проверку состояния остальных кнопок.

Задержки при опросе кнопок я использовал для “отсеивания” дребезга контактов.

Вот так нужно выставить конфигурационные биты (WinPic800)

5. Программа для ПК

Эту программу я писал в среде Embarcadero Delphi XE3.

Главное (и единственное) окно программы:

Настройки, счет команд и остальное реализованы выезжающих панелях. Ну, например панель настроек:

Как видно на рисунке выше, в настройках можно выбрать тип игры, порт, установить время на обдумывание вопроса и обнулить счет команд.

7. Замена деталей

На схеме деталей очень мало, но кое-что можно заменить. Так, микроконтроллер можно заменить на PIC12F609, но нужно будет убрать строчку отключения АЦП, так как его в нем нет. Без изменения кода, можно взять МК PIC12F510 (никогда его не видел).

Резисторы выступают в роли подтяжке к “земле”, по этому можно взять от 1 кОм до 10 кОм.

Конденсатор можно не ставить, он стоит “на всякий пожарный”. Но как показывает практика схема неплохо работает и без него.

8. USB-UART

В своей схеме я использовал преобразователь USB-UART на FT232RL. Сразу скажу – те, кто не уверен, что сможете запаять эту микросхему, не беритесь. При всей своей функциональности она очень не любит перегрев, и даже просто перепутав выводы UART можно вывести ее из строя (именно таким способом я и отправил уже 2 микросхемы на свалку:( ).

Преобразователь я собирал с этой печаткой:

Сразу хочу предупредить, она не моя, накопал где-то на просторах интернета. Но я кое-что в ней изменил, не стал разводить дорожки под светодиоды, так как моя конструкция в последствии была “упакована” в подходящую по диаметру непрозрачную термоусадочную трубку.

Но, как уже упоминал, если у вас есть старый шнурок от NOKIA или что-то похожее, с преобразователем USB-UART внутри (обычно ставят PL2303), можно попытаться использовать его. Но, у меня такое китайское творение нашлось, и я попытался через него подключиться к пк. Эксперимент не удался. Пакеты если и приходили, то не считывались в терминале, пришлось ваять вышеуказанный преобразователь.

Детали для преобразователя я не включил в список элементов, так как это общеизвестная схема включения из даташита. По той же причине не стал рассматривать схему преобразователя.

И в заключение, фото устройства:

За качество видео не бейте, я вообще удивлен что китайская вебка может что-то записать. Если что, видео с экрана писал AVS Video Editor, а с камеры – VirtualDub.

Вступление

Для проведения игр по правилам «Брейн-ринг», разработал и собрал электронную систему.

До этого игры проводились с помощью рефери, которые должны были по поднятию рук определять, какая команда отвечает первой. Но вскоре стало понятно, что нужна электронная система, так как каждый раунд игры оканчивался затяжными спорами в выяснении «кто первый» и почти побитию рефери.

Общее описание системы

Система состоит из нескольких блоков:

  • блок управления («пульт»);
  • блок индикации таймера;
  • блоки кнопок команд (4 штуки);
  • соединительные кабеля;
  • блок питания от сети.

Количество команд может быть от 2 до 4. Ненужные блоки кнопок просто не учитываются.

Отмазка. Для сборки я вынужден был делать все из доступных мне деталей, материалов и технологий. В связи с отсутсвием микродрели все платы сделаны на основе поверхностного монтажа. При оценке кривости изготовления корпусов и плат, пожалуйста, также прошу сделать поправку на имеющиеся инструменты и возможности.

Коротко о каждом блоке

Блок управления («пульт»)

Пульт работает на микроконтроллере Atmega8A.

Он состоит из двух плат – основной и платы управления.

Конструктивно пульт собран в корпусе KRADEX Z20.

Основная плата

Схема простая, состоит из самого МК с обвязкой и сдвигового регистра 74HC595 для десериализации световой индикации.

Диод 1N5819 защищает от переполюсовки питания. Транзистор BC547 усиливает звуковые сигналы, которые выводятся на 0.5Вт динамик (правда, оказалось, что звук достаточно слабый, поэтому для больших игр звук выводился на большие колонки).

Плата управления

Здесь – просто кнопки.

Световая индикация

Через регистр 74HC595 на пульт и на кнопочные блоки команд посредством красного и зеленого светодиодов выводится состояние команд во время игры. На лицевой панели пульта расположены 4 пары светодиодов, на каждом кнопочном пульте команд – по 2 светодиода.

Блок таймера

Состоит из платы и 4-х 1.5-дюймовых семисегментных индикаторов FYS-15011 BS-21 с общим анодом, по 2 на каждую сторону.

В схеме использовано 2 регистра 74HC595 включенных каскадом.

Блок таймера соединяется с основным блоком посредством 5-проводников старого RS232 кабеля.

Блоки кнопок команд

На столе каждой команды ставится блок с кнопкой и 2-мя светодиодами, красным и зеленым.

Блок питания

БП – обычный китайский импульсный на 5В 2А.

Коротко об изготовлении

Печатные платы

Схемы блоков разработаны в бесплатной версии Eagle CAD. Трассировку печатных плат производил в TopoR Lite 5.2. Изображения плат были «распечатаны» в PDF, затем импортированы в Inkscape, а из последнего экспортированы в зеркальном и негативном виде в формат PNG. Шаблоны печатал из программы XnView в масштабе 100% на струйном принтере на пленку для струйной печати. На текстолит наклеивал негативный пленочный фоторезист, который засвечивал УФ КЛЛ 26 Вт около 10 минут (подбирал тестовыми засветками) с расстояния 30 см. Днем мне больше понравилось экспонировать – засветка солнечным светом нужна всего около 10 секунд!

После засветки проявлял фоторезист в воде с небольшим количеством стирального порошка. Затем сразу же кидал в хлорное железо.

Шаблоны печатных плат и монтажные схемы

Главная плата
Плата управления
Плата индикатора таймера
Плата кнопки команды

Корпуса

Для пульта выбрал корпус Z20. Главную плату прикрутил винтами к основанию. Плату с кнопками – к верхней части на стойках. Кнопки для пульта взял с удлиненными толкателями.

Два ряда светодиодов установил в просверленные отверстия и посадил на клей.

Пропилил куском ножовки пазы для гнезд 6p4c.

В качестве корпуса для блока индикатора таймера был взят корпус от какого-то блока питания. Резаком, сделанным из ножовочного полотна были вырезаны окна, индикаторы прижаты пеноматериалом от их же упаковки и приклеены.

Читайте также:  Расширение возможностей сду

Корпуса кнопочных блоков сделаны из телефонной розетки с гнездом 6p4c. В качестве толкателя кнопки использован 10 мм светодиод.

Каждый такой блок подсоединен к пульту стандартным 4-х жильным телефонным кабелем длинной порядка 7-10 метров. При этом удобно использовать цвета жил соответственно подключаемым светодиодам. В ходе проведения игр в разных условиях не было замечено влияния их длины на работу системы.

Все соединения в устройстве сделаны из старого 40-жильного шлейфа IDE.

Программная часть (прошивка)

Прошивка системы была написана на C в IDE Code::Blocks. Так как я не имею большого опыта в программировании МК, прошу не слишком строго судить мой код. Некоторые части и идеи были подсмотрены на разных сайтах посвященных AVR.

Небольшое разъяснение кода прошивки

В блоке инициализации определяются несколько констант.

Строка 399 и далее:

const uint8_t round_time=61; – время одного раунда +1 секунда вначале для фиксации фальстарта.

uint32_t TI_SOUNDS_period = 500; – длина «бипа» в мс.

В прошивке используются два аппаратных 8-битных таймера.

Нулевой таймер TCNT0 работает с периодом 1 мс, и на основе него сделаны несколько программных таймеров для антидребезга, индикации и проигрывания звуков.

Второй аппаратный таймер TCNT2 используется для генерирования звуков разной высоты. Период его срабатывания, кроме значений его регистра, определяется начальным состоянием его счетчика из массива Bip_notes. Таким образом создаются звуки разной высоты.

Вся программа работает в цикле while (1): сначала идет опрос регистра ввода, затем, в зависимости от ввода и текущего состояния, производятся соответствующие действия, дальше идет блок индикации и, в конце – блоки программных таймеров.

Прошивка МК и фьюзы

Так как большая точность мне не нужна была, то я обошелся без кварца и прошил МК на внутренний генератор 8МГц установив следующие fuse:

avrdude -p atmega8 -c avrisp -e -vv -P COM5 -b19200 -U lfuse:w:0xE4:m

При установке кварца, нужно поменять константу F_CPU в начале main.c соответственно его частоте.

Скомпилированная прошивка 01.hex находится в папке bin/Release

МК я прошивал с помощью avrdude используя Arduino как avrisp предварительно залив в него соответствующий скетч:

avrdude -p atmega8 -c avrisp -e -vv -P COM5 -b19200 -U flash:w:binRelease01.hex

Подсмотреть, как использовать Arduino как программатор для AVR здесь:

Инструкция по использованию системы

Перед началом игры выбирается удобное расположение для пульта – если им управляет ведущий, – то возле него, если помощник, – то так, чтобы не мешаться.

Индикатор таймера устанавливается, так чтобы все команды и ведущий могли хорошо его видеть. Так как индикация производится на две стороны, то это не очень сложно. Мы использовали для него нагнутый горизонтально пюпитр.

Кнопочные пульты кладутся на столы команд. Кабеля приклеиваются скотчем, чтобы не путались.

Подсоединяются все кабеля. Порядок подключения – такой же как расположение команд. Можно для удобства обозначить концы каждого кабеля изолентой своего цвета.

Включаем систему – прозвучит мелодия и все индикаторы мигнут несколько раз.

Пример игры

На пульте имеются 4 кнопки:

Первый раунд

1. Ведущий читает вопрос потом говорит: «Время!»

2. Одновременно или через пару секунд оператор нажимает кнопку «Новый раунд». При этом гаснут все светодиоды, система может принимать нажатия кнопок команд, счетчик таймера начинает отсчитывать секунды.

Если во время первой секунды какая-то команда нажала свою кнопку, происходит событие «Фальстарт» – звучит сигнал и для этой команды загорается красный светодиод. Система приостанавливается. Команда объявляется выбывшей из текущего раунда. Снова звучит «Время!» и оператор нажимает кнопку «Продолжить раунд» продолжается отсчет времени.

Если же кнопка командой была нажата после времени фиксации фальстарта, то для этой команды загорается зеленый светодиод, для остальных команд – красный. Система приостанавливается. Оператор должен нажать кнопку «Ответ».

При этом кнопки на столах команд снова становятся активными, светодиоды гаснут, и, если какая-то команда нажмет свою кнопку в это время, то для нее срабатывает фальстарт и она выбывает из раунда.

3. Команда отвечает на вопрос:

  • ответ правильный – объявляется конец раунда, команде начисляются очки;
  • ответ неверный – команда объявляется выбывшей из текущего раунда, звучит «Время!» оператор нажимает «Продолжить раунд» продолжается отсчет времени.

При этом для команд, которые по причине фальстарта или неверного ответа выбывают из раунда, загораются красные светодиоды и кнопки на их столах не реагируют на нажатия.

Следующий раунд.

1а. Ведущий произносит новый вопрос и говорит «Время».

2а. Оператор нажимает «Новый раунд». Все повторяется.

Пауза. Во время отсчета времени можно нажать «Пауза», чтобы приостановить его.

Когда до конца отсчета остается 5 секунд, звучат звуковые сигналы.

Реальное использование

После первой игры были внесены некоторые поправки в код. После этого данная система была уже опробована несколько раз в реальных играх и показала себя пригодной для использования по назначению.

Я признаю, что многое в этой системе можно сделать по-другому и лучше, но даже в таком виде она полностью выполняет поставленные перед ней задачи.

Скачать файлы проекта

Если есть желающие усовершенствовать – милости просим – все исходники проекта я предоставляю свободно. Код прошивки выложен на bitbucket.org: https://bitbucket.org/onivan/brags

Там же можно скачать шаблоны печатных плат и другие файлы.

“Своя Игра” (НТВ) на Ардуино

На дне рождения друга предложил провести Свою игру. Идея было тепло воспринята, но меня дернуло подготовить и игровой автомат для этого.

Все довольно просто: дать по кнопке и назначить по лампочке каждому игроку, завести лампочку под прием ответов (момент, с которого игроки торопятся нажать свою кнопку), а также учитывать фальстарты и наказывать за них [ программно 🙂 ].

День 1
За один вечер была спроектирована игра, запрограммирована, а также собран прототип на макетной плате.

Сбор макета и прошивание.

Проснулся пораньше, чтобы поместить все в корпус. Для этого подошла плотная коробка из под беспроводной колонки (я все-таки знал, что она пригодится).

Это я стараюсь не покалечить соседский стол паяльными работами.

После некоторых мучений, прошу представить Вашему вниманию ИГРОВУЮ КОНСОЛЬ!

Консоль SIBOX. Три пульта игроков и пульт ведущего. Белый шнур – питание USB. Сверху три лампочки под игроков, на торце спереди красная лампочка ведущего, с помощью неё он разрешает прием ответов.

Жду дня рождения и готовлю большую коллекцию вопросов. 🙂

P.S. Напомню, что сверху есть ссылка на код и логику.

Найдены возможные дубликаты

Проверка нажатий через опрос или через прерывания?

Если через опрос – это “нечестная” реализация. С прерывания и лучше, но они так же проверяются последовательно .

Я не специалист, своими словами объясню, а Вы подскажете, прерывание это или опрос. В программе запущен цикл, на каждой итерации которого проверяются события нажатия. За нажатие считается смена состояния кнопки с low на high. Если таких нажатий несколько, то берется первое (как хранится). В этом моменте нечестно обрабатываются одновременные нажатия. Я полагал, что это редкая ситуация, хотя, не проверял. Наверно, лучше всего дополнить этот вариант случайным выбором в случае одновременных (с точки зрения программы) нажатий игроков. Нажатия ведущего оставить приоритетными.

Да это выбор перебором)

С точки зрения игрока – разница в несколько миллисекунд практически не заметна и роли не играет, т.к. фактически он не может отследить такую разницу с соседями.

Но некоторые игроки слишком быстрые)

Абсолютно честный вариант игровой системы, который правильно будет обрабатывать одновременные нажатия, сделать будет сложно даже на дискретной логике.

Вообще, такая простая задача выливается в несколь довольно интересных проблем.

Формально, будет честнее, если у вас сначала будет выполнен опрос всех кнопок и только после будет приниматься решение, было ли срабатывание. Если их было несколько, логичнее давать сигнал на повторное нажатие.

Там такие микросекунды, что скорее несовершенство переключателей повлияет, но по строгой алгоритмической логике вы правы. Я бы больше переживал на наводки в проводах, при смене состояния кнопки – вряд ли там используется токовая петля, и обычные наводки могут при достаточной длине создать ложные срабатывания.

Насчет наводок – не соглашусь, нужно набрать от 1.1 до 1.9В разницы с землёй и подержать неизменно 2 такта минимум – как мне кажется, на 1-2 метре кабеля столько не набрать, не под ЛЭП же они играют.

Скорее дребез кнопок может помешать.

У меня набирались на 1,5 метрах – там же вход высокоомный. А с дребезгом там программная борьба. На килогерце мне кажется даже с использованием ардуино опрос написать сложно – даже на частоте 1 мегагерц сделать так, чтобы тысячу тактов занимал опрос кнопки мало реально)

Интересно, а источник наводок удалось найти?

Да, газовая плита, подключенная к бытовой электросети. Делал термометр с таймером обратного отсчёта для неё – на термодатчике были наводки, которые лечились или экранированием, или конденсатором по входу на АЦП, в моем случае. И это при том, что датчик был с сопротивлением где-то 20 – 30 килоом на 5 вольтах.

А если после вопроса в период ожидания зажать кнопку, в момент когда нужно нажимать кнопку она уже будет нажата, получается таким образом можно всегда отвечать первым?

(1) За нажатие считается смена разомкнута цепь -> замкнута.
Так что, нет.

Случай, который Вы предлагаете обработан будет так. Идет чтение вопроса, Игрок Х зажимает свою кнопку, это обрабатывается как попытка ответа в неположенное время и он штрафуется на секунду (его нажатия не участвуют в игре на это время). Когда ведущий дочитает вопрос и нажмет свою кнопку для приема ответов, то у Игрока Х зажата все еще кнопка (замкнутая цепь), но обрабатываются в игре только нажатия (1). Т.е. он не производит нажатий. Чтобы ему поучаствовать в игре, придется отпустить кнопку и зажать ее заново.

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

В общем лучше играть нормально ,чем заниматься попытками обмануть систему

До этого было указано, что можно делать несколько нажатий и будет засчитано первое.

Вероятно, я туманно написал. Имеется ввиду следующее. Всего 5 кнопок. На каждой итерации в программе проверяется щелкнула ли какая-то из них. Если щелкнуло более одной, то выбирается первая по ходу проверки. Но, весьма вероятно, что это редкая ситуация.

можно подключить вместо изначальной кнопки другой микроконтроллер

. эта ситуация будет освещена в Обязанностях ведущего. 🙂

О, тестеры подтянулись

покалечил всё-таки стол.

Во-во, кнопки сразу напомнили )))

Я помню, в глубокой юности меня однажды в клубе программистов попросили сделать для клуба программку для того, чтобы играть в “Брейн-ринг”, примерно такого же типа (кто быстрее нажал – высвечивается сигнал, что должна отвечать эта команда + некоторые добавки). Ну, почему бы не сделать, по тем временам эта была не такая простая задачка для начинающих, и был определенный почет за то, что сделаешь это.

Читайте также:  Конструктор осциллографа dso138

Но это была ошибка. Боже мой, я не мог отмыться потом еще долгое-долгое время.

Когда стали проводиться турниры с этой прогой (иногда за хорошие призы), то меня стали обвинять, что я встроил в программку какой-то код, который позволяет как-то делать так, что именно моей команде достается ответ. Понятное дело, точно определить, кто там первый, на глазок никто не мог. Как ни объясняй, как ни доказывай, никому ничего не докажешь! Я был первый, а прога показала, что нет. Как так-то? Это всё ты виноват!

Никогда, господа, никогда не делайте девайсы и проги для игр, подразумевающих неопределенность и азарт.

ваша задача решена и в хоккее, и в волейболе, и теннисе.

после каждого раунда обмен пультами

И кстати, проблему “гонок сигналов” никто не отменял. Это в обычных бытовых макро-ситуациях (вкл-выкл свет или типа того) меньше миллисекунды не имеют значения, а вот в этой конкретной ситуации (очень, очень большая важность минимальных различий между временами срабатывания) могут возникнуть вопросы. Киберспортсмены знают, что пинг +-20-30-40 мс может и не заметит обычный человек, но иногда это может влиять на качество реакции. Может, и 1 мс разницы в скорости срабатывания между разными пультами уже хватит, чтобы возникли упреки в том, что “тут дело нечисто, один пульт лучше других”. Следовало бы провести все же точный временной анализ схемотехники.

А нельзя сие сделать без Ардуино и программирования?

Типа один нажал – остальные уже не могут цепь замкнуть.

Сомневаюсь, что в старой игре Брейн-ринг знали об Ардуино.

Поначалу я думал о том, как бы обойтись без него. От логических вентилей я далеко не ушел. А их у меня нет, как и деталей на самостоятельное изготовление. Но я обязательно подумаю, как это все упростить. К тому же, на таких прототипах выявляется немало проблем, решение которых относительно не затратное. Намного сложнее исправлять ошибки в готовых минифицированных схемах. А вот когда логика будет отработана, можно попробовать отбросить все лишнее.

А какая вообще должна быть логика, когда можно начинать жать? Ну и что происходит – если с точки зрения системы обнаружено что пара человек нажала одновременно?

А какая вообще должна быть логика, когда можно начинать жать?

Подобно тому, как бегуны стартуют по выстрелу из пистолета, игроки здесь могут начинать нажимать кнопку ответа только после сигнала – загорания спец. лампы. Нажатия в другие промежутки времени считаются фальстартом и штрафуются.

Ну и что происходит – если с точки зрения системы обнаружено что пара человек нажала одновременно?

Это программно разрешаемая ситуация, сейчас устроено так, как описано здесь #comment_134018081. P.S. в техническом плане самая интересная ветка из этих комментариев.

В правилах такая коллизия не заложена?

Ну, сколько я смотрел “Свою Игру”, ни разу не видел, чтобы одновременные нажатия были.
Если говорить про физические нажатия, то в теории они возможны, в этом случае надо переигрывать вопрос или давать возможность тайно ответить игрокам. Но это теория.
На практике нужна система, разрешающая способность одновременности которой выше, чем реакция человека. У человека это порядка 1 мс, мне кажется (н-р 300 кадров секунду у пилотов). Для прототипа (я не специалист, дам грубую оценку) здесь ( https://www.microchip.com/wwwproducts/en/ATmega2560 ) указано, что у чипа 16 MIPS (16 миллионов инструкций в секунду). В программе код проверки нажатий это цикл для 5 кнопок (10 строк кода на Си), это, пусть будет, 1000 инструкций (вообще, надо разворачивать скомпилированный ардуино код, чтобы точно сказать, плюс надо учитывать остальной код). Время разрешения тогда 1.000 [инстр.]/16.000.000 [инстр./с]

50 мкс. Для человека с реакцией порядка 1 мс этого достаточно — не могут два человека с такой реакцией давать нажатия, разница времени между которыми порядка 50 мкс. “Одновременность” для людей порядка этой самой 1 мс.

Привет. Не работает код, не знаю в чем проблема. Хочу сделать себе примитивный привод для штор, чтобы засыпать в темноте, а просыпаться от лучей солнца.

Модули: Шаговый двигатель 28BYJ-48 с драйвером ULN2003; модуль времени ds1307; кнопка с фиксацией двухконтактная; arduino nano

Используемое программное обеспечение: arduino ide

Ожидания от конечного продукта: В определенное врея, чтоб мотор срабатывал на открытие, в определенное-на закрытие. Также, чтоб какое бы время небыло, при нажатии кнопки я мог открывать и закрывать шторы.

Можешь пожалуйста посмотреть в прошивке, что с ней не так, а то я совсем в программировании ноль

А если выделить общий пин для всех трёх кнопок параллельно уже существующим и повесить на него прерывание?

Логика такая, задан вопрос, разрешить ответы, есть ответ, проверка кто раньше нажал. Что-то типа этого? Код я посмотрел, ужаснулся и понял что мне до такого далеко:), но схематично представляю как это все работать должно

Связать механику с SIGame(это если что отличная реализация “своей игры” для пк с огромной базой пользовательских наборов вопросов) и получится просто идеально. Главная проблема в компьютерной игре как раз с нажатиями “кнопки”.

All-Audio.pro

Статьи, Схемы, Справочники

Брейн система своими руками

Но для некоторых видов игр не обойтись без специальной системы, которая будет управлять ходом игры. Вот в рамках курсового проекта решили попробовать сделать свою брейн-систему. До этого мы никогда не сталкивались с Arduino или чем-то аппаратным, но глядя на то, как друзья и знакомые в университете с легкость собирают устройства, захотелось попробовать и нам сделать что-то свое. Поскольку мы были достаточно далеки от этой темы, то предложение собрать брейн-систему подкинул наш руководитель, сказав, что это будет хорошим стартом для нас.

Поиск данных по Вашему запросу:

Дождитесь окончания поиска во всех базах.
По завершению появится ссылка для доступа к найденным материалам.

Перейти к результатам поиска >>>

ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: ВЕЧНЫЙ КАПЕЛЬНЫЙ ПОЛИВ СВОИМИ РУКАМИ СДЕЛАЙ И СЕБЕ ТАКОЙ

Контроллер кнопок для игры Brain Ring v2.0

Previous Entry Next Entry. Log in No account? Create an account. Remember me. Facebook Twitter Google. Comments 34 comments — Leave a comment. Надо немного переделать программу чтобы в качестве четырех кнопок использовались 4 USb-мыши.

Link Reply Thread. Я считаю это нецелесообразным, так как длина провода мыши менее 2 метров, а длина провода кнопки в существующей системе практически неограничена. Но если есть желание, то пожалуйста.

Исходные коды прилагаются. Link Reply Parent Thread. Альдору – респектище. Только вот как управлять компьютером без клавиатуры? Разве что USB-клаву юзать. А пока идёт игра, тебе ничего печатать скорее всего не придётся. Link Reply Parent Thread Expand. Большое спасибо! Как раз эта проблема сейчас остро стоит, а самому писать было лень :. Себестоимость её оказалась равна всего рублям. И компьютер с монитором тоже в эти рублей входят? Компьютер или ноутбук найдётся практически у любой команды.

А еще если к тому же компьютеру в качестве кнопок две USB-мышки подключить, то получатся те же рублей, только ничего паять и разбирать не надо. Дело втом, что мышей с хвостом в 5 метров я ещё не встречал а иначе всем придётся очень кучно сидеть , да и потом на нормальную брейновскую кнопку это не похоже. К тому же, за рублей в моей системе вы получаете 4 кнопки а не 2. Не совсем представляю, как будут работать 4 мыши одновременно, и как отслеживать, с какой из них пришёл клик.

Это придётсяв мышиный драйвер лезть, наверное, а у меня не так много свободного времени. Самый большой интерес представляет как раз программка. Я же дал ссылку на страницу, откуда прогу можно скачать. В папку, в которую устанавливается программа, копируются все исходники. Да, дело стоящее. Правда на последнем турнире в Орле такая ну, похожая система на нас обиделась и пришлось хлопать ;. Можно удешевить ещё больше. Понадобится разъём DSUB9-“мама” рублей 10 , корпус к нему ещё столько же и те же самые провода и кнопки.

Компьютер должен быть с COM-портом. Естественно, потребуется переделка программы. У обычного COM-порта 3 линии на выход и 5 на вход, он по стандарту допускает закорачивание входов и выходов в компьютере стоят токоограничивающие резисторы.

Программировать достаточно просто, особенно если использовать компонент MSComm. Там была функция, получающая управление при изменении статуса входных линий. Сейчас, к сожалению, у меня мало времени, и сам я испытать такую штуку не могу, но в том, что она работоспособна, не сомневаюсь.

Автору поста – Респект и большое-пребольшое спасибо : Я ссылку к себе утащила, чтобы потом не потерять :. Tags апелляции апелляционное жюри база вопросов валеты видео внеклассное чтение горда: Иркутск города: Sapere audeосква города: Актау города: Алматы города: Алушта города: Анапа города: Архангельск города: Астана города: Астрахань города: Баку города: Батуми города: Брест города: Брно города: Брянск города: Великие Луки города: Великий Новгород города: Вена города: Вильнюс города: Винница города: Витебск города: Владивосток города: Владимир города: Волгоград города: Вологда города: Воронеж города: Выборг города: Выборг.

Полёт нормальный синхроны: 16 лет. Кубок дружбы синхроны: Знатокиада. Пас синхроны: Игра В. Кубок Кубков синхроны: Игра в бисер синхроны: Игра в классики синхроны: Игра в кошки-мышки синхроны: Играй для Жизни синхроны: Играй долго и процветай синхроны: Из Минска с любовью синхроны: Индивидуальное первенство синхроны: Интеллектуальная ворона синхроны: Интеллектуальный марафон синхроны: Интеллектуальный спорт синхроны: Каре нестандартных турниров синхроны: Карельские петроглифы синхроны: Каспийский бриз синхроны: Киевские кручи синхроны: Кинешемская гладь синхроны: Киноасинхрон синхроны: Киновояж синхроны: Кинолига синхроны: Ключи к мартобрю синхроны: Коломенский кремль синхроны: Конец прекрасной дружбы синхроны: Коробка шоколадных конфет синхроны: Короли синхроны: Короли дамы валеты синхроны: Красная книга синхроны: Краснодар – FM синхроны: Краснодар – XXI синхроны: Крутое пике.

Папичева синхроны: Синхрон памяти Сергея Некрасов синхроны: Синхрон простых вопросов синхроны: Синхрон с человеческим лицом синхроны: Синхрон северных стран синхроны: Синхрон средней сложности синхроны: Синхрон студ.

Плеханова турниры: Девятый блин турниры: Дзержинский марафон турниры: Доп. Powered by LiveJournal. Designed by yoksel.

Полезности: Брэйн-система своими руками

Брейн ринг на 2 полевиках. Собираю простейшее устройство для игр типа брейн-ринг, своя игра, к одному. Решил не Контроллеры для Брейн-ринга Добрый вечер. Я работаю преподавателем программирования в школе доп. Система для Брейн-Ринга Привет всем!

Сотрудники ДПС ГИБДД СЗАО провели брейн – ринг по ПДД для школьников и их родителей

Истороия такая – решили у нас проводить Брейн-ринг. Почему нет? Но там нужен учет времени, пульт ведущего, кнопки для играющих команд Ну и – Интернет мне в руки. Нашел, разумеется немало предложений. От “сделай сам” до “дай 23 рублей”. Вы будете смеяться, но я остановился на “сделай сам”. При тестировании модуля всё было нормально.

Читайте также:  Измеритель емкости электролитических конденсаторов с тестом на утечку

На улице Свободы сыграют в «Брейн-ринг»

Русская поддержка phpBB. Если делать свою брейн-свояк-хамса-систему Форум для сообщений о купле-продаже, услугах, а также для поиска информации. Предлагайте, покупайте, спрашивайте и отвечайте. Флуд не приветствуется.

Создание беспроводной системы для игры в брейн-ринг.

Switch to English регистрация. Телефон или email. Чужой компьютер. Брейн-ринг и компания: простая электроника. Группа для создания и обсуждения электронных схем для проведения интеллектуальных игр. Предлагаю объединить усилия и разработать схему, легко повторяемую и из доступных компонентов.

Система для Брейн-ринга

Москва, Метро Третьяковская Малый Толмачёвский переулок д. Имитация популярной телевизионной программы, во время которой ребята могут блеснуть своими знаниями и эрудицией. В игре принимают участие 2 или 3 команды. У каждой команды — своя кнопка, при нажатии на которую раздается звонок и зажигается зеленая, красная или синяя лампа. Ведущий задает вопросы, кто первым знает ответ — нажимает кнопку и команда дает свой ответ. Если ответ неверный, право хода переходит другой команде. В стоимость входит: работа одного ведущего, аренда система Брейн-Ринг 2 кнопки , согласование вопросов с Заказчиком.

Switch to English регистрация. Телефон или email. Чужой компьютер.

Войдите , пожалуйста. Хабр Geektimes Тостер Мой круг Фрилансим. Войти Регистрация. Так получилось, что одним из моих увлечений являются интеллектуальные игры. И вот, однажды мне захотелось сделать своими руками систему для этой игры.

Автор: admin от , , посмотрело: Категория: Программирование , Сделай Сам. Объявляется тема, состоящая из пяти вопросов. Вопросы идут по возрастанию сложности и соответственно оцениваются — от 10 до 50 баллов. Ведущий объявляет номинал вопроса и начинает его зачитывать.

Участниками игры стали ученики 4 классов. Пожелав безопасных дорог и победы в игре, он дал старт началу брей-ринга. Первыми приступить к проверке знаний получили возможность учащиеся четвёртых классов. Каждая команда внимательно слушала задания ведущего, и активно обсуждала ответы между своими участниками.

Полезности: Брэйн-система своими руками

от Дмитрия Смирнова (Зеленоград)

Предисловие

Брейн систему наш клуб хотел купить уже тогда, когда я только пришёл в ЧГК, а было это в далёком 1998 году. Но, видно, какое-то ужасное древнее проклятье, проклятье вселенского рпасзидйяства, висело над нашим клубом. За 8 лет мы так и не купили «кнопку». И вот, в один прекрасный момент я понял, что раз купить кнопку нам не суждено, её надо сделать. А так как денег у нас нет, то сделать её надо очень дешёвой. Свободного времени у меня весьма немного, поэтому я решил реализовать всю логику работы системы в виде программы. Это значительно ускорило разработку и удешевило систему (при условии наличия компьютера).

Описание

Система состоит из программы, и простенького устройства, подключаемого к компьютеру к порту PS/2 вместо клавиатуры. Может обслуживать до 4-х кнопок и работать в режимах «Брейн-ринг» и «Своя игра». Программа написана на MSVС++ и распространяется вместе с исходными кодами, при желании Вы можете её дорабатывать.

Запчасти

Немного поковырявшись в ящике со старым компьютерным барахлом, я нашёл вполне рабочую клавиатуру. Это была, пожалуй, самая дорогая запчасть для будущей «кнопки». Остальные детали были куплены в ближайшем хозяйственном магазине. Итак, список запчастей:

Старая клавиатура (подойдёт даже самая дешёвая за 100 рублей) с разъёмом PS/2

20 метров медного двужильного кабеля

4 кнопки для звонка

4 штекера «тюльпан»

Разъёмы для подключения этих штекеров

Небольшая пластиковая или металлическая коробочка (я использовал коробку из под чая

Помимо этого понадобится паяльник, припой, прямые руки и полтора часа свободного времени.

    Аккуратно раскрутите клавиатуру, снимите крышку и вытащите прозрачные пластиковые листы с контактными площадками. Всё это нам не понадобится. Из всей клавиатуры нам понадобится только вот такая плата с припаянным к ней проводом. Будьте осторожны, не оторвите припаянный к плате провод.

    Нащупываем контакты для кнопок

    Обратите внимание на ряд контактов. Именно они-то нам и понадобятся. Всё что нам нужно, это найти 4 комбинации контактов соответствующие 4 буквам/цифрам. Для того чтобы их найти возьмите кусочек провода длиной около 20 см., подключите провод идущий от платы вместо вашей клавиатуры к компьютеру, откройте текстовый редактор и, соединяя различные контакты на плате, смотрите что будет печататься. Желательно найти такое сочетание, чтоб один контакт для всех комбинаций был общим (так будет меньше возни с паяльником). Найденные контакты припаяйте к разъёмам.

    Поместите всё это в пластиковую коробку, соберите кнопки. Вот и всё, готово. Не знаю что собрали вы, а у меня получился вот такая вещь.

    Подключение и настройка программы

    В общем я старался сделать прогу как можно более простой в управлении. Тем не менее хочу дать несколько комментариев к программе.

    Программа может работать в двух режимах: «Брейн-ринг» и «Своя игра»

    Нажатия на кнопки по сути являются нажатиями на клавиши клавиатуры. Т.к. собранная вами система может использовать клавиши отличающиеся от моих, то эти клавиши можно настроить. Для этого поместите курсор в соответствующее поле и нажмите кнопку.

    В нашем клубе в брейн-ринг зачастую одновременно играют более двух команд, система позволяет делать и это.

    Если что-то непонятно, присылайте Ваши вопросы автору программы Дмитрию Смирнову.

    Система «BrainSystem START» Базовый комплект на 4 кнопки

    Брэйн-система начального уровня «BrainSystemSTART» на 4 команды. Предназначена для проведения интеллектуальных игр, в которых требуется определение команды или игрока, которые первыми нажмут кнопку: «Брэйн ринг», «Своя игра», «Эрудит-квартет», викторины и т.д.

    Система очень проста в обращении и имеет следующие возможности: отсчет основного и дополнительного времени от 3 до 99 секунд, регистрация фальстартов, блокировка кнопок игроков. Все настройки осуществляются на удобном двухстрочном дисплее с подсветкой. Нажатия кнопок сопровождаются световыми и звуковыми сигналами.

    Каждый пульт имеет устойчивый к многократным изгибам провод длиной 10 метров, антивандальную кнопку, надежные металлические разъемы.

    Частота опроса кнопок — 0,01 секунды.

    Система комплектуется оригинальной световой стойкой, которая дублирует звуковые сигналы, а также показывает цветом, какая из команд нажала кнопку.

    Питание системы осуществляется от любого порта USB, либо от розетки 220 вольт, через входящий в комплект сертифицированный адаптер. Это позволяет использовать систему где угодно: в поезде, турпоходах и т.д.

    Гарантия производителя 1 год. В случае поломки — бесплатный ремонт или замена.

    Дополнительно можно приобрести: удлинители пультов на 5, 10, 15 метров, световые шары или стойки.

    6 отзывов на Система «BrainSystem START» Базовый комплект на 4 кнопки

    Интеллектуальный клуб ТюмГУ «IQ» – 06.12.2016 :

    Интеллектуальный клуб ТюмГУ «IQ» благодарит компанию «ИГРА-ЭКСПРЕСС» и её основателя Андрея Светлакова за качественное оборудование, с которым сотни человек без помех почувствовали настоящий азарт борьбы и напряжение Брейна!
    Впервые протестировали системы на IV этапе Премьер-лиги. Никто не возмущался, что у него не нажимается кнопка, у ведущих не сбивался отсчёт времени, а лампочки загорались вовремя. Первокурсники не узнали, что значит «играть на хлопках». Идеальный этап с идеальными системами .

    Сергей Изотов, руководитель клуба знатоков «Эврика», село Приволжье, Самарской области. – 18.03.2017 :

    Система великолепна! Просто прелесть! Много эффектнее смотрится с шарами, повышается зрелищность. Доступно составленная инструкция позволяет разобраться в настройках даже «чайнику»! Спасибо изготовителям!
    Мы проводили у себя «Свояк» молодёжный, испробовали систему в боевых условиях: и на двух кнопках, и на трёх, и на четырёх. Супер! Было дело — мы на хлопках играли, потом появилась система с блокиратором фальстарта, но то, что сейчас — это, как говаривал Леонид Слуцкий, космос! Спасибо ещё раз!

    Александр Волков, с.Карпогоры, Архангельская область. – 01.04.2017 :

    Брейн-системой пользуюсь уже три года, проводя игры в местном ДК. Свой опыт работы с ней постараюсь изложить в плюсах – минусах.
    Плюсы:
    — удобство работы с производителем. Легко связаться, доступно и качественно проконсультируют, найдут приемлемый вариант доставки;
    — хорошее соотношение цены и качества;
    — брейн-система удобна в обращении;
    — надежность. За время использования не было никаких сбоев или поломок;
    — хороший дизайн
    Минусы:
    — нет возможности отключить сигнал на последние пять секунд. Система подает сигналы последние пять секунд игрового времени. Это не всегда нужно;
    — если возможно, то хорошо бы иметь возможность регулировки громкости сигналов.
    В целом оцениваю работу системы положительно. Брейн-системой я доволен, спасибо большое!

    От производителя: В новой версии системы сигнал на последних 5 секундах уже можно отключить.

    Владислав Акимов, клуб Интеллектуальных Игр СКФУ, г.Ставрополь – 04.04.2017 :

    Отличное техническое решение для всех любителей поиграть в интеллектуальные вещи! Как в кругу своих друзей, так и на официальном мероприятии. Неброский, стильный дизайн позволяет установить brainsystem практически на любой стол, а продуманный набор встроенных функций открывает широкий простор для выбора во что поиграть!
    Дебютом заказанной нами системы стал Кубок Северо-Кавказского федерального университета по интеллектуальной викторине «Своя Игра». Игра собрала несколько десятков человек, по достоинству оценивших техническое новшество. Так как система достаточно проста в настройке, никаких сбоев в работе не возникало, звуковой сигнал всегда оставался громким и четким,а светодиодное табло охотно отзывалось ярким светом на нажатие кнопки!

    Анна Павлова., учитель начальных классов, г.Краснодар. – 25.04.2017 :

    Осенью прошлого года я приобрела в собственное пользование «брэйн-систему». А чуть позже и игровой волчок. Все оборудование покупалось для возможности проведения интеллектуальных игр с классами малой комплектации (10-12 чел.) Практически за весь учебный год мы играли в различные интеллектуальные и развлекательные игры (угадай мелодию). Состав команд так же был разный (от 2 до 4 команд одновременно). Системой очень довольна. Благодаря ей, возможность проведения игр становится настоящей, страсти кипят… А истинная цель, которую я преследовала — повышение интереса и получение новых знаний — реализуется каждую игру. Наши интеллектуальные игры стали уже традиционными, а совсем недавно у нас прошли новые игры: «Семейный брейн-ринг», где встречались команды в составе родителей и детей. И в каждом классе шла настоящая подготовка-родители читали книги, дети приносили энциклопедии, рассматривали картинки, обменивались впечатлениями. (игры состоялись 12 апреля, тематика их была связана с космосом).Сейчас я готовлю детей самостоятельно работать с системой, и быть ведущими. Благодаря такому оборудованию мы делаем игры интереснее, а дети начинают интересоваться не только компьютерными играми. Спасибо!

    Алексей Рогачев, Лига интеллектуальных игр, г.Сыктывкар – 11.05.2017 :

    Наш клуб приобрел два экземпляра брейн-системы несколько лет назад. Фактически мы приобрели первые «промышленные» образцы. В этом году клуб приобрел еще один комплект системы для нашего ухтинского филиала. За это время (не менее 3 лет) системы показали свою эффективность и износоустойчивость. На них были проведены школьные чемпионаты Коми, городские турниры и тренировки. Как кнопочник могу свидетельствовать, что нажатие на кнопку осуществляется плавно и при небольшой практике вполне четко определяется механика нажатия, которая со временем не подводит. Кнопка не меняет люфт и не преподносит сюрпризов. Настройка системы интуитивно понятна и занимает немного времени буквально минуту (в зависимости от игры).

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...
    Adblock
    detector