- DMX512 Decoder 6 каналов
- Реализация управления по DMX своими руками
- Проект DMX512. Микроконтроллер управляет профессиональным шоу. Ч.3
- Содержание / Contents
- ↑ Начнем изучение схемы передатчика
- ↑ Список деталей:
- ↑ Принципиальная схема
- ↑ Программа на ассемблере
- Камрад, рассмотри датагорские рекомендации
- 🌼 Полезные и проверенные железяки, можно брать
- DMX512 Контроллер на 40 каналов
DMX512 Decoder 6 каналов
Используя замечательную программу Сергея Глушенко «FLProg» и библиотеку DMXSerial, собрал DMX декодер для управления яркостью двух RGB СВЕТОДИОДНЫХ ЛЕНТ (6 каналов).
DMX512 декодер– электронное устройство, способное конвертировать цифровой сигнал DMX512 под формат RGB (сигнал широтно-импульсной модуляции при постоянном напряжении). Это дает возможность управлять каналами по отдельности, что необходимо при подключении, например, RGB-прожекторов или лент.
Вид DMX декодера:
В основе DMX декодера используется Arduino, индикатор TM1367 и транзисторы IRFZ44N.
так же схема на 9 dip выключателях:
Немного о принципе работы DMX512 Decoder 6 каналов:
Вариант с TM1367.
После включения питания, для установки адреса DMX512 необходимо зажать одновременно кнопки «+» «-» на три секунды, замигает «А». Кнопки «+», «-» выбрать первоначальный адрес DMX (от 1 до 512), по истечению десяти секунд адрес сохранится в энергонезависимую память.
Включение режима «Тест» осуществляется выбором адреса 513. Режим «Тест» — поочерёдно, плавно включает выходные каналы, на дисплее отображается номер канала и его процент интенсивности.
Вариант с 9 dip выключателем.
После включения питания, для установки адреса DMX512 необходимо установить dip выключатели в положение «On», в определённой комбинации.
Источник
Реализация управления по DMX своими руками
DMX или же DMX-512 является стандартом, применяемым для управления световым оборудованием. Он позволяет управлять по одной линии связи одновременно 512 каналами. По каждому из каналов передаётся только один параметр прибора. К таким параметрам обычно относят: цвет светового луча, яркость лампы, число вспышек в режиме стробирования, поворот зеркала (либо всего прибора) по горизонтали, поворот зеркала (либо всего прибора) по вертикали, номер гобо-трафарета. В сложных приборах так же контролируется фокус луча и рассеивание (фрост). Каждый прибор имеет определённое количество управляемых дистанционно параметров и занимает соответствующее количество каналов в пространстве DMX512.
В настоящее время большинство именитых фирм, занимающихся выпуском концертного света, выпускают адаптеры USB для управления оборудованием непосредственно с собственного программного обеспечения, в обход аппаратных пультов. Цена таких устройств естественно велика.
В своё время, интересуясь этим вопросом, я не смог найти в рунете статьи, раскрывающей возможность создания преобразователей USB-DMX «на коленке». Поэтому, в данном топике хочу привести несколько вариантов реализации преобразователя USB-DMX своими руками, для последующего использования с одним из Open-Source продуктов. Оговорюсь сразу, что данные устройства могут быть не совместимы с некоторым световым оборудованием.
Вариант первый — всеми любимая FTDI.
DMX-512 в своей основе имеет не что иное, как стандарт RS-485, поэтому возможна реализация по средствам микросхемы FT232 и буферов RS-485. Одно из таких устройств предлагает фирма Enttec.
Электрическая схема с официального сайта базируется на FT232BM, требующей отдельную микросхему EEROM. Думаю, что замена на FT232R не повлияет на качество. Тем более что в интернете проскакивают такие реализации.
Непосредственно в даташите на FT232 имеется схема преобразователя USB — RS-485, но как показала практика она не подходит, возможно дело в несогласованности линии.
Вариант второй — микроконтроллер.
Таких устройств в интернете встречается немало. Выделю лишь два, имеющие полный комплект документации:
— Самый известный из преобразователей (реализован на AVR) — MINI-DMX. Думаю, что желающие смогут с легкостью доработать его, добавив USB интерфейс.
— Реализация на микроконтроллере PIC с сайта dmx512-online. Непосредственные ссылки на электрическую схему и руководство по прошивке.
Вариант третий — копии существующих устройств.
Найти открытых схем и исходников прошивок мне так и не удалось. Логика подсказывает, что внутри такие устройства имеют так же микроконтроллер или как максимум DSP. Уже готовые реализации во всю продают наши умельцы, например на форуме Vegalab. Если кто-то из хабражителей располагает схематикой и прошивками и готов ими поделиться, буду очень признателен.
Для работы с приведенными выше преобразователями подходят программы:
— Free Styler;
— DMX Control.
К сожалению, данные программы не обладают такой хорошей 3D визуализацией как фирменные продукты, но имею большую базу оборудования, что упрощает настройку в части назначения DMX каналов.
В заключение добавлю, что для того чтобы обезопасить себя от повреждения компьютера лучше включить в схему преобразователей USB-DMX гальванические развязки. Особенно это актуально при работе в нелегких сценических условиях. Сжечь материнскую плату в середине концерта удовольствие неприятное.
Источник
Проект DMX512. Микроконтроллер управляет профессиональным шоу. Ч.3
Я думаю, что прочитав теоретическую часть, в которой не всё сразу понятно, лучше сразу потихонечку приступим к практике.
Схему приемника и передатчика DMX, которую я предлагаю изучить, можно найти в просторах интернета, но она заброшена.
Мне кажется, что человек, который её придумал, пошел дальше и ему это устройство стало неинтересно. А нам, как начинающим, познавать этот микроконтроллерный мир, в самый раз .
Какой микроконтроллер лучше, а какой хуже, спор вечный, это также как на чём лучше писать программы на Ассемблере, VB, СИ или Delphi.
Да выбирайте, какой вам по душе, все они хороши, если знаешь что с ними делать.
Для меня, как начинающего, по душе сейчас простой PIC16F84, Proteus, Ассемблер и Delphi.
Ну и конечно набор программ, облегчающий жизнь программиста.
Содержание / Contents
↑ Начнем изучение схемы передатчика
Передатчик состоит из набора резисторов, пару конденсаторов, кварцевого резонатора, кнопочек и соответственно самого «мозга» микроконтроллера PIC16F84A.
↑ Список деталей:
1. Кнопки-переключатели (любые) — 12 шт.
2. R1-R12 10k
3. R13 4.7k
4. C1-C2 15p
5. D1 1N4148
6. U1 PIC16F84A
↑ Принципиальная схема
↑ Программа на ассемблере
;Asm файл для pic16c84 или 16f84, работает с кварцем 1MHz
;12 входов, управление переключателями (резисторы на «землю», перекл. на +5v)
; DMX выход с 1 по 12 канал, включаются (FFh), все остальные коды отключают канал.
; port A0 — DMX выход, соединяют с микросхемой sn75176 dmx driver (в другой схеме ;будет)
list p=16F84;
#include
__config _CP_OFF & _HS_OSC & _WDT_OFF & _PWRTE_ON
Reg_1 equ 0x00
Reg_2 equ 0x00
ch1 equ 0x10
ch2 equ 0x11
ch3 equ 0x12
ch4 equ 0x13
ch5 equ 0x14
ch6 equ 0x15
ch7 equ 0x16
ch8 equ 0x17
ch9 equ 0x18
ch10 equ 0x19
ch11 equ 0x1A
ch12 equ 0x1B
org 0x00
goto start
org 0x05
start
CLRF PORTA ;NEW
CLRF PORTB ;NEW
bsf STATUS,RP0
movlw 0xFF ; port b input
movwf TRISB
movlw 0xFE ; portA0 output, other bits input
movwf TRISA
movlw b’11010000′
movwf OPTION_REG
movlw b’00100000′ ; don’t allow interrupt
movwf INTCON
bcf STATUS,RP0
begin movlw 0x00
movwf ch1
movwf ch2
movwf ch3
movwf ch4
movwf ch5
movwf ch6
movwf ch7
movwf ch8
movwf ch9
movwf ch10
movwf ch11
movwf ch12
movlw 0xff
btfsc PORTB,0
movwf ch1
btfsc PORTB,1
movwf ch2
btfsc PORTB,2
movwf ch3
btfsc PORTB,3
movwf ch4
btfsc PORTB,4
movwf ch5
btfsc PORTB,5
movwf ch6
btfsc PORTB,6
movwf ch7
btfsc PORTB,7
movwf ch8
btfsc PORTA,1
movwf ch9
btfsc PORTA,2
movwf ch10
btfsc PORTA,3
movwf ch11
btfsc PORTA,4
movwf ch12
;—————————————————
dmxout
;—————————————————
;delay 2 cycle = 8uS
;—————————————————
bsf PORTA,0 ; PORTA =0000 0001
bsf PORTA,0 ; PORTA =0000 0001
;—————————————————
;delay 22 cycle = 88uS BREAK
;—————————————————
bcf PORTA,0 ; PORTA =0000 0000
movlw 0x06 ; PORTA =0000 0000
movwf Reg_1 ; PORTA =0000 0000
wr decfsz Reg_1, F ; PORTA =0000 0000
goto wr ; PORTA =0000 0000
nop ; PORTA =0000 0000
nop ; PORTA =0000 0000 88uS BREAK
;—————————————————
;delay 2 cycle = 8uS
;————————————————
bsf PORTA,0 ; PORTA =0000 0001
bsf PORTA,0 ; PORTA =0000 0001
;—————————————————
;delay 9 cycle = 36uS begin startcode
;————————————————
bcf PORTA,0 ;startbit ; PORTA =0000 0000
;delay = 8 machine cycles
nop
nop
movlw .2
movwf Reg_2
wr1 decfsz Reg_2, F
goto wr1
nop
;————————————————
bsf PORTA,0 ;stopbits
bsf PORTA,0
bsf PORTA,0
;————————————————
movlw 0x10
movwf FSR
chanel
movf INDF,w
;—————————————————
;delay 8 cycle .
;————————————————
bcf PORTA,0
movwf PORTA
nop
nop
nop
nop
nop
nop
nop
;————————————————
bsf PORTA,0
bsf PORTA,0
bsf PORTA,0
;————————————————
bcf STATUS,2
clrwdt
incf FSR
movf FSR,w
xorlw 0x1C
btfss STATUS,2
goto chanel
goto begin
end
Камрад, рассмотри датагорские рекомендации
🌼 Полезные и проверенные железяки, можно брать
Опробовано в лаборатории редакции или читателями.
Источник
DMX512 Контроллер на 40 каналов
Решил опубликовать интересное устройство, которое заинтересует довольно обширный круг людей. Речь пойдет о DMX-контроллере своими руками.
Данное устройство реализовано на микроконтроллере ATmega64A. Тактируется мк от кварцевого резонатора на 16 MHz , тактовая частота выбрана максимальной по документации , так как многоканальный программный ШИМ очень сильно загружает процессор , и реализовать высокочастотный ШИМ представляет трудность на низких тактовых частотах. В данной прошивке ШИМ работает на частоте 79Гц , потому как при более высокой частоте уже перестает работать usart интерфейс, и данные по dmx уже не принимаются .
Принцип работы программы очень прост :
Тут я не буду детально рассказывать о протоколе dmx512 и о физической шине rs485. Эту информацию можно найти в интернете.
В прерывании usart определяется ошибка приема данных , это сигнализирует мастер о начале пакета (команда BREAK 44us=>) . Следующий этап : в прерывании usart ловится MAB длительностью 4us и затем start bit с нулевым значением и только после этого программа принимает сами данные диммеров , и складывает в массив последовательно начиная с 0 ячейки. Затем в прерывании таймера этот массив сравнивается с программным таймером каждого канала и выполняется либо включение цифрового выхода , либо выключение. Также в этом прерывании выполняется адресация диммеров .
Работает это следующим образом: Если например задан адрес 10 для диммера , то буфер сравнивается с таймерами начиная с 10 адреса . Таймер 1 с буфером 10 , таймер 2 с буфером 11 и т.д. Можно конечно было чуток оптимизировать расход озу микроконтроллера, но это не имеет смысла , ресурсов в МК предостаточно.
Программируется контроллер не переключателями как в стандартных приборах , а прямо через тот же кабель и dmx передатчик. Для этого в основном цикле программы проверяется флаг занятости шины dmx. Определяется программно . Если команды BREAK не было (флаг = 0) то значит dmx не занят пока что, и АТ команды можно принимать .
Сделано так по нескольким причинам : 1 устройство будет закрыто в щитке и доступа к нему не будет, а адрес возможно нужно будет периодически менять, без вскрытия щитка. Вторая причина , это наличие уже готовых заводских плат идеально подходящих для данного проекта .
Тестировалось данное устройство в программе Freestyler и на приемопередатчике USB <>rs485 с чипом FT232 . Для программирования данного устройства нужно использовать как раз такой преобразователь (с двухсторонней передачей данных) у обычных dmx «свистков» выпилено физически прием данных. Хотя , можно и стандартным dmx шнурком запрограммировать плату . Только пользователь не узнает ответ от платы с подтверждением.
Самая нижняя схема (на МК ATmega8A) представляет собой «конфигуратор» , который может задавать предустановленные значения уровней яркости . Всего их 10шт.
В следующей версии будет создана прошивка для конфигуратора.
Плату можно с легкостью прошить программатором со стандартным ISP 6pin коннектором , или 10 пиновым коннектором , но подключенным через переходник к плате.
Фьюзы следующие :
Аппаратная часть поддерживает установку приемопередатчика на 433МГц HC-12 или WiFi ESP-01 (ESP8266), программно не реализовано в текущей версии. При необходимости индивидуально можно этот функционал добавить. К примеру управление контроллером через WiFi с веб интерфейсом , или по MQTT протоколу.
Демонстрационная прошивка работы устройства имеет полноценный функционал и на ее основе можно собирать и развертывать последовательно огромное количество каналов «диммеров» , к примеру , можно свободно собрать 10шт. таких плат и получится 320 каналов диммеров и 80 1 битных каналов , для строба или вкл./выкл. нагрузки.
Есть также прошивка на 40 чистых каналов диммеров (тут не публикую) у нее чуть ниже частота ШИМ (около 59Гц ) и она тоже прекрасно работает.
Фото собранного устройства:
Для перепрограммирования DMX контроллера , необходимо закрыть программу управления (Freestyler к примеру если ее используете) а запустить предварительно установленную программу Терминал (например бесплатную Terminal 1.9b)
открыть ком порт который использует DMX переходник , например СОМ2 и настроить скорость обмена 250000 бод.
АТ команды для перепрограммирования адреса и прочих опций DMX контроллера следующие:
AT+REV? — версия программного обеспечения.
ответ платы такой:
REV 1.0
DEC 2018
autor: Artem Ugrimov
AT+TEST> — тестовая команда , включение всех выходов на 1 секунду. Для проверки исправности силовой части контроллера и т.д.
ответ платы такой: TEST_OK! если команда успешно принята и выполнена.
AT+PWM_SET> — тестовая команда , проверка регулятора ШИМ . После стрелки нужно дописать число от 0 до 255. Например: AT+PWM_SET>25 . Отправив эту команду на всех каналах установится значение ШИМ 25. На 8 1 битных каналах установится максимальное свечение так как лог.0 считается если значение регистра меньше 10 , а лог.1 если больше 10.
ответ такой: PWM_OK=25, или PWM_ERR если ошибка.
AT+CONFIG> — Команда для смены адреса контроллера. По умолчанию адрес = 0. Для смены адреса нужно отправить значение (от 1 до 511) адреса в таком формате: AT+CONFIG>48 .
ответ такой: AT+CONFIG>OK! — если успешно , и ADDR_SET_OK=Х если ошибка . Х возвращенное значение , которое было принято.
Список компонентов, схемы, герберы и прошивку можно скачать ниже
Источник