41

Квест в реальности или партия raspberry pi + arduino.

День добрый! Меня занесло строить квест румы, хоть я до этого arduino в глаза ни разу не видел, меня это не остановило. Хочу рассказать о моих решениях принятых при проектировании и о реализации задуманного.


Для начала сочтёмся на том, что же такое квест в реальности или "эскейп рум", по словам вики:

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

Квесты бывают ну очень разными: страшные до мерзости перфомансы, веселые и шумные семейные квесты, для больших и маленьких компаний, основанные на исторических событиях, VR квесты и далее. На любой вкус и цвет как говориться.

Что такое квест для инженера:

* Помещение;

* Много проводов, очень много (освещение, звук, камеры и сами загадки);

* Горстка различных датчиков (щелевые, шумовые, магнитные и т.п.);

* Электромеханические и магнитные замки;

* ПК\raspberry\arduino и т.п.;

* Загадки.



Всё начинается с ТЗ, в идеальном мире.

Квест обязан быть антивандальным. Дети уничтожают любые загадки грубой физической силой, подростки под действием весны забывают о правилах и суют всё подряд туда куда не стоит, взрослые не видя очевидное делают не очевидное. В правилах конечно описывают знаки "СТОП" обозначающие неиграбельность в задачах антуражные предметы - но согласитесь, это не красиво и выбивает из ритма игры.


+ Позаботитесь о том, что бы камеры и колонки стояли как можно дальше друг от друга во избежание "глухоты" камеры. Нам ведь важно слышать игроков, а не саундтрек;

+ Камеры не должны быть рядом с освещением, или светильник не должен быть направлен на камеру;

+ Камеры должны охватывать возможный максимум помещения, т.е. минимум слепых зон. Оператор должен видеть всё что делают игроки в квесте - что бы квест не сломали, или что бы квест не сломал игроков;

+ Прячьте всю проводку, будь то 220 или звук. Всю прятать в ноль по максимуму, где нельзя спрятать - в гофру!;

+ Ведите кабель с запасом: если надо 1 кабель 5 метров, ведите 2-3 кабеля 7 метров. ТЗ в квестах часто бывает динамичным;


Решите до прокладки кабелей будите ли управлять квестом и каким методом: тумблеры в операторской, веб панель, приложение для смартфона. И каким образом будут работать все механизмы: будут ли они независимы друг от друга, или будет единый центр.


Передо мной стала задача в независимых механизмах на arduino. RaspberryPi использовал как центральный мост между всеми ардуинами и операторами. На деле если raspberry вдруг перестанет отвечать - квест будет играть дальше и без неё, но пропадёт возможность из браузера управлять квестом.



Поэтому все элементы заводились в один ящик, получилась дикая каша :) Главное всё подписывать!

Все задачки (arduino) в квесте независимы друг от друга, но все они связаны с raspberry по шине I2C для того что бы сообщать центру о решении задачи. Или же raspberry может сообщить адруинке о том, что задачку считать "решенной" и активировать последствия. На raspberry поднят веб сервер apache для управление квестом через веб панель.



Общение raspberry и веб панели происходит за счёт файла JSON. В качестве общения малины и ардуин я использовал библиотеку WiringPi. Весь код писал на C++, подружил плюсы и JSON с помощью библиотеки JSON for Modern C++. Панель для управления квестом написана на PHP с использованием bootstrap для кроссплатформенной верстки и скорости разрабокти.

Решение не дешёвое и запутанное - зато адская выживаемость. Сломается элемент квеста - не беда, можно выкрутиться и не выводить игроков для ремонта механизма. А поломки в квестах - "это норма".


За время постройки удивительные свойства показали ардуины - настоящие бронетранспортёры! Вот к примеру если подключить df player неправильно, высокий шанс не услышать с него больше музыки :). А вот сама ардуина после плевком в меня сизым дымом работала дальше :D


С++ был выбран т.к. с python или bash я знаком еще хуже, на самом деле ведь совершенно не важно на чём написано.


Пример куска кода С++ для малинки. Для квестов код очень прост, ничего вычурного, справиться и второкурсник.

Буду очень рад критике и вопросам.

Первый пост - судите строго!

Arduino & Pi

1.5K поста20.8K подписчиков

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

1
Автор поста оценил этот комментарий

Да бросьте, никаких извращений. Если разобраться, то 90-95% задач квеста сводятся к классической "проблеме мигания светодиодиком")) Да, на выходе уже не светодиодик, а обвязка для управления чем-то силовым, но принципы те же. Вот на прикрепленной фотке один из модулей управления. В задачах- отследить размыкание трех герконов в правильном порядке и снять напряжение с ЭМ-замка. Смысл сюда вкорячивать 128-ю мегу на ардуино, если восьминогая тинька справится на ура, при этом 99,9% времени находясь в глубоком сне, изредка просыпаясь по собаке (это два раза в секунду) и опрашивая 4 своих входа. При этом, никаких ардуиновских "соплей" на дюпон-перемычках, всё собрано на кошерных винтовых зажимах, с понятнейшей технической документацией. Есть отдельный вход от кнопки оператора "Ок, вы, тупицы, наконец-то решили загадку!".

ТС-у: да, с удовольствием бы поковырял i2c-шину, но применения в квестах ей не вижу. Смысл все это дело усложнять? Им требуются максимально надежные и простые решения. Хотите управление с вэб-странички- пжлста- ESP в режиме "ногодрыга" с вэбмордой и на вход модуля, вместо "кнопки оператора". Только все, кому предлагал такое "инновационное и нанотехнологичное" решение спросили "А можно просто кнопки на стол?". Ну ок, кнопки, так кнопки.

Можно и RS485 по квесту растянуть и MODBUS прикрутить (кстати, интереснее и надежнее i2s должно получиться), но зачем? Провод с кнопкой всегда будет надежнее и ремонтопригоднее.

Не претендую на истину в последней инстанции, просто опыт второго десятка собранных квестов.

Иллюстрация к комментарию
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
(кстати, интереснее и надежнее i2s должно получиться)
i2c штука очень не надёжная и местами вредная, но реализовать таки получилось, чему я очень рад :)
Если разобраться, то 90-95% задач квеста сводятся к классической "проблеме мигания светодиодиком"
Две тысячи раз крикну "да!", более чем верно.
ТС-у: да, с удовольствием бы поковырял i2c-шину, но применения в квестах ей не вижу. Смысл все это дело усложнять? Им требуются максимально надежные и простые решения. Хотите управление с вэб-странички- пжлста- ESP в режиме "ногодрыга" с вэбмордой и на вход модуля, вместо "кнопки оператора". Только все, кому предлагал такое "инновационное и нанотехнологичное" решение спросили "А можно просто кнопки на стол?". Ну ок, кнопки, так кнопки.

Воу! А кидани в меня каким-нибудь манулом на эту тему, пожалуйста!

показать ответы
0
Автор поста оценил этот комментарий
А в каком городе строите квесты если не секрет ??
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

пока что Екатеринбург, Россия :)

0
Автор поста оценил этот комментарий

Добраться до atmela весьма проблематично при должном уровне разработки железа. По входам спасают оптроны- даже прилет 220 вольт на вход просто выжигает его, не долетая до мозгов. А уж с заменой оптрона и ПТУшник справится. Если, заходя на проект вижу, что возможны "шаловливые ручки"- вкорячиваю защиту от переполюсовки- выжигаемый "пофигистор" по питанию и копеечный диод. Прилетела неправильная полярность- пофигистор погиб, защищая мозг.

если добрались то atmela и "уничтожили" его, время на его замену может уйти больше пятнадцати минут.

Вот это как минимум спорное утверждение. Ведь на ардуинах тот-же atmel, но схемотехнические защиты отсутствуют, как класс. И поменять ардуину- тоже не 15 минут, прошить же еще надо, а у вас там богомерзкий uart вместо расово верного ISP. ))) Без обид)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
огомерзкий uart вместо расово верного ISP

мерзкий, но блондинке по скайпу проще объяснить первое :)

В целом я более чем вас поддерживаю

3
Автор поста оценил этот комментарий

Добрый вечер, коллега)

Пилю квесты в режиме хобби, без малин, ардуин и прочего "компота") Только голый Atmel на ЛУТ-платах, чистый СИ и хардварные кнопки у оператора. При таком раскладе- выживаемость- 146%, особенно если не забывать везде развязываться оптронами.

Ниже- пример чужой "поделки" на ардуино про мини, если не ошибаюсь. Выглядит омерзительно, работает так же))

Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Привет! Это Шикарно, такие скиллы в людях меня восхищают!!!

В выживаемости сомнений никаких не имею, только разве что один косяк у таких решений всё таки, увы, есть: если добрались то atmela и "уничтожили" его, время на его замену может уйти больше пятнадцати минут. А если инженер уехал в отпуск - пиши пропало, найти такого же классного спеца - проблема.

А с компотом проще всё таки конечно, но не такой кайф я думаю :)


Поделка выше выглядит реально блевотно :D

показать ответы
0
Автор поста оценил этот комментарий
О, Sublime text. Вопросец, сколько тестовых прогонов проходит до релиза?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Сначала мучают своих друзей 3-10 игры, потом приглашают команды 10 игр минимум. Каждых выслушивают и если возможно вносят правки.