-
-
Notifications
You must be signed in to change notification settings - Fork 4
Распределенная матрица
Частным случаем групповой синхронизации устройств при использовании логического уровня является возможность соединять несколько отдельных сегментов, каждый из которых работает под управлением собственного микроконтроллера в один большой виртуальный экран.
Максимальное количество диодов в матрице для этого режима - 2040. Для увеличения количества диодов (для очень больших матриц) требуется корректировка кода в скетче.
В режиме распределённых матриц источник - мастер формирует полный виртуальный кадр изображения, физически выводя на матрицу лишь часть изображения кадра, остальные части виртуального кадра отправляются отдельным приемникам, каждый из которых может выводить свою часть из полного кадра.
Пример использования режима "распределенной матрицы" - создание цельной широкой гирлянды на окнах квартиры (или несколькитх квартир), когда затруднительно тянуть провода (особенно сигнальные), соединяющие сегменты матрицы, размещенные на окнах в соседних комнатах, а тем более - на разных этажах дома в соседних квартирах.
Необходимое условие - все управляющие микроконтроллеры должны находиться в одной локальной сети.
Загрузите в микроконтроллеры актуальную прошивку. В прошивке должна быть включена опция #define USE_E131 1
.
В Web-приложении в настройке сетевых подключений для каждого микроконтроллера выделите собственный IP-адрес.
Для работы мастер-устройства - источника изображения рекомендуется выбирать микроконтроллер на основе ESP32, поскольку в мастере должно быть достаточно оперативной памяти для формирования полного виртуального кадра.
Для работы ведомых устройств - приемников достаточно будет микроконтроллеров на базе ESP8266 - в них меньше памяти, но ее достаточно для получения своей части виртуального кадра.
Возьмем для примера, что полная гирлянда имеет размер 32x32 пикселя и состоит из четырех отдельных сегментов 16x16. Отсчет пикселей в гирлянде - левый верхний угол, координаты угла - X=0, Y=0. Все устройства принадлежат одной группе синхронизации.
Обозначим, для примера устройства:
Устройство | Микроконтроллер | IP-адрес | Сегмент | Начало | Размер |
---|---|---|---|---|---|
Мастер | ESP32 | 192.168.0.100 | Сегмент 1 | 0,0 | 16x16 |
Приемник 1 | ESP8266 | 192.168.0.101 | Сегмент 2 | 16,0 | 16x16 |
Приемник 2 | ESP8266 | 192.168.0.102 | Сегмент 3 | 0,16 | 16x16 |
Приемник 3 | ESP8266 | 192.168.0.103 | Сегмент 4 | 16,16 | 16x16 |
Мастер - ESP32 - формирует полный кадр размером 32x32, однако физически имеет подключенную матрицу размером 16x16 - Сегмент 1
Приемник 1 - ESP8266 - принимает от Мастера полный кадр в сетевых пакетах протокола E1.31, но "выкусывает" из полного кадра только свой сегмент - Сегмент 1 с расположением в полном кадре левый верхний угол X=16, Y=0 с размером сегмента 16х16.
Приемник 2 - ESP8266 - принимает от Мастера полный кадр в сетевых пакетах протокола E1.31, но "выкусывает" из полного кадра только свой сегмент - Сегмент 2 с расположением в полном кадре левый верхний угол X=0, Y=16 с размером сегмента 16х16.
Приемник 3 - ESP8266 - принимает от Мастера полный кадр в сетевых пакетах протокола E1.31, но "выкусывает" из полного кадра только свой сегмент - Сегмент 3 с расположением в полном кадре левый верхний угол X=16, Y=16 с размером сегмента 16х16.
Откройте в браузере Web-интерфейс устройства, назначенного мастером. В нашем случае - мастер имеет IP-адрес 192.168.0.100. Перейдите к пункту "Настройки" - Группы. В области "Синхронихация устройств" установите параметры как на картинке - Режим работы - Источник (мастер), Тип синхронизации - Логический порядок, Группа синхронизации - выбранную нами по соглашению выше - Группа 0. Все настраиваемые устройства должны принадлежать одной группе. Нажмите кнопку "Применить".
Настройка устройств-приемников в принципе одинаковая, за исключением указания позиции виртуального кадра с источника, откуда выполнять захват картинки для вывода на матрицу.
Все устройства - приемники включаются в Режим работы "Приемник (ведомый)", Тип синхронизации - "Логический", всем прияемникам назначается группа синхранизации, присвоенная ранее мастер-устройству.
Для устройства Сегмент 1 - указывается, что из полного виртуального кадра требуется извлечь чатсь изображения, размером 16х16, левый верхний угол которого имеет координаты X=16,Y=0
Для устройства Сегмент 2 - указывается, что из полного виртуального кадра требуется извлечь чатсь изображения, размером 16х16, левый верхний угол которого имеет координаты X=0,Y=16
Для устройства Сегмент 3 - указывается, что из полного виртуального кадра требуется извлечь чатсь изображения, размером 16х16, левый верхний угол которого имеет координаты X=16,Y=16
Все приемники имеют настройку вывода на свою матрицу, подключенную к приемнику, с координатоми левого верхнего угла матрицы X=0,Y=0.
Для применения настроек приемника - нажмите кнопку "Применить". Настройки должны вступить в силу немедленно, вывод полного кадра - посегментно на каждом устройстве в соответствии с привязкой.
При потере сигнала от Мастера каждый приемник переходит в режим автономной работы - начинает воспроизводить эффекты на матрице в соответствии с собственной программой настроек эффектов. При возобновлении сигнала от мастера* все приемники автоматически переключаются в синхронный режим работы в группе.
В художественных целях (например, оформление сцены) можно создавать панели распределенного экрана с пересекающимися границами (угол захвата окна мастера X,Y), разных размеров сегментов матрицы и так далее. Источником сигнала - мастером может быть назначен компьютер, подключенный к сети на котором эффекты формирует одна из программ типа Jinx! Фантазируйте!