Appunti sul DMX-512

Sono riuscito a pilotare un dispositivo DMX-512 con la Raspberry Pi tramite una interfaccia RS485. Questi sono gli appunti di quello che ho fatto per riuscirci.

DMX512, spesso abbreviato a DMX (Digital MultipleX), è uno standard di comunicazione digitale usato principalmente per il controllo dell'illuminazione di scena nell'industria dello spettacolo, per controllare numerose luci ed effetti da una console di regia. Recentemente è stato introdotto anche in ambito civile per l'illuminazione architetturale (fonte Wikipedia).

Essenzialmente è una seriale RS485 a 250.000 Kbps 8N2

Tramite questo programma Python sono riuscito a pilotare un dispositivo DMX-512 collegato tramite un adattatore RS485 mappato su una porta USB in una configurazione molto simile a quella che adotteremo per il controller CM3-Home.

Prova in Python

Apre la porta seriale su cui è mappato l'adattatore RS485 ed invia tre sequenze di comandi a tutti i 512 possibili dispositivi indirizzabili su un bus DMX512. Il dispositivo che ho provato occupa 6 indirizzi ed è stato programmato dal suo pannello per rispondere dall'indirizzo 0 al 5 (A001)

Il dispositivo usato è questo VDPL300CB User Manual ed il programma di prova accende in sequenza i led rosso, verde e blu.

import serial
import time

ser = serial.Serial("/dev/ttyUSB0")
ser.baudrate = 250000
ser.bytesize = serial.EIGHTBITS
ser.parity = serial.PARITY_NONE
ser.stopbits = serial.STOPBITS_TWO
ser.xonoff = False

def sendCmd(red,green,blue):
    ser.send_break(duration=0.25)
    ser.write(chr(0))

    ser.write(chr(0))
    ser.write(chr(red))
    ser.write(chr(green))
    ser.write(chr(blue))
    ser.write(chr(0))
    ser.write(chr(0))

    for i in range(512-6):
        ser.write(chr(0))

    ser.flush()

while True:
    for red in range (0,255,50):
        sendCmd(red,0,0)

    for green in range (0,255,50):
        sendCmd(0,green,0)

    for blue in range (0,255,50):
        sendCmd(0,0,blue)

ser.close()

Sergio Tanzilli (Autore - Progettista hw & sw - Imprenditore - Musicista dilettante, classe 1964)
Fondatore di Area SX srl, Acme Systems srl e del TanzoLab, si occupa dal 1974 di elettronica digitale, dal 1978 di microprocessori, dal 1992 di microcontroller, dal 1995 di Linux e pubblicazioni su Web, dal 2005 di progettazione, produzione e commercializzazione di schede Linux Embedded.
http://www.tanzilli.com - http://www.acmesystems.it - https://github.com/tanzilli - sergio@tanzilli.com



Le attività del TanzoLab si svolgono ogni mercoledi sera, salvo casi speciali, dalle ore 18:30 presso i locali della Acme Systems srl e consistono in:

  • Talk monotematici a cura di professionisti in vari settori tecnologici
  • Workshop pratici su elettronica embedded, produzione e informatica
  • Progettazione e realizzazione di nuovi prodotti embedded per l'IT

Le attività vengono coordinate tramite questo sito, in cui vengono pubblicati tutti i lavori svolti o in via di sviluppo, e tramite un gruppo Telegram con cui per interagire direttamente via chat con gli altri membri.