Skip to content

Проект игровой комнаты брейнринг со светящимися кнопками, потолком и сенсорной рукой для фотографий

Notifications You must be signed in to change notification settings

nicelight/Brain_Ring-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Brain_Ring

Проект игровой комнаты.

вопросы можно задать разработчикам в телеграм

ABOUT

Проект представляет себя комнату с потолком, на котором выложен 2D mapping из ленты ws2812 по проекту WLED разделенный на две половины. на полу каждой половины стоят столбы с кнопками для двух команд. Столб подсвечен лентой ws2812 по проекту GyverPanelWifi, у последнего есть крупная ветка на форуме. Оператор комнаты управляет музыкой, светом и игрой из веб странички. Игра по сути это брейнринг, две команды, задается вопрос, кто первый шлепнул по кнопке, у того кнопка засветилась, потолок засветился особо, и команда отвечает на вопрос. Если ответ правильный, оператор(или ведущий) в веб интерфейс дает подтверждение, -мигает победный свет над командой которая отвечала, в веб интерфейсе виден счет между командами. Есть кнопка рекламной паузи и кнопка награждения победителя. Отдельной функцией в веб интерфейсе оператора доступна светомузыка на потолке и кнопках и спокойные эффекты для Relax времяприпровождении. По средние комнаты расположено место с футпринтом ладони из акрила, он тоже немного подсвечен. Если к нему приложить руку, весь свет плавно тухнет в комнате. При удержании руки более 5 секунд, рука становится яркой, общий свет в комнате тухнет до нуля, мигают трижды колонны с игровыми кнопками, после чего резко включается весь свет в комнате происходит фотография комнаты камерой, расположенной рядом с футпринтом руки. Если руку недодержали 5 секунд, подсветка восстанавливается, рука тухнет. Если активирован вариант игры, то:

  • запускается эффект перебивки на х секунд
  • левая кнопка подсвечена голубым, правая фиолетовым ( задается в настройках ). Ведущий задает вопрос.
  • кто первый нажимает на кнопку, у того белая вспышка кнопки и включается эффект огня, дающий возможность отвечать команде.
  • теперь оператор выбирает, правильно или не правильно ответили ребята, кесли правильно - запускается яркий эффект на х секунд, после кнопка становится обратно своим цветом
  • если нажать "Фанфары" - запускается эффект перебивки на х секунд ( рекламная пауза или отдых от игры). Так же игра сопровождается спец эффектами на потолке, запускающимися параллельно с эффектами кнопок.

DOCUMENTATION

Топология

В комнате четыре esp32, подключены к роутеру по wifi, как клиенты.

  1. esp32 192.168.3.201 - web server с веб мордой , из которой можно отправлять сигналы на потолок, на кнопки а так же делать фотографии. Расположена по центру комнаты, подключена к акриловой руке.
  2. esp32 192.168.3.202 - подсветка потолка , отрабатывает стандартный проект wled, получает http команды от .201
  3. esp32 192.168.3.203 - Left - левая кнопка с постветкой, основана на форке проекта GyverLamp который называется GyverPanelWifi получает UDP команды от .201
  4. esp32 192.168.3.204 - Right- правая кнопка, по аналогии с левой.

API

Сервер -> Gyver Кнопки

API кнопок, основанных на GyverPanel Сервер отправляет UDP пакет кнопкам. Пакет начинается $ заканчивается ; Примеры пакетов:

  • $16 0; - ручной режим смены эффектов ( всегда активируем);
  • $6 7|BR|EF|SS|SE запрос параметров от устройства BR - яроксть EF - id эффекта SS - параметр #1 эффекта SE - скорость эффекта
  • $4 0 D; установить текущий уровень общей яркости
    D - яркость в диапазоне 1..255
  • $8 0 N; - включить эффект N
  • $8 1 N D; - D -> параметр #1 для эффекта N;
  • $8 6 N D; - D -> контрастность эффекта N;
  • $8 8 N D; - D -> скорость эффекта N;
  • $14 0; - Черный экран (выкл);
  • $14 1; - Белый экран (освещение);
  • $14 2; - Цветной экран;
  • $14 3; - Огонь;
  • $14 4; - Конфетти;
  • $14 5; - Радуга;
  • $14 6; - Матрица;
  • $14 7; - Светлячки;

Gyver кнопки -> Сервер

Кнопки отправляют серверу UDP сигнал о нажатии:

  • =button203 - для нажатия левой кнопки 192.168.3.203
  • =button204 - для нажатия правой кнопки 192.168.3.204

Сервер -> WLED потолок

API потолка, основанного на WLED примтивный GET или расширенный POST json Для простых переключений формируем GET запрос , к примеру 192.168.3.202/win&A=255 еще варианты:

  • &A= 0 to 255 Master brightness
  • &A=~30 увеличить яркость на 30
  • &A=~-20 уменьшить яркость на 20
  • &T= 0, 1, or 2 Master Off/On/Toggle
  • &PL= 1 установить пресет #1
  • &P1=1&P2=3&PL=~ каждый очередной вызов будет переключаться на следующий эффект из списка Р1-Р2 ( для дискотеки можно)
  • &FX= 0 to 101 LED Effect Index
  • &SX= 0 to 255 Effect Speed
  • &IX= 0 to 255 Effect Intensity
  • &ND Toggles nightlight on but uses default duration

INSTALLATION

1. WLED контроллер на потолке.

1.1 Распиновка:

  • лента ws2812 - GPIO2
  • touch pin РУКА - GPIO13
    фотокамера через опторазвязки
  • Вспышка - GPIO32
  • фокусировка - GPIO32
  • затвор - GPIO25

1.2. Подключение лент к микроконтроллерам ESP

В преднастройках прошивки Gyver контроллера уже выбран правый вариант, по сути он является обычной намоткой ленты вокруг трубы змейкой. А в web интервейсе контроллера WLED в настройках выбран маппинг по левой схеме - змейкой, что соответствует монтажу на потолке. Варианты подключения лент

На потолке ленты должны составить маппинг, для этого в каждой жирной дуге, выделенной цветом, должно быть одинаковое количество светодиодов. остальные светодиоды, указанные тонкой линией для подводки к контроллеру, будут выключены и определены в настройках WLED как оффсет. Подключение лент на потолке

1.3 Прошивка WLED контроллера

Переходим на сайт прошивки В выпадающем списке Board type\software version выбираем

Sound reactive version: Nightly build (build ver 0.13.4 )

  ESP32(4MB Flsah:....... disabled, no Usermods included)

, жмем синюю кнопку I agree , подключаем esp32 контроллер с зажатой кнопкой BOOT на контроллере к гнезду USB в компьютере , жмем синюю Install. Разрешаем браузеру всплывающие окна. Открывается всплывающее окно, в нем , выбираем usb COM порт нашего контроллера Подключено устройство: .... , жмакаем - подключить, и перепрошить. По окончанию будет предложено ввести вайфай сеть. , вводим, в этом окне будет указан айпишник контроллера в вайфай сети , идем в новую вкладку в раузере вводим айпишник, попадаем в веб интерфейс WLED

1.4 Настройка пресетов WLED контроллера

В веб интерфейсе контроллера идем в настройки и прописываем жостко параметры сети: 192.168.3.202 192.168.3.1 255.255.255.0 192.168.3.1 нажимаем Save, контроллер переподключится по новому адресу. Если нет - отключаем питание и подаем снова. Заходим в браузере на 192.168.3.202 Вкладка Segments - Segment 0 - переименовываем в LEFT - в раскрывающемся списке выбираем левую часть потолка по координатам x, y, сохраняем. ниже Add Segment - его так же переименовываем в RIGHT - в раскрывающемся списке выбираем правую часть потолка, сохраняем. Создаем пресеты. Делаем так чтобы иконки "часики" и галочки были над LEFT и RIGHT сегментами вкладка Colors выбираем во втором ползунке температуру белого цвета, комфортную для помещения вкладка Effects - Candle Multi - настраиваем ползунками так чтобы весь потолок светился достаточно ярко для проведения игры, и эффект мерцания свечей был не сильно раздражающим вкладка Presets - выбираем '+ Preset' - название: White Light - quick load label: O первых три галочки стоят, четвертую не надо - save to ID: 31 -- Save Здесь важно какой ID мы будем задавать. игра будет отрабатывать по этим айдишникам. Сейчас мы создали общее освещение во время игры.

2. Gyver кнопка

2.1 Распиновка

Кнопка подключина к пинам 18, 19 светодиодная лента ws2812 к пину 2

2.2 Прошивка Gyver контроллера

качаем репозиторий. Добавляем библиотеки: открываем папку проекта
Brain_Ring-/left_right_buttons/GyverPanelWiFi-master/libraries/ отсюда все папки качаем в папку Документы\Arduino\libraries Готово. Теперь открываем в проекте папку Brain_Ring-/left_right_buttons/GyverPanelWiFi-master/firmware/GyverPanelWiFi_v1.13 / в среде Arduino запускаем файл GyverPanelWiFi_v1.13.ino переходим на вкладку a_def_soft.h здесь нужно изменить пару настроек. Для начала определимся с понятиями: у нас будет левая кнопка называться "203" правая "204". можно будет добавлять еще кнопки 205, 206 и т.д. Названия кнопок соответствуют их айпишникам в вайфай сети. во вкладке a_def_soft.h находим 29 строчку: #define DEFAULT_IP {192, 168, 3, 203} // Сетевой адрес устройства по умолчанию тут айпишник для 203й кнопки - 192, 168, 3, 203, т.е. ничего менять не надо. для 204й кнопки меняем последнее число: 192, 168, 3, 204 для 205й кнопки будет 205 и т.д. Далее, строчка 32: char udpBrainRingButt[11] = "=button203"; так же для 204й кнопки делаем = "=button204"; Сохраняемся, подключаем контроллер esp32 - прошиваем.

2.3 Настройка пресетов Gyver контроллера

в бемню web интерфейса вкладка точка . внизу - Тонкие настройки. Тут можно задать соответствия эффектов игре. Суть в том что в гайверкнопках эффекты уже жостко вшиты, нам только надо выбрать какой именно когда играет. В то же времяв wled потолке каждый эффект сначала надо прописать в интерфейсе контроллера потолка 192.168.3.202 а только потом задавать в основном сервере 192.168.3.201 соответствие эффектов wled состояниям игры.

3 VLC плеер

Используется для воспроизведения звуков во время игры или конкурсов. Общается через API по HTTP запросам пример запроса воспроизведения трека номер(начиная с четвертого по идее) http://192.168.3.210:8080/requests/playlist.xml?command=pl_play&id=3

Настройка на стороне компьютера, воспроизводящего медиа

  • Устанавливаем VLC, открываем:
    Инструменты - Настройки - галочка "Все"(внизу слева) - Основные интерфейсы - галочка над Web.
    Основные интерфейсы - Lua - HTTP - Пароль: 123456789123456789
    Инструменты - Настройки - Все - установить галочку: Воспроизвести и остановить

  • Устанавливаем статический айпишник 192.168.3.210
    Win + R
    ncpa.cpl
    Enter
    находим сетевое подключение которое подключено к сети Showmix
    п.к.м. - Отключить
    п.к.м. - Свойства - IP версии 4 - Свойства -
    Использовать следующий адрес

192.168.3.210
255.255.255.0
192.168.3.1

192.168.3.1
8.8.8.8

Ок - Зактрыть
п.к.м. включить

Нужно быть аккуратным с VLC плеером. Если ты удалил песни из плейлиста или открыл другой плейлист или даже закрыл и снова открыл тот же самый плейлист, нарушается порядок следования песен и соответственно - соответствие воспроизводимых песен с удаленными командами. Поэтому если были открыты какие либо песни а потом вы хотите запустить игру, нудно не просто закрыть песни и открыть нужный плейлист, а закрыть полностью VLC, открыть по новой и только потом добавлять плейлист с игровыми звуками.

Порядок следования песен: первая песня - пустой звук ( так уж вышло), вторая-седьмая на выбор нажатий для команд,восьмая - старт,девятая - правильный овтет, 10 - фанфары, 11 - победа. id шники треков для песен:

  • 4-9 нажатия на кнопку
  • 10 старт
  • 11 Правильно ответили
  • 12 фанфары
  • 13 победа
  • 14 ... 19 запускается с удаленного пульта на айпишнике 3.209

4 Пульт диджея для VLC плеера

Пульт представляет из себя отдельную esp32 плату с 6ю кнопоками ( можно и больше) которые по вайфаю активируют в VLC плеере треки № 14-19 Исходный код пульта

Кнопки подключаются к пинам 4,5,16,17,18,19

Файл прошивки качать здесь, нажмите Ctrl + Shift + S

Вернуться в начало

About

Проект игровой комнаты брейнринг со светящимися кнопками, потолком и сенсорной рукой для фотографий

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published