С чего началось?
Когда мы рассказываем про наш проект людям, часто слышим: «О, я видел это в Инстаграм!». И мы это взяли оттуда.
Год назад мой друг прислал мне видео из соц. сетей канадской команды, где люди прыгали по светящимся плиткам, нажимали разные кнопки и при этом выглядели безумно увлеченными. К сожалению, самим туда попасть не удалось: канадцы все еще не вылезли за пределы своего континента, а перелет через Атлантику в ближайшие планы не входил.
Пришлось думать, как сделать это самим.
Суть проекта
Что представляет собой игра? Пол, состоящий из ячеек, соединенных в единую сеть. Система подключена к “головному” компьютеру, который получает сигнал о том, что на ячейку наступили и отдает сигнал, нужно ли ей светиться и как.
Внешне - набор "плиток" размером с ботинок человека с диодами внутри и полупрозрачной поверхностью. Изнутри - электроника и датчики, которые должны отслеживать нажатие на плитку, передавать эту информацию в компьютер и принимать обратный сигнал.
Большое количество ячеек (256+ в нашем варианте) позволяет сделать различные игры. От динамических: побегать/попрыгать, до логических и игр на память. “Игра в кальмара” еще свежа в памяти, так что и оттуда мы пару идей прихватили.
О себе
Основа команды - бывшие однокурсники - физики, неудавшиеся кандидаты наук. Основная наша деятельность - IT и все что рядом; Этим же проектом мы занимались изначально как хобби: после основной работы выделить 2-4 часа на нашу идею. Сейчас проект перерос в нечто большее: и нам стало понятно, что у нас получается, и появился интерес от окружающих.
Начало работы. Китай
Сначала посмотрели, что есть похожего в мире, помимо канадских ребят. Оказалось, есть у китайцев: диодные панели любых размеров и форм, на емкостных и тензодатчиках, и, по их словам, все, что нам нужно.
За несколько месяцев мы получили изделия от 8 различных (или нет) производителей в Китае.
К чему мы пришли с китайцами:
• Самая простая проблема - отсутствие обратной связи в устройстве у многих производителей: нажатие считывается, но информация об этом не передается
• Низкая (неравномерная) чувствительность из-за ограничений ёмкостной системы
Рисунок 1. Внутренний вид одной из китайских плиток на емкостном датчике (слева) и внешний вид рабочей плитки (справа)
• Монолитная система. Любая неисправность приводит к замене всей ячейки
• Много мелких проблем, от которых хотелось бы избавиться
Так мы отказались от идеи простой реализации чужими руками и перешли к разработке.
Разработка
На первом этапе в команду разработки вошли: конструктор, электронщик и полтора программиста.
Предстояла работа, которую мы видели так:
• Протестировать различные датчики касания
• Придумать конструкцию самих ячеек, подобрать материалы и формы
• Написать взаимодействие между плитками
• Написать связь с компьютером
• Игры, дизайн, музыка и остальное
Как считать касание
Основная часть работы первое время легла на конструктора. Начали с главного вопроса: «как считывать касание?». Сразу в голову приходят несколько вариантов:
1. Кнопки. Вариант простой и дешевый, но кнопки недолговечны. Мы закупили много разных, но после тестов отказались от этой идеи
2. Тензодатчики - наиболее логичный на первый взгляд вариант, канадские ребята его используют. По нажатии получаем сигнал на компьютер. Ложные нажатия от вибрации, а также ограничения функционала, который мы хотели добавить заставили идти дальше
3. Емкостной датчик, по стопам друзей-китайцев. Считывает не нажатие, а изменение поля вблизи антенны. Сложность в том, что датчик должен срабатывать на нажатие в обуви, но при этом не реагировать, если человек проносит ногу близко, но не касается. Эту границу четко установить не получается
Мы протестировали все варианты и решили копать глубже: мы хотели и получать данные о весе (что дает сделать тензодатчик), и не быть ограниченными на минимальный вес (что дает сделать ёмкостной). О итоговом решении смогу рассказать чуть позже.
Конструкция:
Наша цель - самостоятельные ячейки со всей электроникой, стеклом и разъемами для подключения к общей системе. Металлический корпус, закрытый каленым стеклом толщиной 1 см. Внутри - диоды по периметру, всего 48 диодов. От китайских диодных лент отказались сразу из-за их ненадежности в пользу алюминиевых плат с хорошими диодами.
Основа устройства - плата «мозгов». В первые образцы основных плат закладывали много дополнительных компонентов, в том числе рассматривали разные протоколы взаимодействия между устройствами. В итоге остановились на CAN-шине, как наиболее быстром и надежном варианте, а лишнее - убрали.
Корпус и стекла заказывали поблизости, все компоненты для плат и диоды везли из США/Китая, а собирали уже тут.
Первая большая партия
Непрерывные доработки, попытки остановить конструктора в реализации новых и новых задумок, потому что они "именно то, что нужно", а все, что было до этого - "тоже хорошо, но совсем не то" наконец приводят к первой закупке большой партии компонентов. Размер пола нам показался оптимальным - 16x16 плиток. Вероятно, основное значение сыграла степень двойки, а не какие-то реальные ограничения.
В момент получения компонентов все программисты, электронщики и менеджеры резко становятся грузчиками и носильщиками под надзором конструктора. Далее - проверка всех компонентов, отбраковка нерабочих/кривых/косых частей и гневные письма поставщикам.
Сборка
Организовали первый сборочный цех, который до этого выступал лабораторией для разработки и тестирования, постепенно наладили конвейерный процесс сборки панелей. Резюме по отладке процессов сборки: закладывать нужно минимум 50% запас по срокам и стоимости, т.к. слишком много возникает различного рода неожиданностей, особенно когда ты без опыта таких процессов.
Это одна из самых приятных частей проекта: довольно быстро твоими руками собирается полноценная система, на которую было затрачено весьма много времени и сил.
Игры и интерфейсы
Когда стало понятно, что технически мы это сделать сможем, задумались о играх и логике управления полом.
1. Мы сделали простой браузерный интерфейс управления, который умеет выставлять длительность сессии, выбирать сеты игры, переключать и останавливать игры
2. Игры. Начинали с любимых играм каждого из членов команды, но поняли, что такой формат работы особенно ни к чему не приводит: каждый хочет своё, а общая концепция не прослеживалась. Кто-то видел это только как динамичные игры для детей, кто-то - как полноценный “Escape room” с головоломками… Подключили к работе гейм дизайнера, который уже полноценно продумал и общую структуру, и логику с учетом возрастов, типов игр. Составил палитры цветов и в целом сделал все, что делают дизайнеры.
Дальше - первый коммерческий опыт, о котором обязательно напишу.
Выводы
• Китайские решения нам не подошли
• Классические тензо- и ёмкостные датчики не оптимальны
• Разработка - это довольно дорого
Результаты
• Близкое к идеальному считывание касания: как на детях, так и на взрослых
• Высокая скорость передачи цветов, не заметна глазу
• Сборка системы 16х16 за 4 часа
Текущий этап
В декабре 2023 наша команда Nukus Games открыла первое пространство совместно с партнерами - Парком развлечений «Погружение» в Москве под названием «Матрица». На ней отлаживаем все процессы, тестируем игры, собираем отзывы посетителей. А параллельно с этим собираем новые системы для наших новых партнеров.