DMX Test-Sender                  

von Paul Korn        
Elektronik-Labor  Projekte   AVR   T13-Contest


 
Zum Steuern von professionellen Scheinwerfern und Lichteffekten wird das DMX Datenprotokoll verwendet. DMX bedeutet Digital MultipleX und damit können viele Geräte mit insgesamt 512 Kanälen im Bereich von 0-255 (8 Bit) geregelt werden. Das kann zum Beispiel ein Dimmer sein, der die Helligkeit eines angeschlossenen PAR-Scheinwerfers regelt, oder ein Moving-Head, bei dem die PAN und TILT Bewegungen durch Schrittmotoren gesteuert werden.
Der Standard zur Übertragung nach DMX- 512 wurde durch das USITT (United States Institute for Theatre Technology) beschrieben und liegt derzeit in der letztgültigen Fassung vom August 1990 vor. Der Übertragungsstandard nach DMX- 512 lehnt sich an den Standard RS-485 an, der die elektrische Schnittstelle beschreibt. Inzwischen existiert auch eine Deutsche DIN-Norm zu diesem Thema. Diese hat die Bezeichnung DIN 56930.
 
Doch es ist nicht immer einfach diese DMX Geräte anzusteuern und ihre Funktion zu prüfen. Es sind spezielle Lichtsteuerpulte oder PC-Interfaces mit spezieller (zum Teil sehr teurer) Software nötig, um den Geräten über das Digitale Format Befehle mitzuteilen. Will man allerdings beim Aufbau oder vor einer Show nur 'mal schnell schauen, ob die Lampen alle noch funktionieren, ist oben genannte Steuerung oft zu umständlich, oder zu unhandlich. Die Bereits erwähnten PAR-Scheinwerfer werden an Traversen befestigt, an denen sie mit einem Dimmer verbunden sind, welcher DMX gesteuert ist. Diese Traversen hängen oft sehr hoch über der Bühne, sodass diese nur durch klettern erreichbar sind. Da kann man nicht noch einen Computer mit Interface zum Testen mit nach oben nehmen. Mann müsste die Lichtsteuerung so verkleinern, dass sie in die Hosentasche des Technikers passt und die dann automatisch auf Knopfdruck die Lampen per DMX ansteuert.
Aufgrund des recht komplizierten Datenprotokolls von DMX-512 ist die Ansteuerung eine große Herausforderung an den  Controller, sodass im Speicher des Tiny13 nur für etwa 90 der 512 Kanäle ist. In dieser Version werden allerdings nur 4 Kanäle gesendet, da für meinen Verwendungszweck nicht mehr als 4 Kanäle benötigt werden. Sollen mehr Kanäle gesendet werden, kann man im Code die Zeile:
„“
beliebig oft( bis ca. 90x) einfügen.
 
Das Bascom Programm besteht hauptsächlich aus Wartebefehlen und ein/ausschalten von PORTB.0, an dem das Signal ausgegeben wird. Um den Tester zu starten, muss PORTB.3 zuerst gegen Masse gezogen werden. Dies geschieht über einen Taster, der mit PB.3 des Attiny13 und GND verbunden ist. Erst dann startet der Controller mit der Ausgabe der Daten an PB.0. Dieses Signal muss noch an die serielle Schnittstelle RS-485 angepasst werden. Dazu wird ein serieller Schnittstellentreiber SN75176BP verwendet. Das DMX Signal wird schlussendlich über eine 3-poplige XLR-Buchse ausgegeben.
 
Im DMX  Standard wird zwar eine 5-poplige XLR Verbindung vorgeschrieben, welche allerdings in der Praxis nur wenig Beachtung findet. Das liegt sicherlich am höheren Preis der 5-popligen Verbindungen, aber auch daran, dass auch aufgrund des geringeren Preises XLR Mikrofonkabel zur Übertragung des DMX Signals verwendet werden, zumal diese in einer Band, die eine Lichtanlage besitzt, oft schon zu Genüge vorhanden sind.
 
Die Bauteile für den hier gezeigten Tester mit Gehäuse und XLR-Buchse kosten bei Reichelt weniger als 5€.
Hier noch die Bauteilliste:
 
Bauteile (Reichelt Bestell-Nr.):
1x µA 78L05 0,11€ (5V-Regler)
1x SN 75176BP 0,27€ (Schnittstellentreiber)
1x ATTINY 13A-PU 1,15€ (Mikrocontroller)
2x KERKO 100N 0,12€
2x GS 8 0,08€
1x XLR 3EB-N 0,65€
1x T 250A 0,19€
1x GEH KS 42 1,10€
1x CLIP 9V 0,22€
= 3,89€

1x Platine passend für Gehäuse zurecht sägen
1x 9v Batterie
C1 und C3 sind optional um eventuelle Restwelligkeit bei Betrieb mit einem Netzteil zu filtern bzw. um den Taster zu entprellen und wurden deshalb in die Preiskalkulation nicht mit einbezogen.
 
Achtung, Diese Schaltung wurde noch nicht ausgiebig getestet! Somit kann kein störungsfreier Betrieb garantiert werden. Ich übernehme keinerlei Haftung für Sach- oder Personenschäden, die durch den Betrieb dieser Schaltung, auch in abgeänderter Form, entstehen.

Download: DMX-tester.zip

'ATtiny13 DMX Tester
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 8
$swstack = 4
$framesize = 4
Config Portb.0 = Output
Portb.3 = 1
Declare Sub Ch

Do
Do 'anfang
Loop Until Portb.3 = 0
Portb.0 = 1
Toggle Portb.0 'Reset
Waitus 88
Portb.0 = 1
Waitms 100
Toggle Portb.0 'Startbyte
Waitus 4
Portb.0 = 1
Toggle Portb.0
Waitus 4
Portb.0 = 1
Toggle Portb.0
Waitus 4
Portb.0 = 1
Toggle Portb.0
Waitus 4
Portb.0 = 1
Toggle Portb.0
Waitus 4
Portb.0 = 1
Toggle Portb.0
Waitus 4
Portb.0 = 1
Toggle Portb.0
Waitus 4
Portb.0 = 1
Toggle Portb.0
Waitus 4
Portb.0 = 1
Waitus 4
Toggle Portb.0
Portb.0 = 1
Waitus 4
Toggle Portb.0
Portb.0 = 1
Waitms 100 'Interdigit
Gosub Ch 'Kanal1
Gosub Ch 'Kanal2
Gosub Ch 'Kanal3
Gosub Ch 'Kanal4
Return
Waitms 500 'MARK zwischen Paketen´
Loop

Sub Ch
Toggle Portb.0 'Kanal Startbit
Waitus 4
Portb.0 = 1 'Bit1
Waitus 4
Toggle Portb.0
Portb.0 = 1 'Bit2
Waitus 4
Toggle Portb.0
Portb.0 = 1 'Bit3
Waitus 4
Toggle Portb.0
Portb.0 = 1 'Bit4
Waitus 4
Toggle Portb.0
Portb.0 = 1 'Bit5
Waitus 4
Toggle Portb.0
Portb.0 = 1 'Bit6
Waitus 4
Toggle Portb.0
Portb.0 = 1 'Bit7
Waitus 4
Toggle Portb.0
Portb.0 = 1 'Bit8
Waitus 4
Toggle Portb.0 'Stoppbit
Portb.0 = 1
Waitus 4
Toggle Portb.0 'Stoppbit
Portb.0 = 1
Waitms 100 'Interdigit
End Sub

End



Elektronik-Labor  Projekte   AVR   T13-Contest