“Кнопкова стіна”: Як я створив український аналог Batak на ESP32

 Від ідеї до реалізації

Після успішного запуску атракціону “Лазерний лабіринт” та низки проєктів з автоматизації, я шукав новий виклик. Хотілося створити щось динамічне, конкурентне і технічно досконале.

Так народилася ідея створити власний аналог відомого тренажера Batak (або Reaction Wall). Це вертикальна панель із кнопками, які загоряються у хаотичному порядку, і по яких треба бити на швидкість. Такі пристрої використовують гонщики Формули-1 та боксери для тренування периферійного зору та реакції.

Але існуючі на ринку готові рішення мали два суттєві недоліки: висока ціна та закрита архітектура, яку неможливо змінити під себе.

Моя мета була амбітною: розробити з нуля інтерактивний атракціон “Кнопкова стіна”, який:

  • Працює на сучасному залізі (ESP32).
  • Має унікальні ігрові режими та українську озвучку.
  • Інтегрований у веб для збору статистики.
  • Витримує нещадну експлуатацію на івентах.
Макет атракціону
Макет атракціону
Технічна концепція

Головним принципом проєктування була масштабованість і модульність рішення. Ось основні характеристики:

  • Мозок: Мікроконтролер ESP32. Його потужності вистачає для обробки натискань без затримок, керування світлом, веб-сервером та логікою гри одночасно.
  • Кнопки: Використав великі аркадні кнопки (Arcade Buttons). Вони розраховані на велику кількість натискань. Всього задіяно 32 ігрові кнопки (по 16 на команду) та 2 сервісні (старт/вибір).
  • Підсвітка: Використана штатна підсвітка кнопок. Це спрощує монтаж і заміну в разі поломки.
  • Корпус: Чорне ламіноване ДСП. Цей матеріал виглядає стильно, “по-дорослому” і не потребує фарбування, а також при необхідності легко брендується. Габарити конструкції: висота — 1000 мм, довжина — 3400 м,; товщина — 70 мм.
  • Живлення: Система живиться від єдиного блоку 220В -> 12В. Це забезпечує стабільну яскравість кнопок та роботу всієї периферії.
Архітектура електронної системи: Як підключити 70 ліній до одного чіпа?

Тут починається найцікавіше для інженерів. ESP32 має обмежену кількість GPIO (портів введення-виведення). Арифметика мого проєкту така:

  • 32 кнопки (вхід)
  • 32 лампочки підсвітки (вихід)
  • Сервісні кнопки + управління табло + аудіо.
    Разом — понад 70 ліній. Підключити це напряму до одного контролера фізично неможливо.

Рішення: Розширення портів

Я застосував архітектуру з використанням мікросхем розширення портів (MCP23017). Це дозволило додати та задіяти ще 64 додаткових портів (входів/виходів).

  1. Для входів (кнопок): Використовуються 16-бітні розширювачі портів вводу/виводу. ESP32 зчитує стан усіх 32 кнопок за лічені мікросекунди через кілька проводів.
  2. Для виходів (світла): Аналогічні мікросхеми, які керують блоками реле для вмикання 12-вольтової підсвітки.

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

Контроллер з модулями розширення портів
Контроллер з модулями розширення портів
Логіка гри: Більше ніж просто “бий-біжи”

Щоб гра не набридала, я запрограмував кілька режимів з різною механікою:

  1. Режим “Спринтер” (Random): Класика. Кнопки загоряються хаотично. Хто перший натиснув свою кнопку — отримав очко та одночасно запустив переключення у суперника наступної кнопки. Чиста швидкість.
  2. Режим “Снайпер” (Точність): Тут не можна помилятися. Натиснув правильно — плюс бал. Поспішив або схибив — мінус бал. Це змушує гравця балансувати між швидкістю та уважністю.
  3. Режим “Грабіжник” (Steal All): Найазартніший рівень. Якщо ти не встигаєш натиснути свою кнопку швидше за суперника, твоє очко автоматично переходить супернику. Тут треба активно захищати свій результат.

Фішка проєкту: Українська душа

Я відмовився від стандартних “пищалок”. Записав власну українську озвучку. Апарат коментує гру, оголошує переможця різними репліками та підбадьорює гравців. Це створює зовсім іншу атмосферу!

Веб-інтерфейс та Телеметрія

Оскільки “серцем” системи є ESP32, було б не правильно не використати його Wi-Fi можливості. Я розробив вбудований веб-інтерфейс, який перетворює налаштування та обслуговування атракціону на задоволення.

Через “адмінку” (з телефону або ПК) можна:

  • Оновлювати прошивку (OTA): Заливати нові версії коду “по повітрю”, не розбираючи корпус.
  • Моніторити стан: Якість Wi-Fi, uptime, MAC-адресу та ID пристрою.
  • Аналізувати статистику: Бачити, які рівні найпопулярніші та скільки ігор зіграно.
  • Змінювати конфігурацію: Час гри, складність, поріг перемоги — все налаштовується без перепрошивки.

Крім того, атракціон вміє відправляти телеметрію на зовнішній сервер. Це дозволяє мені віддалено бачити зведену статистику по всіх моїх пристроях за будь-який період.

Механіка та конструкція

Спроєктувати “стіну” — це пів біди. Треба було її грамотно розкроїти. Тут допоміг друг: ми оптимізували карту розкрою ДСП так, щоб конструкція вийшла максимально жорсткою і при цьому економною.

Зважаючи на довжину 3,4 м та публічну експлуатацію, враховано:

  • Вандалостійкість (удари бувають дуже сильними).
  • Зручний сервісний доступ до “нутрощів”.
  • Приховане прокладання кабелів.

Проблема вібрацій: Основна складність — закріпити кнопки та дроти так, щоб від постійної вібрації нічого не відвалилося. Звичайні роз’єми тут можуть підвести. Довелося приділити особливу увагу кабель-менеджменту. Дроти не повинні бовтатися, а клеми мають сидіти “намертво”. Це той випадок, коли механіка важливіша за електроніку.

Велике електронне табло

Окремим етапом стало створення інформаційного табло, яке синхронізоване з основною системою. Воно відображає рахунок команд, час та номер рівня. Табло розроблено як виносний блок із власним модулем керування, що дозволяє підключати дублюючі екрани для глядачів.

Отриманий досвід: Теорія vs Практика

Створення “Кнопкової стіни” стало чудовим краш-тестом для моїх навичок. Ось головні уроки:

  • Живлення має значення. 32 лампи + електроніка створюють пікові навантаження. Правильний розрахунок перерізу дротів та потужний блок живлення — запорука відсутності “глюків”.
  • Аудіо — це UX. Люди рідко читають інструкції. Голосові команди зробили атракціон інтуїтивно зрозумілим навіть для дітей.
  • Модульність рятує нерви. Розділення “мозку”, силової частини та табло на модулі виправдало себе при транспортуванні.
Перспективи розвитку

Проєкт живе і розвивається. У планах:

  • RGB-підсвітка: Заміна ламп на адресні діоди для нових механік (ігри на запам’ятовування кольорів).
  • QR-результати: Генерація коду після гри для збереження результату в онлайн-таблиці рекордів.
  • Мережева дуель: Об’єднання двох віддалених “стін” через інтернет для змагань у реальному часі між містами.
Встановлення та тестування в реальних умовах