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 telapi@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

- 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