Муфты электромонтажные от производителя Fucon

DMX Shield - плата расширения Arduino для проектов управления световыми эффектами

DMX Shield – простая плата расширения, которая позволит использовать платформу Arduino для управления системами освещения или световыми эффектами по интерфейсу DMX (Рисунок 1). Фактически, плата реализует интерфейс RS485, электрические уровни сигналов которого необходимы для коммуникации по протоколу DMX.

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

 Внешний вид платы расширения Arduino DMX Shield.
Рисунок 1. Внешний вид платы расширения Arduino DMX Shield.

При проектировании схемы платы расширения была заложена определенная гибкость. Так, с помощью перемычек (джамперов), пользователь может выбирать какие сигнальные линии платы Arduino использовать в качестве цифрового входа и выхода интерфейса DMX. Дополнительно, на плате установлен слот для карт памяти microSD с соответствующей схемой согласования уровней и разъем для подключения ЖК индикатора с последовательным интерфейсом.

Такая конструкция позволит реализовать базовые функции DMX протокола посредством сообщений, предварительно запрограммированных в коде программы микроконтроллера или, при использовании соответствующих библиотек, может стать автономной системой с функциями воспроизведения последовательностей записанных на карте памяти microSD. При необходимости данное решение может служить удобным интерфейсом для передачи DMX команд от ПК через последовательный порт.

Стандарт интерфейса и протокол обмена данными были разработаны специально для упрощения управления сложными осветительными системами и дополнительным оборудованием. Различные прожекторы, стробоскопы, диммеры, лазеры, дымовые машины и другое светотехническое оборудование должны управляться и контролироваться, но управление с централизованного пульта усложняет прокладку силовых кабелей и снижает безопасность.

В случае применения DMX протокола и интерфейса каждое устройство имеет свой интегрированный или внешний контроллер. Система управления посылает определенное адресное сообщение в виде байта данных на каждый контроллер, который, в свою очередь, его интерпретирует с учетом адреса и возможностей. Источник питания в такой системе освещения становится «локальным», и связь обеспечивается экранированным двужильным кабелем, по которому передаются низковольтные сигналы.

Адрес контроллера и данные (сообщения) передаются параллельно для всех контроллеров в сети, но каждый контроллер, ориентируясь на свой адрес, получает и интерпретирует только предназначенную для него информацию.

Схема передачи была разработана с целью повышения эффективности управления устройствами, поэтому интерфейс DMX поддерживает одновременное управление 512 устройствами с 40 полными циклами передачи в секунду. Чтобы добиться такого при передаче 8-битных данных, 1 стоп-бита и 1 старт-бита, скорость должна быть 250 Кбит/с. Последовательная передача данных начинается с заголовка, а затем байты передаются последовательно, начиная с первого (Таблица 1, Рисунок 2).

Таблица 1. Базовые команды протокола DMX512 и их длительность
(Каждый бит, передаваемый по протоколу DMX512, имеет длительность 4 мкс)

Описание команды
Мин.
значение
Типовое
значение
Макс.
значение
Единица
измерения
BREAK (Сброс)
88
88
1000000 
мкс
MAB (Метка после сброса)
 
8
 
мкс
FRAME WIDTH (Стартовый код)
 
44
 
мкс
SART/DATA/STOP BITS (Старт/Стоп биты,
биты данных)
 
4
 
мкс
MTBF (Метка времени между кадрами)
0
НО
1000000
мкс
MTBP (Метка времени между пакетами)
0
НО
1000000
мкс

Примечание: НО – означает «не определено», определяется разработчиком.

 Диаграмма сигнала при передаче данных по протоколу DMX512.
Рисунок 2. Диаграмма сигнала при передаче данных по протоколу DMX512.

Все это означает, что если мы хотим передать новые данные контроллеру с адресом 10, то необходимо также передать данные для контроллеров с адресами 1 – 9. Система адресации основана на номере передаваемого байта, поэтому каждый контроллер ведет подсчет входящих байтов. Контроллер игнорирует байты данных, поступающие до и псоле "своего".

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

В первоначальной версии протокола DMX значения в диапазоне 0-255 интерпретировались как уровни яркости осветительного устройства (00 – выключен, 255 – максимальная яркость), но растущий список устройств с интерфейсом DMX вызвал изменения в интерпретации значений байта. Появилось много дополнительных команд и функций, например, установка позиции, выбор программы, применение специфических параметров, активация функции и пр. Каждый производитель определяет набор команд и карту соответствия значений и функций. Следует учитывать, что иногда одного байта недостаточно для управления всеми возможностями контроллера, поэтому для устройства на шине DMX выделяется диапазон адресов, и считывается более одного байта в последовательности.

Принципиальная схема платы расширения

 Принципиальная схема платы расширения Arduino DMX Shield.
Рисунок 3. Принципиальная схема платы расширения Arduino DMX Shield.

Основным элементом платы является микросхема MAX485 компании Maxim (Рисунок 3), которая преобразует уровни цифровых сигналов микроконтроллера в дифференциальные сигналы двухпроводного интерфейса RS485. Микросхема содержит приемник, передатчик и логику управления. Для управления направлением передачи данных микросхема MAX485 имеет инверсные входы /RE (вывод 2) и OE (вывод 3). В нашем случае эти входы можно объединить и для управления потребуется одна линия ввода/вывода микроконтроллера. Выводы 6 и 7 микросхемы – это дифференциальный выход, вывод 1 – выход приемника, вывод 4 – вход данных.

Все сигнальные выводы микросхемы подключаются к порту D платы Arduino через перемычки (джамперы). Вывод RO (вывод 1) может подключаться к порту D0 или D4, вывод DI может подключаться к порту D1 или D3, а соединенные вместе /RE+OE могут подключаться к порту D2 или D5.

Еще одна микросхема, использующаяся в схеме, предназначена для преобразования ТТЛ уровней интерфейса ICSP платы Arduino в уровни с напряжением 3.3 В, которые требуются для работы с картой памяти microSD. Микросхема 74HC4050D содержит шесть буферов для преобразования уровней сигналов ТТЛ, но в данной схеме используются лишь три, включенные на входных линиях интерфейса microSD. Выходные уровни интерфейса microSD с напряжением 3.3 В корректно определяются микроконтроллером на плате Arduino  как «лог. 1».

Дополнительно на плате установлены два пользовательских светодиода (порт D8 и D7), пользовательская кнопка (порт A1), кнопка сброса и разъем для подключения ЖК индикатора с последовательным интерфейсом (порт A0 или A2, выбирается перемычкой).

Перед работой с платой необходимо корректно установить перемычки сигнальных линий (на плате они обозначены JRO, JDI, JRDE, Рисунок 4). Если совместно с Arduino не используются дополнительные платы расширения, то перемычки можно устанавливать в любую из двух позиций. При использовании дополнительных плат расширения перемычки необходимо устанавливать так, чтобы избежать конфликтов. Также учитывайте, что плата расширения Ethernet Shield использует интерфейс ICSP Arduino, и слот карты памяти microSD в таком случае может конфликтовать с Ethernet платой.

 Расположение элементов на плате расширения DMX Shield.
Рисунок 4. Расположение элементов на плате расширения DMX Shield.

Для работы с платой потребуется специальная программная библиотека функций DmxSimple.h, которая вместе с примерами доступна для скачивания в разделе загрузок.

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

Демонстрационное видео

Загрузки

Библиотека функций и исходные коды примеров - скачать

open-electronics.org

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: Arduino DMX shield for Illumination Projects

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя