Ситуация Я волонтер в небольшой организации, мы организуем вечеринки, концерты и т. д. У нас дорогой пульт управления освещением (Аволитес Титан Кварц).
Используем его только для больших выступлений и ручного управления.
Пульт подключается к устройству LAN2DMX (dmXLAN Buddy), которое преобразует протокол Art-Net в сигнал, понятный устройствам DMX. Нам нужно было устройство, которое могло бы записать программу с основной консоли, а потом бесконечно проигрывать этот пресет. Он должен быть простым в использовании без необходимости вынимать и обслуживать дорогостоящее и сложное оборудование.
Решение
Железо
- Raspberry Pi. Наверное любая версия подойдет. Я использовал второй, который у меня был
- ЖК-экран.
Я использовал 16x2 с уже прикрепленным экраном I2C.
- Роторный энкодер.
Что-то, что можно крутить и нажимать в качестве инструмента ввода.
Купил в готовом виде, со всеми резисторами.
- Джемперы.
Или просто провода, если намертво припаять к гребенке RPi
- Мелочи: чехол, микрокабель USB, кнопка включения.
Подключение
Отображать :- Земля к контакту 6 (земля)
- VCC к контакту 4 (питание 5 В)
- SDA на контакте 3 (GPIO 2)
- SLC на контакте 5 (GPIO 3)
- CLK на контакте 12 (GPIO 18)
- DT на контакте 13 (GPIO 27)
- SW на контакте 11 (GPIO 17)
- + на контакте 1 (питание 3V3)
- Земля к контакту 14 (земля)
Разъем питания круглый вынес, так удобнее пользоваться.
Программное обеспечение
Ось
Берем стандартную ОС Raspberry Pi (32-бит) Lite и устанавливаем ее на SD с помощью Etcher. Добавьте файл «ssh» в /boot, чтобы включить SSH, поскольку вы не хотите подключать монитор и клавиатуру.SSH к RPi:
Обновим на всякий случай:youruser@homepc:~ $ ssh pi@[Pi-IP-address]
pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get dist-upgrade
Открытая архитектура освещения
Устанавливаем пакеты для сборки сердца нашего устройства — Open Lightning Architecture. pi@raspberrypi:~ $ sudo apt-get install git autoconf libtool bison flex uuid-dev libcppunit-dev python-protobuf python-numpy protobuf-compiler libmicrohttpd-dev libprotoc-dev i2c-tools python3-smbus python3-gpiozero python3-pip3
pi@raspberrypi:~ $ git clone https://github.com/OpenLightingProject/ola.git
pi@raspberrypi:~ $ cd ola
скомпилировать и установить.
Мне лень собирать пакеты, и я надеюсь, что после окончания проекта никто и никогда не заглянет внутрь.
займет много времени.
Я оставил его на RPi 2 и медленной SD-карте на ночь.
pi@raspberrypi:~/ola $ autoreconf -i
pi@raspberrypi:~/ola $ .
/configure --enable-rdm-tests
pi@raspberrypi:~/ola $ make
pi@raspberrypi:~/ola $ sudo make install
Загрузите библиотеки и проверьте их работоспособность: pi@raspberrypi:~/ola $ sudo ldconfig
pi@raspberrypi:~/ola $ olad -l 3
пойдем http://[Pi-IP-address]:9090/ola.html и увидеть, что все открывается.
На самом деле нам не нужен веб-сервер; мы можем обмануть его в файле конфигурации сборки и собрать без него.
давайте создадим сервис для systemd pi@raspberrypi:~ $ sudo nano /etc/systemd/system/olad.service
[Unit]
Description=OLA daemon
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=pi
ExecStart=olad
[Install]
WantedBy=multi-user.target
и поставь в автозагрузку pi@raspberrypi:~ $ sudo systemctl start olad
pi@raspberrypi:~ $ sudo systemctl enable olad
I2C
вам нужно включить I2C для взаимодействия с дисплеем pi@raspberrypi:~ $ sudo raspi-config
Внутри «Параметры интерфейса» > «I2C» > «включить», а затем перезагрузиться.
Смотрим адрес дисплея на шине I2C, он нам понадобится pi@raspberrypi:~/dmx-priest $ sudo i2cdetect -y 1
У меня был 3f, его нужно будет прописать в RPi_I2C_driver.py. По идее, лучше было бы прочитать системную переменную из программы, но мне было лень доделывать это после того, как всё заработало.
Статический IP
Какие-то приставки я могу транслировать, какие-то нужно прописывать вручную, поэтому сделаем статический IP по адресу, понятному и доступному для всех dmx-устройств.
pi@raspberrypi:~ $ sudo nano /etc/dhcpcd.conf
# Example static IP configuration:
interface eth0
static ip_address=2.150.43.69/24
static routers=2.124.1.1
static domain_name_servers=2.124.1.1
DMX-священник
Самописная программа для работы с дисплеем, спиннером и олой.Python не знаю, пиар приветствуется.
Тянет ola_patch, чтобы настроить его на ввод (для записи с консоли) или вывод (для самостоятельной работы).
Использует ola_recorder для записи и воспроизведения.
Установить: pi@raspberrypi:~ $ sudo pip3 install git+ https://github.com/Virusmater/dmx-priest
Добавить в автозагрузку: pi@raspberrypi:~ $ nano /etc/systemd/system/dmx-priest.service
[Unit]
Description=dmx-priest
Requires=olad.service
After=network.target olad.service
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=pi
ExecStart=dmx-priest
[Install]
WantedBy=multi-user.target
pi@raspberrypi:~ $ sudo systemctl start dmx-priest
pi@raspberrypi:~ $ sudo systemctl enable dmx-priest
Давайте использовать это
- Поверните вправо 20 раз, чтобы найти режим записи.
20 раз, чтобы пользователи случайно ничего не записали.
Надпись на дисплее: «Режим записи – нажать ручку».
- Нажмите: «Готовы к записи – нажмите, чтобы начать»
- Подготавливаем основную консоль к воспроизведению.
Мы настаиваем на правильном освещении
- Нажмите, чтобы начать запись: «Идет запись – нажмите, чтобы остановить»
- Ждем некоторое время, в зависимости от программы на главной консоли.
- Нажмите, чтобы остановить запись.
Возвращает нас обратно в меню: «Режим воспроизведения – нажать ручку»
- Нажмите, чтобы войти в меню воспроизведения.
Свежий записанный пресет будет иметь формат ГГГГ.
мм.
дд ЧЧ:ММ.
- Нажмите на пресет или нажмите 99_blackout, чтобы выйти и выключить весь свет.
Источники
https://github.com/Virusmater/dmx-priest Теги: #Сделай сам или Сделай сам #Raspberry Pi #Разработка на Raspberry Pi #dmx-512 #dmx #открытая архитектура освещения-
Красота Или Практичность Серверной Комнаты
19 Oct, 24 -
Робот-Гитарист
19 Oct, 24 -
Дейкстра В Линейное Время
19 Oct, 24