DMX (первый серийный) через модуль Xbee Pro с Arduino

Я хочу передать сигнал DMX через RF-модуль Xbee. Я понял, что отправка 1 Universe DMX может быть проблематичной .

Глядя на страницу Open DMX, мы видим, что информация DMX компьютера отправляется через USB, затем преобразуется в последовательный вывод (через Arduino), а затем преобразуется в DMX (через блок драйвера max485).

Мой вопрос в том, могу ли я просто отправить последовательный выход Arduino через Xbee на скорости 115200 бод и преобразовать сигнал в DMX на принимающей стороне, используя max485?

Ответы (2)

Если вы действительно хотите передать всю вселенную DMX, я бы не стал изобретать велосипед и использовать готовое и проверенное решение, это потому, что DMX не является надежным протоколом и требует большой пропускной способности (для последовательного протокола). существует множество решений разного уровня сложности, включая использование ip через Wi-Fi в качестве транспорта.

Если вы хотите передать только несколько каналов, как насчет того, чтобы просто извлечь изменения в этих каналах и передать их, а затем создать новый поток на другом конце?

я не могу просто отправить последовательный выход Arduino через Xbee на скорости 115200 бод и преобразовать сигнал в DMX на принимающей стороне, используя max485?

Нет, ты не можешь. Последовательный сигнал DMX должен передаваться со скоростью 250 кбит/с и посылает 88 мс или больше (обычно 100 мс) перерыв в начале кадра.

Ни одно из этих требований не может быть выполнено аппаратным обеспечением XBee * .

Чип max485 - это только приемопередатчик RS-485. Он не переводит и не изменяет битрейт и не создает для вас перерыв — он просто преобразует ваш цифровой последовательный сигнал в сигнал RS-485.

Поэтому ваш план не сработает без дополнительных усилий.

Вы можете использовать Arduino или другой микроконтроллер между XBee и max485, чтобы сделать перевод за вас. Arduino будет получать обновления значений канала со скоростью 115200 бит/с от XBee и сохранять их. Затем он периодически отправлял их на max485, отправляя перерыв, а затем данные на кадр.

Это должно выполнить вашу задачу по отправке информации о канале DMX через XBee.

* Имеется программируемый XBee с микроконтроллером на борту. Если вы перепрограммируете его, вы сможете генерировать необходимые сигналы, а затем просто подключить его к max485.

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