dmx-priest: reprodutor e gravador DMX para equipamentos de iluminação

Situação



Sou voluntário para uma pequena organização, fazemos festas, concertos, etc.



Temos um console de controle de luz caro (Avolites Titan Quartz). Nós só o usamos para grandes shows e controle manual. O console se conecta a um dispositivo LAN2DMX (dmXLAN Buddy) que converte o protocolo Art-Net em um sinal que os dispositivos DMX podem entender.



Precisávamos de um dispositivo que pudesse gravar o programa do console principal e, em seguida, reproduzir esse preset indefinidamente. Deve ser fácil de usar, sem a necessidade de alcançar e cuidar de equipamentos caros e complexos.



Decisão



Ferro



  • Raspberry Pi. Qualquer versão servirá, provavelmente. Eu usei o segundo existente
  • Ecrã LCD. Usei um 16x2 com a blindagem I2C já instalada
  • Codificador rotativo. Algo que pode ser torcido e aproveitado como meio de entrada. Comprei um pronto, com todos os resistores.
  • Jumpers. Ou apenas fios, se soldados firmemente ao pente RPi
  • Coisas pequenas: capa, micro cabo USB, botão liga / desliga


Conectar



Exibir :



  • GND para o pino 6 (terra)
  • VCC para Pino 4 (alimentação 5V)
  • SDA para o pino 3 (GPIO 2)
  • SLC no pino 5 (GPIO 3)


Spinner :



  • CLK para o pino 12 (GPIO 18)
  • DT para pino 13 (GPIO 27)
  • SW para pino 11 (GPIO 17)
  • + para o Pino 1 (alimentação 3V3)
  • GND ao pino 14 (terra)


Fonte de alimentação :

Acabei de quebrar o cabo micro USB, soldar o botão. Eu trouxe um conector de alimentação redondo, que é mais fácil de usar.



Programas



Eixo



Pegamos um Raspberry Pi OS (32 bits) Lite padrão e o instalamos no SD usando Etcher.



Adicione o arquivo "ssh" ao / boot para habilitar o SSH, porque você não deseja conectar um monitor e teclado.



SSH para RPi:



youruser@homepc:~ $ ssh pi@[Pi-IP-address]


Nós atualizamos para todos:



pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get dist-upgrade


Arquitetura Open Lightning

Instale pacotes para construir o coração do nosso dispositivo - 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


compilar e instalar. tem preguiça de coletar pacotes e espero que, após o término do projeto, ninguém mais olhe dentro. vai levar muito tempo. no RPi 2 e em um cartão SD lento, deixei-o durante a noite.



pi@raspberrypi:~/ola $ autoreconf -i
pi@raspberrypi:~/ola $ ./configure --enable-rdm-tests
pi@raspberrypi:~/ola $ make
pi@raspberrypi:~/ola $ sudo make install


Carregamos ou verificamos o desempenho:



pi@raspberrypi:~/ola $ sudo ldconfig
pi@raspberrypi:~/ola $ olad -l 3


vá para http: // [endereço IP do Pi]: 9090 / ola.html e veja se tudo abre. na verdade, não precisamos de um servidor web, você pode copiá-lo no arquivo de configuração e construí-lo sem ele.



criar um serviço para o 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


e colocá-lo em inicialização



pi@raspberrypi:~ $ sudo systemctl start olad
pi@raspberrypi:~ $ sudo systemctl enable olad


I2C

você precisa habilitar I2C para interagir com a tela



pi@raspberrypi:~ $ sudo raspi-config


Em "Opções de interface"> "I2C"> "habilitar" e reinicie.

Vemos o endereço de exibição no barramento I2C, vamos precisar dele



pi@raspberrypi:~/dmx-priest $ sudo i2cdetect -y 1


O meu era 3f, ele precisará ser registrado em RPi_I2C_driver.py. Em teoria, seria melhor ler a variável de sistema do programa, mas eu estava com preguiça de terminar depois que tudo funcionou.



I.P. estático



Alguns consoles são bons em transmissão, alguns precisam ser registrados manualmente, então vamos fazer um IP estático em um endereço que seja compreensível e acessível a todos os dispositivos 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


sacerdote dmx



Programa de escrita própria para trabalhar com display, twist e ola. Python Eu não sei, RP é bem-vindo.



Puxa ola_patch para sintonizar a entrada (para escrever do console) ou saída (para funcionar por conta própria). Usa ola_recorder para gravação e reprodução.



Instalar:



pi@raspberrypi:~ $ sudo pip3 install git+https://github.com/Virusmater/dmx-priest


Adicionar à inicialização:



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


Yuzai



imagem



  • Gire para a direita 20 vezes para encontrar o modo de gravação. 20 vezes para que os usuários não escrevam nada acidentalmente. Visor: "Modo de gravação - pressione o botão".
  • Pressione: "Pronto para gravar - pressione para iniciar"
  • Preparando o console principal para reprodução. Insistimos na luz da maneira certa
  • Clique para iniciar a gravação: "Gravação em andamento - pressione para parar"
  • Estamos aguardando um pouco, dependendo do programa no console principal.
  • Clique para parar a gravação. Voltamos ao menu: "Modo de reprodução - pressione o botão"
  • Clique para entrar no menu de reprodução. A predefinição recém-gravada estará no formato AAAA.mm.dd HH: MM
  • Clique na predefinição ou clique em 99_blackout para sair e desligar todas as luzes


Códigos-fonte



https://github.com/Virusmater/dmx-priest



All Articles