Разбивка по юниверсам
Сколько пикселей влезает, как разложить их по контроллерам и почему границы юниверсов нельзя пересекать.
Пиксельный проект — это всегда десятки юниверсов. Их раскладка должна быть описана данными и совпадать с настройкой контроллеров.
Сколько влезает
512 каналов в юниверсе:
| Тип | Каналов на пиксель | Пикселей в юниверсе |
|---|---|---|
| RGB | 3 | 170 |
| RGBW | 4 | 128 |
| RGB + диммер | 4 | 128 |
| RGB 16 бит | 6 | 85 |
170 пикселей RGB занимают 510 каналов; два последних обычно не используются.
Пиксель №171 при RGB не начинается в 511-м канале и не «переползает» в следующий юниверс. Такое разбиение ломается на всех контроллерах. Каждый юниверс содержит целое число пикселей.
Два способа разложить
По контроллерам. Один юниверс = один физический выход контроллера. Просто, предсказуемо, легко чинится. Если у контроллера восемь выходов по 170 пикселей — восемь юниверсов подряд.
Сплошной поток. Все пиксели подряд, юниверсы нарезаются механически. Экономнее по юниверсам, но при поломке одной ленты сложнее понять, что именно уехало.
Для реальных объектов практически всегда правильнее первый: логика раскладки должна совпадать с физической коммутацией.
Таблица раскладки
line controller port universe start_px count
strip_A ctrl_1 1 1 0 170
strip_B ctrl_1 2 2 170 170
strip_C ctrl_1 3 3 340 120
wall_1 ctrl_2 1 11 0 128
Из неё строится и таблица маршрутизации DMX Out CHOP, и настройка
контроллеров, и документация объекта —
Format и маршрутизация.
Настройка контроллера
Контроллер должен быть настроен зеркально: те же юниверсы, тот же стартовый канал, тот же тип пикселя, то же количество на порт. Расхождение на один юниверс даёт классический симптом: всё работает, но сдвинуто.
Unicast против broadcast
При десятках юниверсов широковещание перегружает сеть: каждый контроллер получает пакеты всех остальных.
Правильно: unicast на адрес каждого контроллера или мультикаст sACN на управляемом коммутаторе — sACN, Настройка сети.
Частота
Сорок пакетов в секунду на юниверс. При тридцати юниверсах это 1200 пакетов в секунду — немного, но при трёхстах уже заметно. Смотрите не только на «работает», но и на загрузку сети и на то, успевает ли контроллер.
Не нарезайте впритык. Пустой юниверс между блоками стоит ноль и однажды позволит добавить ленту, не пересобирая всю раскладку.