Радиоудлинитель для WS2812B

Jaeger
Jaeger аватар
Offline
Зарегистрирован: 23.03.2018
Имеется мысля управлять несколькими WS-лентами по радиоканалу с помощью nNRF24L01 на расстоянии до 10-25м. Суть в том, что световые эффекты зашиваются в контроллер  (ардуино) передатчика (пульта), который отправляет сформированный массив для пиксельной ленты в радиоканал. Приемник (их может быть несколько)
принимает этот массив и с помощью своего контроллера отправляет его в ленту. Как думаете, это реально осуществить? Световые эффекты реализованы на примерах FastLed.
 
b707
Offline
Зарегистрирован: 26.05.2017

реально, но есть несколько нюансов

1. Размер пакета NRF всего 32 байта, так что для сколько-нибудь больших лент придется пересылать помногу пакетов и отслеживать их корректный прием. Это все возможно, но точно не будет быстро, так что о световых шоу в реальном времени можно и не мечтать.

Куда "живее" выйдет, если зашить эффекты заранее в "концевых" ардуинах и посылать по NRF только номер эффекта.

2. Дальность и устойчивость связи обычных (не "усиленных") NRF такова. что на 25м они вряд ли потянут, метров на 10-15 максимум :)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

b707 пишет:

2. Дальность и устойчивость связи обычных (не "усиленных") NRF такова. что на 25м они вряд ли потянут, метров на 10-15 максимум :)

У меня усиленные только на максимальной мощности тянут несчастные 6м. Правда, там по пути две кирпичные стены у которых между рядами кирпичей стальные кладочные сетки проложены.

Jaeger
Jaeger аватар
Offline
Зарегистрирован: 23.03.2018

b707 пишет:

реально, но есть несколько нюансов

1. Размер пакета NRF всего 32 байта, так что для сколько-нибудь больших лент придется пересылать помногу пакетов и отслеживать их корректный прием. Это все возможно, но точно не будет быстро, так что о световых шоу в реальном времени можно и не мечтать.

Дальность 15 метров уже почти достаточно, но возможно использование в передатчике NRF с усилителем.
Да, нужно в режиме почти реального времени, частота обновления 50-100мс. Число пикселей в ленте - 60 шт, т.е. требуется переслать 3*60 = 180 байт. Почитал документацию на либу RF24, есть возможность уменьшить длину пакета за счет: уменьшить длину адреса трубы до 3 байт, отключить передачу CRC передатчиком и проверку данных приёмником. Далее использовать Функцию writeFast() - быстрая отправка данных без подтверждения приема. Пытаюсь попробовать на 2х ардуино нано, вот только в силу своих скромных возможностей в программировании,  затрудняюсь выделить пакеты по 32 байта из массива 180 байт для отправки в NRF и склеить массив на приеме для отправки в ленту.