Arduino – Controlando dispositivos de iluminação com protocolo DMX

Para controle de equipamentos profissionais de iluminação, geralmente usados em shows e casas noturnas, o protocolo de comunicação DMX, é simples e eficaz.

Com uma base de tempo (clock) de 250k bauds, note que uma porta serial comum opera geralmente em até 115,2k bauds (115200 bauds), com isso o frame de até 512 bytes, pode ser transferido em um intervalo curto o suficiente, para que o tempo de atualização do efeito luminoso, não seja muito perceptível visualmente.

Para facilitar ainda mais que tal poder utilizar um cabo longo sem que as interferências tenham muito efeito negativo na comunicação?

Conseguir isso é uma tarefa, praticamente simples, uma vez que um C.I. SN75176 ou compatível, faz a adaptação da lógica TTL para a utilizada na linha da rede RS485. Esta nada mais é do que um sinal com complemento, se o sinal estiver em estado lógico alto, outra saída vai estar em estado lógico baixo.

Devido a corrente ser mais alta na linha RS485, do que geralmente temos na TTL, e ainda por que o C.I. tem comparadores internos para recepção do sinal, com de faixa estreita de tensão, podemos adicionar até 32 nós (dispositivos) na rede RS485.

Só uma observação, para este tipo de rede, geralmente utiliza-se um resistor de 120 Ohms para terminador, ou seja, como a rede fica comprida assim como uma extensão, coloca-se um resistor no início e na outra extremidade, para melhorar a impedância da linha. Bons circuitos, contam ainda com supressores de tensão, para evitar súbitos picos de tensão na linha que queimariam os chips.

Obviamente, como todos nós estarão em paralelo, caso um, ou mais deles esteja consumindo mais corrente que o normal da linha RS485, toda comunicação vai ser comprometida, e até deixar de ocorrer.

Sabendo dessas características básicas, fica mais simples implementar um controle com DMX, por exemplo de um Movie, (Um tipo de canhão de luz, que tem motores para movimentar a cabeça de iluminação, PAN + TILT).

Para isso pode ser utilizado um Arduino, como a sua programação é feita em linguagem C, em Inglês, não vou traduzir para o Português, segue o link para a biblioteca, ela é muito simples de ser utilizada:

 

https://code.google.com/p/tinkerit/wiki/DmxSimple

 

O seu exemplo, é o mais simples possível:

    #include <DmxSimple.h>

void setup() {

DmxSimple.usePin(3); // Pino de saída do sinal DMX para ir ao SN75176

DmxSimple.maxChannel(4); // Máximo de canais para enviar (de 1 a 512)
}

void loop() {
DmxSimple.write(1, 127); /* Envia o valor 127 (pode ser de 0 a 255, byte) para o canal 1, tem que estar dentro da faixa do máximo escolhido*/
delay(10); // Aguarda 10ms
}
}

Veja que basta apenas declarar a biblioteca, definir o pino de saída, e a quantidade de canais (de 1 a 512) a serem atualizados, enviados no frame (bloco de bytes).

A opção de máximo de canais, permite reduzir o comprimento do frame DMX, poupando tempo, já que se apenas alguns canais (dos 512) estão sendo usados (atualizados), não tem porque enviar tudo novamente. Com isso pode ser enviado um novo frame com intervalo menor do que se fosse enviar os 512 bytes.

Para ficar mais interativo poderia adicionar potenciômetros nas entradas analógicas do Arduino, desta forma seria possível fazer o controle como uma mesa DMX.

Nada mais simples!

 

 

 

 

 

Maiores informações do hardware/software para DMX com Arduino podem ser encontradas aqui.

Para o caso de querer “reinventar a roda”, poderá encontrar mais informações sobre o protocolo DMX, publicado pela fabricante de componentes eletrônicos Microchip, neste arquivo.

Tem mais neste site.

E neste outro tem um exemplo com os potenciômetros.

Boa sorte.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: