[Из песочницы] Квесты в реальности — «Не хлебом единым...»
Приветствую всех, кому может оказаться полезной данная статья. Хотя конечно, сейчас «квеструмы» уже далеко не на пике своей популярности, и новое поколение «квестов в реальности» использует совсем другие технологии. Но я искренне надеюсь, что кто-то сможет извлечь для себя опыт и из данной публикации, и применить его в быту.
Идея написания этой статьи родилась довольно давно: за спиной разработка и реализация электроники и автоматики для 5 «квеструмов». Общение с коллегами по цеху показало, что многие при строительстве квестов используют и более простые решения, как и куда более серьезные. Поскольку я не претендую на определенную компентенцию или авторитетность в разработке электроники, данная статья имеет смысл передачи опыта, и является попыткой рассказать о собственном видении применения автоматики типа «DIY» в сфере развлечений.
Итак, начнем. Для тех, кто не в курсе, «квесты в реальности» — вид современного развлечения, где команде игроков за определенное время предлагают найти выход из «кастомной» локации, попутно решая различные возложенные на них задания и миссии. Начиная с комнаты с дверью, и кучей механических кодовых замочков, «квеструмы» эволюционировали до огромного «шоу-монстра», соединив в себе элементы театрального представления, перфоманса, 3-d шоу, аттракциона и т.д. Создание таких квестов требует немалых финансовых вложений и усилий. И сейчас я расскажу, как мы построили подобный квест, не используя промышленные решения в автоматике и обеспечении интерактивности, ибо подобные вещи обошлись бы в суммы, на порядок выше тех, что мы потратили на постройку всей локации вместе с отстройкой ресепшена. В целях соблюдения коммерческой тайны, я не смогу назвать ни названия самого «квеструма», ни компанию, ни показать фото реализованных головоломок и устройств. Но все же что-то я смогу показать, и попробую рассказать обо всем максимально детально в рамках данной статьи.
Прежде всего попробую обрисовать саму схему реализации автоматики квеструма. Она состоит из таких составляющих, как:
— реализация игровой механики (устройства, головоломки, датчики, исполнительные устройства);
— реализация интерактивности (озвучка действий игроков в квесте, воспроизведение видеороликов, управление освещением);
— реализация управления квестом (подготовка квеста к работе и управление игровыми и сервисными функциями электроники);
Для реализации игровой механики в роли исполнительных устройств использованы такие элементы, как электромагнитные и электромеханические замки, электромоторы, дым-машины, светодиодное и люминисцентное освещение, пневматика, шаговые двигатели. В качестве источников сигналов выступают датчики движения, герконовые датчики СМК, RFID-считыватели, фотоприемники, электромехнические кнопки и концевые выключатели, переменные резисторы, резистивные сенсоры.
Все действия и события, происходящие во время игры в квесте озвучиваются, подобно тому, как это происходит в любой видеоигре. Интерактивность происходящего реализовано в формате: ПК, к которому подключены 2 автомобильных усилителя класса AB + 6 аудиоколонок, дающих суммарную мощность в пике 800 Ватт. Также к ПК, работающему под управлением старой доброй Win7 подключены 2 ЖК — монитора, воспроизводящих в определенные игровые моменты видеоролики, а в остальное время отображающие некоторые статичные скрины. И как ни странно, вся эта кухня работает и управляется микроконтроллером AVR Atmega 2560, заботливо припаянным к плате **Arduino Mega 2560** нашими друзьями из недалекого, но известного государства. Но обо всем по порядку. Всего в квесте используется следующая электроника и автоматика:
— 6 датчиков движения;
— 15 герконовых датчиков СМК;
— 4 резистивных сенсора, изготовленных из фольгированного текстолита;
— 3 электромотора от стекло-подъемного механизма автомобилей;
— 1 дым-машина;
— 1 компрессор с ресивером для обеспечения работы пневматики;
— 2 пневмоцилиндра фирмы Camozzi + вся обвязка для подготовки воздуха и управления;
— 23 кнопки для ввода кодов в кнопочные панели головоломок с вводом кода;
— ультразвуковой датчик измерения расстояния HC-SR04;
— датчик шума для Arduino на конденсаторном микрофоне с компаратором;
— асинхронный трехфазный безщеточный двигатель 380 В;
— около 50 метров светодиодных лент;
— 33 светодиода 1 Ватт;
— 4 светодиода 10 Ватт для освещения комнаты в светильниках;
— 3 светодиодных софита;
— 15 плат Arduino (Uno, Mega 2560, и Pro Mini);
— 16 плат модулей, изготовленных и разработанных самостоятельно для этого квеста;
— 2500 метров кабеля UTP Cat-5e, ШВВП и ПУГНП;
— 1000 метров кабеля МГТФ для кроссировки электроники и модулей между собой;
— 2 автомобильных усилителя общей мощностью 800 Ватт;
— 6 автомобильных коаксиальных аудиоколонок, каждая мощностью в пике 120 Ватт;
— 2 трехфазных контактора 5 Ампер;
— 8 твердотельных реле с нагрузочной способностью 25 Ампер;
— 1 ПК (x64) на базе Windows 7;
— и еще куча разной неинтересной, но необходимой мелочи.
Для начала: об интерактивности. Все события и действия игроков внутри квеста озвучиваются (открытия дверей, проникновение в комнаты, сработки сенсоров и датчиков, и прочие игровые моменты — все озвучено, во время игры также проигрываются сюжетные аудиовставки).В игре реализована динамически воспроизводящаяся музыка: около 40 аудиотреков воспроизводятся в определенные игровые моменты и события, каждый аудиотрек плавно сводится с предыдущим. Всего в квесте использовано около 100 звуков событий и около 40 аудиотреков фоновой музыки.Также в квесте есть 2 монитора ЖК, на которых до выполнения определенного действия игроками висит статичный JPEG-фон, который плавно меняется на видеоролик, запускаемый также по событию. Все эти прелести мультимедиа-технологий удалось реализовать при помощи обычного офисного ПК, с видеокартой, которая поддерживает вывод на 2 монитора, и специальной программы, написанной по моем просьбе одним талантливым программистом. Сама программа выступает в роли мультимедиа плеера с некоторыми возможностями, недоступными для всяких бытовых Aimp-ов и Winamp-ов. А именно запуск произвольного аудио или видео файла с устанавливаемыми параметрами, типа уровня громкости и характеристик фэйдинга. Программа управляется командами, получаемыми от головного контроллера (Arduino Mega 2560) по UART.
Головной контроллер выполняет целый ряд функций:
— на нем крутится код программы «игрового движка», который управляет всеми функциями автоматики и электроники квеста;
— он принимает сигналы от входных устройств (датчики, сенсоры, устройства) через несколько «модулей входов» в виде логических уровней 0 и 1 на свои порты GPIO;
— он посылает команды на ПК для управления «медиаплеером» через UART-0;
— он обменивается данными с другими контроллерами по I2C;
— он осуществляет прием/передачу данных планшету по Bluetooth (на модуле HC-06, подключенного к UART — 1), где планшет является устройством управления и мониторинга квеста;
Как было сказано выше, головной контроллер (назовем его МК — 1) осуществляет обмен с другими контроллерами системы используя шину TWI (I2C), которые выполняют различные задачи. Второй по значимости контроллер (МК — 2) управляет выходными устройствами (электромагнитные замки, диммеры LED, электромоторы и Т.Д.) при помощи изготовленных самостоятельно «модулей выходов». Для этого квеста я изготовил несколько различных модулей «входов/выходов».
Схемотехника достаточно проста: гальваническая развязка на оптопаре PC-817, n-канальные MOSFET — транзисторы для управления светодиодами, электромагнитными замками + диод, подключенный параллельно выходу для устранения ЭДС самоиндукции электромагнитных замков, электромехнические реле для управления мощной низковольтной нагрузкой (электромоторы от стеклоподъемников иномарок типа «Mark II», подобные моторы имеют недюжий пусковой ток до 20 Ампер, и рабочий ток в районе от 3 до 7 Ампер, но имеются в огромном количестве в «авторазборках» по смешной цене от 200 рублей). Ну и напоследок, некоторое количество высоковольтных нагрузок (дым — машина, блоки питания вынесенных устройств, асинхронный трехфазный двигатель, ультрафиолетовое освещение 220 В) управляется с помощью твердотельных реле на ток нагрузки 25 Ампер, напрямую с выхода контроллера МК — 2, что отвечает за управление выходными устройствами.
Для кроссировки соединений устройств, находящих внутри локаций квеста и щитом автоматики я изготовил вот такие вот модули коммутации:
Также в квесте по ряду технических причин есть куча головоломок, реализованных в виде самостоятельных устройств, управляемых по I2C с МК -1. Все электронные модули, используемые в квесте я изготовил, используя «ЛУТ», «DipTrace» и немного терпения. На самом деле было много работы по изготовлению самих устройств, кроссировке датчиков и девайсов между собой, но об этом я планирую написать в отдельных и более детальных статьях, каждая из которых будет с определенным тематических «уклонов» (RFID, I2C, UART, Arduino).
Питание электроники осуществляется при помощи 7 блоков питания: 3 БП (400 Вт, 12 В) для питания слаботочки и светодиодных лент, электромоторов и электромагнитных замков; 2 БП (400 Вт, 12 В) для питания автомобильных усилителей НЧ;, а также блок питания ATX для ПК, мощностью 600 Вт для питания всей логики, связанной общей точкой на GND; 1 блок питания 24 вольта фирмы «ОВЕН», для питания соленоидов пневмоцилиндров.
Также в реализации самостоятельных, но ведомых МК — 1 устройств было использованы такие предметы электронного быта, как RFID — модули MRFC — 522 в количестве 8 штук, китайские лазеры с длиной волны 650 нм.
Ну и наконец, достаточно интересный момент во всем системе: это управление квестом. Несмотря на все наши старания, упростить где только это было возможно, квест получился сложным электро — механическим организмом, для управления которого необходима доступная, удобная и недорогая платформа. Мне приходилось видеть квеструмы, где управление игровым режимом и сервисной частью осуществлялась при помощи автоматов и переключателей. По этому поводу хочется сказать, что в таком случае необходимость сложной системы автоматики вообще отпадает, ибо проще нанять на работу оператором квеста бывшего пилота гражданской авиации, поскольку только ему будет под силу контролировать работу пяти десятков исполнительных устройств и сотни датчиков и сенсоров. Как я уже упоминал, данный квест в моей биографии «разработчика электроники для квеструма» является пятым по счету, и в 3 других квеструмах у меня используется система управления, построенная на вебсервере, что крутится на ПК оператора квеста. В конкретном случае ее возможностей оказалась маловато, поскольку сервисный режим для описываемой системы предполагает работу персонала квеста внутри локации и комнат квеста (в сервисном режиме настраиваются устройства, работающие в квесте, все приводится в «дефолтное», начальное состояние, закрываются все замки, проверяется на исправность механика, осуществляется контроль сработки датчиков и сенсоров). Поэтому решение для управления квестом при помощи планшета было не случайным. И в этом случае мне очень сильно помогли талантливые ребята-программисты из Санкт-Петербурга. Парни занимаются разработкой бесплатного приложения «DK Gadget» под Android, которое позволяет управлять различным девайсами при помощи Bluetooth, Internet, Wi — Fi. Приложение невероятно удобное и обладает достаточно богатым функционалом для реализации самых смелых идей по управлению различной электроникой на базе Arduino, Raspberry Pi и др. Я уверен, что многие смогут использовать его в своих проектах. Программа позволяет контролировать состояния головоломок и устройств, а также получать в свои виджеты сервисные данные о состояниях датчиков, сенсоров и прочую необходимую информацию. Все управление квестом происходит при помощи планшета на Android с помощью описанного приложения. Я надеюсь написать также отдельную статью, описывающую возможности и функционал приложения, а также описать работу библиотек для Arduino, с помощью который реализуется обмен данными между планшетом и девайсом.
Ну и самая «экзотическая часть» автоматики для квеста — кинематика »аниматроника», этого безумного чудовищного монстра, призванного пугать в темноте ничего не подозревающих игроков, проходящих квест. Для реализации «аниматроника» нам потребовались изготовить пневмоприводы на пневмоцилиндрах Camozzi с диаметром поршня 20 мм и ходом штока поршня 150 мм. На фанерном щите была собрана вся пневмосистема, включая подготовку воздуха. Работой пневмоцилиндров заправляют бистабильные пневмораспределители, управляемые соленоидами с питанием 24 вольта. Здесь нам очень помог драйвер, собранный на сборке транзисторов Дарлингтона ULN2003A. Об этой микросхеме рассказывать не имеет смысла, поскольку она является самым популярным драйвером нагрузок до 500 миллиампер на канал, управляемым напряжениями 3,3 и 5 вольт. Драйвером у нас управляет Arduino Uno при помощи очень простого кода. Поскольку пневмо-распределители у нас бистабильные, то управление сводится к открытию/закрытию клапана в нужный нам момент.
Вот и обещанные фотографии, которых к сожалению, пока достаточно маловато.
Щит автоматики во время сборки:
Один из блоков электроники с контроллерами:
Часть плат модулей перед установкой их в щит автоматики и в блоки:
Вот пока что и всё. На самом деле, этой статьей очень хотелось бы открыть целый цикл публикаций, посвященных «DIY-технологиям», в которых очень хотелось бы детально рассказать о разных «интересных вещах» и поделится опытом, поскольку шишек в этом деле набито предостаточно. Рассчитываю на интересные и занимательные комментарии и благодарю всех за потраченное время.