DMX
Test-Sender
von Paul Korn
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