Полезности: Брэйн-система своими руками
от Дмитрия Смирнова (Зеленоград)
Предисловие
Брейн систему наш клуб хотел купить уже тогда, когда я только пришёл в ЧГК, а было это в далёком 1998 году. Но, видно, какое-то ужасное древнее проклятье, проклятье вселенского рпасзидйяства, висело над нашим клубом. За 8 лет мы так и не купили «кнопку». И вот, в один прекрасный момент я понял, что раз купить кнопку нам не суждено, её надо сделать. А так как денег у нас нет, то сделать её надо очень дешёвой. Свободного времени у меня весьма немного, поэтому я решил реализовать всю логику работы системы в виде программы. Это значительно ускорило разработку и удешевило систему (при условии наличия компьютера).
Описание
Система состоит из программы, и простенького устройства, подключаемого к компьютеру к порту PS/2 вместо клавиатуры. Может обслуживать до 4-х кнопок и работать в режимах «Брейн-ринг» и «Своя игра». Программа написана на MSVС++ и распространяется вместе с исходными кодами, при желании Вы можете её дорабатывать.
Запчасти
Немного поковырявшись в ящике со старым компьютерным барахлом, я нашёл вполне рабочую клавиатуру. Это была, пожалуй, самая дорогая запчасть для будущей «кнопки». Остальные детали были куплены в ближайшем хозяйственном магазине. Итак, список запчастей:
Старая клавиатура (подойдёт даже самая дешёвая за 100 рублей) с разъёмом PS/2
20 метров медного двужильного кабеля
4 кнопки для звонка
4 штекера «тюльпан»
Разъёмы для подключения этих штекеров
Небольшая пластиковая или металлическая коробочка (я использовал коробку из под чая
Помимо этого понадобится паяльник, припой, прямые руки и полтора часа свободного времени.
Аккуратно раскрутите клавиатуру, снимите крышку и вытащите прозрачные пластиковые листы с контактными площадками. Всё это нам не понадобится. Из всей клавиатуры нам понадобится только вот такая плата с припаянным к ней проводом. Будьте осторожны, не оторвите припаянный к плате провод.
Нащупываем контакты для кнопок
Обратите внимание на ряд контактов. Именно они-то нам и понадобятся. Всё что нам нужно, это найти 4 комбинации контактов соответствующие 4 буквам/цифрам. Для того чтобы их найти возьмите кусочек провода длиной около 20 см., подключите провод идущий от платы вместо вашей клавиатуры к компьютеру, откройте текстовый редактор и, соединяя различные контакты на плате, смотрите что будет печататься. Желательно найти такое сочетание, чтоб один контакт для всех комбинаций был общим (так будет меньше возни с паяльником). Найденные контакты припаяйте к разъёмам.
Поместите всё это в пластиковую коробку, соберите кнопки. Вот и всё, готово. Не знаю что собрали вы, а у меня получился вот такая вещь.
Подключение и настройка программы
В общем я старался сделать прогу как можно более простой в управлении. Тем не менее хочу дать несколько комментариев к программе.
Программа может работать в двух режимах: «Брейн-ринг» и «Своя игра»
Нажатия на кнопки по сути являются нажатиями на клавиши клавиатуры. Т.к. собранная вами система может использовать клавиши отличающиеся от моих, то эти клавиши можно настроить. Для этого поместите курсор в соответствующее поле и нажмите кнопку.
В нашем клубе в брейн-ринг зачастую одновременно играют более двух команд, система позволяет делать и это.
Если что-то непонятно, присылайте Ваши вопросы автору программы Дмитрию Смирнову.
Источник
Система для «брейн ринга» и «Своей игры»
Работая в учебном заведении неоднократно сталкивался с проблемой проведения всевозможных интеллектуальных игр, таких как «своя игра» и «Брейн ринг». Таким образом возникла идея придумать систему для определения «первой нажатой кнопки».
Основным критерием выбора была дешевизна и простота исполнения для того чтобы еще можно было применить создания в работе кружка учебного заведения. После недолгого перерывания просторов интернета была найдена программа BrainSystem (ссылка далее)
Необходимые инструменты:
• Паяльник
• Термопистолет
Материалы для изготовления:
• Старая клавиатура
• Разъемы «тюльпан» (папа-мама)
• Коробка для корпуса
• Кнопки без фиксации или далее будет описано как самостоятельно сделать
Которая использует клавиши клавиатуры для игры. Разуемся в рамках аудитории использовать одну клавиатуру для 3-4х учеников неудобно и не практично, поэтому решил пожертвовать старой клавиатурой с разъемом PS/2 в которой работали не все клавиши.
После препарирования клавиатуры в руках у нас остается вот такая плата с микросхемой и целым рядом контактов. Справа контакты зачищены под пайку, слева в первозданном состоянии.
Кнопки для игры
Осталось сделать кнопки для игры. И нас есть три разъема «тюльпан папа» с проводами и можно к ним припаять купленные кнопки для дверных звонков. Но в связи с тем, что у нас работа бюджетная и творческая кнопки делаем своими руками.
Для этого нам понадобиться:
• Кнопка тактовая – 3шт. (можно выпаять из старой аппаратуры)
• Диск CD/DVD – 6 шт.
• Крышки от баллончиков с краской или подобные – 3шт
• Кусочки пластика 2х2см
• Разъем «тюльпан» с проводом -3шт.
Источник
Кнопки для брейн ринга своими руками
Activist
Группа: Участник
Сообщений: 152
Регистрация: 09.08.2005
Пользователь №: 12671
Как уже понятно из сабжа, я хочу собрать систему для игры в Брейн-ринг (Правила на вики). Сразу оговорюсь, что у меня нет опыта пайки плат своим руками/программирования микроконтроллеров на ассемблере и прочих навыков сбора микросхем из трёх проволочек, розетки от чайника и старой шариковой ручки=)
Соответственно, требования приблизительно такие
-питание от USB
-не менее 4 разъемов для подключения игровых кнопок (провод до них — несколько метров, около пяти), тип штекера — произвольно.
-на самой системе — диоды для индикации фальстартов/отвечающей команды и т.п.
-несколько кнопок — включение/сброс/выставление таймера на 5/20/60 секунд и т.п.
-зуммер.
Желательно, чтобы весь это функционал можно было продублировать софтом на компе при подключении по USB (но не критично).
Я видел в сети варинаты сделать такую систему на основе arduino — Brainuino.ru, но для меня описание на их сайте, честно говоря, ровным счётом ничего не говорит. Плюс, насколько я понял, их система не умеет общаться с компом. Видел варинат на основе платы, выдранной из старой клавиатуры (тут логика действий понятна, но модифицируемость и настраиваемость системы низкие). Видел вариант просто электрической схемы такой системы, но в ней, как мне кажется, гибкости совсем нет.
Подскажите, как это всё можно реализовать? И какой опыт в этом деле требуется от того, кто всё это будет программировать и собирать?
В принципе, меня привлекает вариант на базе какого-нибудь микроконтроллера (того же arduino), но я заведомо не справлюсь самостоятельно с выбором необходимого железа/разъёмов/дополнительных плат/etc.
Источник
Контроллер кнопок для игры 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.
Источник