- PVSM.RU - https://www.pvsm.ru -

(Не)колхозная система для кнопочных игр

Заранее скажу, что все исходники лежат на Github [1]. За точными техническими деталями — туда, а здесь скорее история и общие соображения.

Идея

После поездки на СтудЧР наша команда как-то вдруг заинтересовалась кнопочными играми по типу «Эрудит-квартета», «КИнСбФ» и простого свояка. Следовательно, был повод потренировать кнопочки, и как раз в это время я закончил слушать курс «Основы программирования микроконтроллеров» на физфаке. Звёзды сошлись идеально, чтобы попробовать сделать свою брейн-систему.

Первые прототипы

Разумеется, началось всё с заказа светодиодов, кнопок и китайского клона Arduino. Первый прототип явно не мог бы использоваться в реальной игре — кнопки игроков находились прямо на макетной плате, там же были светодиоды, резисторы, а заодно и кнопка ведущего. Но proof of concept был получен, и через какое-то время данная схема почти в неизменном виде обросла корпусом и нормальными кнопками.

Скорее макет, чем система

Скорее макет, чем система

В корпусе от умершего модема, купленного на Авито за 200 рублей, все разъёмы держались на толстом слое клея, подпорках из пластиковых карт и желании похвастаться перед командой. У ведущего была всего одна кнопка, которая использовалась и для сброса системы, и для подачи сигнала «можно» игрокам. Наличие фальстартов переключалось маленьким слайдером, приклеенным к корпусу. Функции отсчёта времени и какого-то переключения между режимами не было.

А вот кнопки сразу вышли неплохо — для них почти идеально подошли корпуса от TV-розеток, купленных в Ашане по 39 рублей за штуку. Видимо, даже сам Ашан был в шоке, потому что на сайте этих розеток не нашлось. Нужно только рассверлить отверстие в крышке под размер вот этой китайской кнопки [2] и провести кабель с двумя жилами — кнопка будет замыкать один из пинов Arduino на землю.

Первая более-менее рабочая система с очень неудобными коннекторами для кнопок

Первая более-менее рабочая система с очень неудобными коннекторами для кнопок

Кустарные методы

Первые успехи настолько меня ободрили, что показалось возможным сделать в таком же корпусе из-под модема гораздо более сложную систему — уже на восемь игроков, с отдельным пультом ведущего и дисплеем. Там же я упоролся в модульность и планировал подключать к системе две отдельные лампы через разъём RJ-45.

Восемь кнопок игроков, восемь светодиодов, сиреневые лампы «можно», две-три кнопки ведущего и экранчик — это уже сильно больше пинов, чем есть на китайской копии Arduino Nano. А что нужно сделать, если микроконтроллер за сто рублей не справляется с вашей задачей? Правильно, купить ещё один такой же.

LGT8F328P общались между собой через линии TX/RX; одна из них контролировала экранчик, менюшку, лампочки и пульт ведущего, а другая целиком посвятила себя считыванию сигналов с кнопок игроков. Ну и светодиодики для фальстартов на себя взяла. И динамик из старых наушников.

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

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

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

Пульт ведущего

(Не)колхозная система для кнопочных игр - 4

Пульт ведущего был сделан из интернет-розетки — во-первых, это какой-никакой корпус, а во-вторых, там есть разъём RJ-45, который надёжно закреплён и никуда не денется, в отличие от разъёмов на моих первых поделках. Туда же пошли три кнопки от старой клавиатуры, маленький OLED-дисплей 128*64 и светодиодик, дублирующий сигнал «можно», который подаётся игрокам.

Земля, ещё три линии на дисплей, три контакта от кнопок и светодиод — итого как раз восемь проводочков, плотно упакованных в патч-корд. Жаль только, что для крепления дисплея мне до сих пор не пришло в голову ничего умнее, чем закрепить его на двусторонний скотч, который идёт в комплекте с розеткой. Если бы не это, пульт был бы даже в какой-то мере красивым… снаружи. Внутри ужасный клубок проводов, который я боюсь лишний раз открывать.

Принятие

Чтобы вся система не была похожа на такой же клубок, решил спроектировать и заказать печатную плату. Использовал EasyEDA и китайский магазин на Aliexpress. Они делают партиями по 5 штук, отсюда и родилась идея сделать систему не только для себя. Минимальный размер платы — 100*100 мм. Можно сделать меньше, но стоимость заказа не изменится. В этот размер легко вписались всё те же два микроконтроллера, восемь джеков под кнопки, круглый разъём под питание и динамик. Пульт ведущего всё так же подключался через RJ-45 и никак не изменился.

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

Для самих ламп использовал светодиоды из подсветки старой клавиатуры. Они маленькие и довольно яркие. Докинул к ним резисторов и готово. В квадрат 100*100 помещается пять таких ламп. Значит, в одном заказе будет 25 штук. Есть у меня идея, что сделать с избытком, но это как-нибудь потом.

Незамысловатый корпус был, конечно же, напечатан на 3D-принтере. Верхняя часть — это коробка без дна с отверстиями под все необходимые разъёмы. В верхней части есть пазы для ламп и отверстия для их подключения. Лампы туда можно просто приклеить. На дно коробки встаёт основная плата, после чего дно можно прикрутить к верхней части винтами М3. А можно и не прикручивать, оно в принципе и так держится.

(Не)колхозная система для кнопочных игр - 5

Сами кнопки претерпели минимальные изменения: в них вместо дырки под провод был вставлен вот такой разъём [3] «мама» под 3.5 мм jaсk. В разъёме три пина: земля, контакт кнопки и… почему бы не вставить светодиод? Тут я, впрочем, ошибся и провёл к плате не те контакты — получилось, что кнопка замыкает сразу два, и светодиод повесить уже не на что. В будущих версиях исправлю, а сейчас, если очень захочется светодиод, можно использовать четырёхпиновый коннектор и немного лишних проводов.

(Не)колхозная система для кнопочных игр - 6

Код

Всё это счастье работало и весело светило лампочками, но ему ещё предстояло научиться играть в свояк. Менюшка почти без изменений перекочевала с кустарного прототипа, а вот логику игры пришлось переписать. Точный отсчёт времени и отслеживание нажатий ведутся на “Slave” микроконтроллере, а “Master”, на котором висит пульт ведущего, отвечает за менюшку и командует: включи фальстарты! Добавь 20 секунд времени! Не пищать!

Оказалось также, что у всех подвидов свояка очень похожая логика, и с ними справляется одна и та же функция, если правильно менять параметры. Соответственно, у системы три режима: КВРМ — просто таймер для популярной игры из трёх слов, ЭК — покрывает все известные мне виды «своей игры» и КИнС — для игры из двух слов, пишущихся через дефис.

Итоговый результат

Система с высоты ласточкиного полёта

Система с высоты ласточкиного полёта

Внезапно, всё это действительно работает и даже выглядит довольно прилично. Есть поддержка разных режимов игры, гибкий контроль времени, и поддержка восьми игроков одновременно.

Надеюсь, что система будет полезна мне (на тренировках команды), в МГУшном клубе (а почему нет?), и возможно, кто-то ещё захочет себе такую же.

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

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

Автор: Meshok-216239

Источник [4]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/chgk/434056

Ссылки в тексте:

[1] Github: https://github.com/Meshok-216239/System-216239/

[2] кнопки: https://aliexpress.ru/item/1005005279679347.html?spm=a2g2w.orderlist.0.0.5a0e4aa6FsZgxq&sku_id=12000032474095078

[3] разъём: https://aliexpress.ru/item/1005005562420070.html?spm=a2g2w.orderdetail.0.0.4e954aa69QeHHR&sku_id=12000033552388965&_ga=2.90676442.1132673068.1760860464-1429100693.1733035556

[4] Источник: https://habr.com/ru/articles/958330/?utm_source=habrahabr&utm_medium=rss&utm_campaign=958330