Arduino DMX-512 Tester Controller – Полный набор деталей для надежного управления освещением
Компоненты и материалы
| Компонент | Количество |
|---|---|
| Arduino Mega 2560 | 1 |
| Потенциометр SparkFun Rotary 10 кОм, линейный | 1 |
| Тактильная кнопка SPST Off Momentary | 5 |
| LCD 20x4 символа (черный на зеленом, 5В) SparkFun Basic | 1 |
| Транзистор 2N2222A TO-18 NPN 75В 0.6А | 2 |
| Матричная клавиатура 4x4 | 1 |
| Трансивер MAX485 RS-485/RS-422 | 1 |
| Резистор 330 Ом | 2 |
| Резистор 1 кОм | 2 |
| Резистор 120 Ом | 1 |
| Светодиод 3 мм зеленый | 2 |
| Конденсатор 1 нФ | 6 |
| Клеммник большой с 3 винтами | 1 |
| Клеммник большой с 2 винтами | 1 |
| Тумблер слайд 1 полюс, 2 положения | 1 |
| XLR разъем 3-пинный для PCB Amphenol AC3FAH2-AU-PRE | 1 |
| XLR разъем 5-пинный для PCB Amphenol AC5FAH-AU-B | 1 |
| Мужской заголовок 40 позиций 1 ряд (0.1") | 4 |
| Фенолитовая передняя панель 15 x 20 см | 1 |
| Основание для микросхемы 8-пинное | 1 |
| Фоторезист сухой для PCB 30см*200см/2м | 1 |
О проекте
Инструмент управления для тестирования и световых шоу по протоколу DMX-512, идеально подходит для быстрых тестов на стационарных или временных установках освещения. Проект возник из необходимости иметь портативную систему для быстрого тестирования в световых установках без необходимости устанавливать световые пульты, интерфейсы или компьютеры в условиях на улице, в агрессивных или труднодоступных средах.
Основа проекта
- Arduino Mega 2560 Rev-3
- Библиотека Arduino для четырех вселенных DMX v0.3 — Deskontrol
- Библиотека LCD v1.2.1 — Francisco Malpartida
- Симуляция Arduino в Proteus — Microcontrolandos
Аппаратная часть v0.4
Примечания к выпуску...
- Поддержка прошивки v0.9 – v1.3
- LCD 4x20 с подсветкой и контрастом, управляемыми программно
- Питание от USB, батарей или внешнего источника
- Навигационная клавиатура
- Клавиатура 4x4
- Аналоговый управлющий потенциометр
- Выключатель вкл/выкл (не применимо к питанию по USB)
- DMX выход через клеммник, XLR 3-пин и 5-пин
- Светодиоды статуса DMX выхода
- Симуляция в Proteus V7.7 SP2
- Схема и PCB в Proteus v8.0 SP1
Схема

Печатная плата

Симулятор

Начинаем сборку...
Используем одностороннюю фенолитовину, чистим медь наждачной бумагой с водой по кругу.

В Proteus отправляем файлы на печать пресс-ацетат негатива (есть PDF с файлом).

Используем метод фоторезистовой пленки.

Используем ламинатор для идеального прилегания пленки к плате.

Добавляем немного воды между платой и ацетатом, чтобы оно не смещалось, и освещаем УФ-светом.

Травление хлорным железом — платы чистые и готовы.

Сверлим отверстия.

Паяем компоненты.

Снимаем направляющую с потенциометра.

Сверлим фенолит для установки потенциометра.

Крутим ручку и припаиваем контакты к площадкам.

В случае с малой платой, припаиваем заголовки сверху, обрезаем лишние контакты наждачной бумагой с водой.

Клеим двусторонний скотч для крепления клавиатуры к плате.

Столкнулись с деталью: заголовки мешают флексу клавиатуры, подрезаем (учесть в следующей версии).

Паяем заголовки под клавиатурой и загибаем назад для бокового подключения клавиатуры.

Устанавливаем клавиатуру на плату LCD, деталь: база MAX485 очень близко к клавиатуре, немного давим (учесть в следующей версии).

Клеим скотч на USB-порт Arduino Mega для предотвращения КЗ между дорожками.

Все компоненты установлены.

Загружаем прошивку на Arduino.

Прошивка v1.2
Примечания к выпуску...
- Поддержка Hardware v0.3 – v0.4
- Навигация курсором легкая и интуитивная
- Быстрый ввод значений с клавиатуры
- Ввод значений с аналогового потенциометра
- Банки памяти хранят 8 вселенных DMX
- Чтение из EEPROM для запуска предустановленной вселенной DMX
- Выбор опций памяти для запуска
- Управление DMX Unitary: выбор конкретного канала, отображение значений предыдущих и следующих каналов
- Матричное управление DMX: матрица 3x5 со значениями каналов
- Chaser DMX Control: последовательность выбранных каналов с заданным временем
- DMX Sequencer: последовательность между вселенными в EEPROM с выбранным временем
- Multiply DMX Control: умножение значений для заполнения выбранных каналов
- Функция поиска светильника от выбранного канала
- Быстрый доступ к опциям памяти
- Опции памяти: Save, Load, Clear, Clear All (для банков и очистки RAM)
- Опции памяти для 8 банков вселенных DMX
- Функция Black Out
- Управление подсветкой LCD
- Управление контрастом LCD
- Горячие клавиши для подсветки LCD
- Компиляция Arduino IDE v1.0.6
- Библиотека Arduino четырех вселенных DMX v0.3 — Deskontrol.net
- Библиотека LCD v1.2.1 — Francisco Malpartida
Код
Полный исходный код доступен в репозитории: GitHub
Пользовательский ввод
При запуске предлагаются опции «Initial Memory» для установки начальных значений RAM.
- Символ «>» показывает положение курсора в меню
- Символ «+» и мигающий курсор указывают на ожидание числового ввода
- Навигация между меню: курсор вверх, вниз, вправо, влево и центр как «Enter»
- При нажатии «Enter» в меню, требующем ввод, появляется «+ ___» и мигающий курсор — используется клавиатура; если число меньше 3 знаков, нажмите «#» как «Enter» на цифровой клавиатуре
- При вводе значения DMX-канала: после «Enter» клавиша «A» вводит «255» (максимум), «B» — «000» (минимум)
- Клавиша «C» — поиск светильника/канала: выберите позицию канала в значении, нажмите «Enter» и «C» — значение будет переключаться между «000» и «255», для остановки нажмите «C» снова
- Клавиша «*» — вкл/выкл подсветки
- Клавиша «D» — только для аналогового потенциометра: ввод значения вращением
- «Ctrl» — возврат в меню «Control Options»
Initial Memory (Начальная память)
Устанавливает начальные значения RAM, чтение из EEPROM:
- Empty (EEPROM не трогается, все каналы «000»)
- Load (загрузка сохраненных в EEPROM значений вселенной DMX)
- Clear (стирание значений в EEPROM, каналы «000»)
Control Options (Опции управления)
Выбор метода управления DMX-каналами:
- «Memory» — доступ к опциям памяти
- «Unitary» — быстрый доступ к конкретному каналу
- «Matrix» — матрица 3x5 с текущими значениями каналов
- «Chaser» — последовательность между каналами
- «Multiply» — присвоение значения числу каналов с заданным шагом
- «Config» — системные настройки
Unitary Control (Поточное управление)
Быстрый доступ к конкретному каналу:
- «Channel» — выбор канала
- «Value» — значение канала
- «Ctrl» — меню «Control Options»
- «Memory» — меню «Memory Options»
Matrix Control (Матричное управление)
Отображение матрицы 3x5 со значениями DMX-каналов:
- «C ---» — номер выбранного канала от курсора
- «Mem» — «Memory Options»
- «Ctrl» — «Control Options»
- «001-015» — диапазон каналов для отображения в матрице
Chaser Control (Управление последовательностью)
Последовательность между каналами:
- «ChaserCH» — текущий последовательный канал (после старта)
- «Delay» — время в мс между шагами (значение ×10 = мс)
- «First CH» — первый канал последовательности
- «Final CH» — последний канал последовательности
- «Ctrl» — «Control Options», последовательные значения не влияют на RAM
- «Start» — запуск последовательности, переключается на «Stop» для остановки
Пример: Delay 100 (100×10=1000 мс), First CH 001, Final CH 512 — последовательность от канала 1 до 512 каждый секунда.
Multiply Control (Множественное управление)
Присвоение значения числу каналов с числовым шагом:
- «Value» — значение для записи (000-255)
- «First CH» — первый канал
- «Multiply» — шаг умножения каналов
- «Quantity» — количество повторений
- «Ctrl» — «Control Options», влияет на RAM каналов
- «Memory» — «Memory Options»
- «Apply» — проверка и применение: если невозможно — «Error», иначе применяет умножение
Пример: Value=255, First CH=001, Multiply=003, Quantity=170, Apply — 170 каналов от 1 до 510 каждый 3-й со значением 255.
Memory Options (Опции памяти)
Доступ к опциям EEPROM:
- «Save» — сохранение текущей вселенной DMX
- «Load» — загрузка сохраненной вселенной из EEPROM
- «Empty» — очистка RAM без влияния на EEPROM
- «Clear» — полная очистка вселенной в EEPROM
- «Black» — «Black Out»: все каналы в «000» без влияния на память, выход по «Enter»/центр с восстановлением значений
- Cancel — возврат без изменений
Config (Настройка)
Системная конфигурация (в «Control Options»):
- «Backlight» — яркость подсветки LCD 000-255
- «Contrast» — контраст LCD 150-255 (минимум 150, чтобы LCD был виден)
- «Exit» — возврат в предыдущее меню
- Измененные значения сохраняются в EEPROM автоматически
About (О программе)
Отображение информации о проекте, версиях железа и прошивки (в «Config»). Выход по «Enter»/центр.
Дополнительная информация и обновления в репозитории: GitHub
Производственный процесс
- Веб-управляемая DMX-система освещения: Arduino Mega как мастер-контроллер
- Интерактивный гироскопический LED-дисплей на NeoPixel Ring и Arduino
- DIY USB-геймпад на Arduino: собственный высокопроизводительный контроллер
- Unopad: Бесшовный Arduino MIDI-контроллер для Ableton Live
- Pixie: DIY-наручные часы на Arduino Pro Mini и NeoPixel — стильный светодиодный тахометр времени
- Управление Arduino-роботом через Firmata и геймпад Xbox One
- Контроллер вакуумно-люминесцентного дисплея (VFD) на Arduino — DIY набор
- Освоение распознавания и синтеза речи на Arduino Due
- Arduino Home Controller с Alexa: умный дом голосовым управлением
- Переносная система видеонаблюдения: робот с камерой на Raspberry Pi и Arduino