Realisierung

Technik

Auf der technischen Ebene waren 2 Problemstränge zusammenzuführen:

-

einerseits die sichere, simultane und synchrone Steuerung von etlichsten Antriebs- und Lichtelementen (also die eigentliche hardware der Kiste) und

- andrerseits eine bequeme, intuitive Methode, den poetischen Ablauf einer Geschichte in präzise Steuerbefehle umzusetzen (also die Ablaufprogrammierung der Kiste)

Man kann ja von einem Künstler nicht fordern, dass er seine Idee drehbuchmässig in abertausend Sekundenbruchteile zerlegt und jeweils minutiös und synchron zu Sprache und Musik beschreibt, welcher Scheinwerfer wann welche Beleuchtungsstärke haben und welcher Motor gerade mit welcher Geschwindigkeit bis wie weit in welche Richtung drehen soll. Man kann genau so wenig von einem Techniker erwarten, dass er solche Angaben dann manuell in eine unsägliche Folge von komplexen, binären Steuersignalen übersetzt und eintippt. Zur bequemeren Umsetzung einer theatralischen Idee in mechanistische Steuerbefehle wurde manchein Vorgehen erwägt & verworfen:

Idee Schwierigkeit
Man konstruiert eine einmalige, direkt bedienbare Universalsteuerung und 'spielt' das Theaterstück 'live' ab, wobei die anfallenden Daten der manuellen Steuerung aufgezeichnet und dann verwendet werden

Ablauf meist viel zu komplex, braucht viele Helfer. Muss in einem Guss fertiggestellt werden, keine individuellen Korrekturmöglichkeiten

Man zerlegt das Theaterstück in die einzelnen Elemente, spielt diese nacheinander manuell direkt ab, zeichnet Daten auf und führt zuletzt alles zusammen Vermutlich herber Verlust der Synchronizität, erfordert ziemliches Abstraktionsvermögen
man erstellt Tabellen mit Daten für die einzelnen Elemente unendliche, langweilige Tipparbeit, fehleranfällig
Man zeichnet die Geschichte mit grafischen codes auf und ermittelt die Daten über einscannen verlangt minutiöse Präzision, Zeichenbegabung
und vieles mehr ...

Einen gangbaren Weg zeigte sich dann nach reiflicher Überlegung bei der gedanklichen Anlehnung an den Film: Die ganze Geschichte wird quasi wie ein Film zusammengeschnitten auf der Basis von 25 'Bildern' pro Sekunde. Zur Erfassung der Daten wird dann ein Videoschnittprogramm (oder ein mehrkanaliges Audiobearbeitungsprogramm) verwendet. Voraussetzung für dieses Vorgehen ist die Existenz der bereits fertigen Audiospur des Theaters (oder zumindest eines verlässlichen Entwurfes derselben). Die Tonspur wird als zeitlicher Raster des gesamten Ablaufs benutzt und kommt in die erste Spur unseres (noch bildlosen) 'Filmes' zu liegen. Für jedes im Theaterstück vorkommenden Element (Licht, Motor, Servo) wird nun je eine zusätzliche Tonspur eröffnet. Zuvor wurde auch einmalig noch für jede vorkommende Kategorie von Elementen je eine kleine Bibliothek von verwendbaren Befehlen erstellt - wie etwa 'Licht ausblenden start', oder 'Motor drehe links bis Ende', oder 'Servo nach Position nn'. Diese Bibliothekseinträge sind grundsätzlich nichts anderes als kurze Tonschnipsel von präziser Frequenz (einer 0dB-Rechteckschwingung). Synchron zur Audiospur werden nun diese Steuerbefehle für die einzelnen Elemente an den geplanten Einsatzzeitpunkt in die zugehörigen Spuren gezogen. Sie können dort dann noch in ihrer Lautstärke verändert werden, was im weiteren jeweils als Mass für die Helligkeit , resp. Geschwindigkeit, resp. Positionsort ausgewertet wird. Die Element können beliebig auf der Spur verschoben und verändert werden und das solange, bis der ganze Ablauf in etwa erfasst scheint und den Absichten des Künstlers entspticht. Nun wird jede Tonspur (die beim audiomässigen Abspielen meist quasi still ist, manchmal dann aber aus einem unerträglichen Gepiepse unterschiedlicher Frequenzen und Lautstärken besteht) einzeln abgespeichert und kategoriespezfisch mit (selbstgeschriebenen) Hilfsprogrammen durchforstet. Die einzelnen Frequenzen und Amplituden können von diesen Programmen penibel genau erfasst und in maschinengerechte, der Hardware der Kiste entsprechende Steuerbefehle übersetzt werden. So wird aus jeder akustischen Befehlsspur eine kleine, binäre Steuerdatei sowie eine zu Kontrollzwecken dokumentierende Textdatei erzeugt (sogenantes log). Schlussendlich werden noch alle diese binären Steuerdateien zeitlich zu einer einzigen Gesamtsteuerdatei verwoben. Bei der Analyse der Daten wird auch gleich die Logik & Machbarkeit der geplanten Steuerungen geprüft und bei Mängel darauf Aufmerksam gemacht. Die frisch kompilierten Daten können der seriell angeschlossenen Kiste sogleich übermittelt werden und der Ablauf kann getestet werden. Einzelne Korrekturen können nun sehr präzise vorgenommen werden - erforderlich ist lediglich das erneute Abspeichern der veränderten Elemente und eine Neuanalyse/Rekompilerung/Übermittlung der Daten, was bequem & zügig ab einem ausgiebigen batchfile von statten geht. Diese intuitiv bedienbare, bequeme Struktur hat sich in der Praxis bestens bewährt.


Beispiel einer programmierten Sequenz (hier unter Adobe Premiere).

MONDOSKOP data file analysis
_______________________

Progs (c) by TM, Berne

Remember:
LIGHT Intensity-%, Fade-end %, Fadespeed, Fade-end (frame)
MOTOR speed, direction, endswitches
SERVO angle-%, angle-end %, speed, stop pos.(frame)
ZENTRAL MP3-volume, END

Frame, Device, Channel, Event,

1 motor 1 RESET: Wait till motor in LEFT end position
1 motor 11 RESET: Wait till motor in LEFT end position
1 motor 10 RESET: No specific motor position...
1 motor 9 RESET: Wait till motor in LEFT end position
1 motor 8 RESET: Wait till motor in LEFT end position
1 motor 7 RESET: No specific motor position...
1 motor 6 RESET: Wait till motor in LEFT end position
1 motor 5 RESET: Wait till motor in RIGHT end position
1 motor 4 RESET: Wait till motor in RIGHT end position
1 motor 3 RESET: Wait till motor in RIGHT end position
1 motor 2 RESET: Wait till motor in LEFT end position
6 light 11 ON
9 motor 1 turn duty %100 right till end
518 light 11 OFF
528 light 6 Fade in 1 100 1 552
534 motor 10 turn duty %100 right for ever
905 light 6 OFF
905 motor 10 stopp
935 light 8 ON
935 motor 6 turn duty %100 right till end
1169 light 9 Fade in 1 100 1 1193
1169 light 10 Fade in 1 100 1 1193
1178 motor 7 turn duty %55 right for ever
1214 light 8 OFF
1257 light 5 ON
1283 motor 8 turn duty %56 right till end
1292 light 9 Fade out 100 1 1 1316
1292 light 10 Fade out 100 1 1 1316
1310 motor 7 stopp
1329 light 9 OFF
1329 light 10 OFF
1424 light 9 Fade in 1 77 1 1448
1424 light 10 Fade in 1 100 1 1448
1437 motor 7 turn duty %100 right for ever
.....
5462 light 13 ON
5482 motor 7 stopp
5487 light 13 OFF
6327 motor 2 turn duty %100 left till end
6578 master 1 END --> reset ========== E N D ==========

Beispiel (gekürzt) eines generierten Log-files aus obigen Daten

Diese Programmierstruktur hat natürlich entsprechende Konsequenzen für die eigentliche hardware der Kiste:

Auch hier wurden etliche Optionen in Erwägung gezogen und die Wahl fiel bald auf unabhängige, autonome Steuereinheiten, die durch einen gemeinsamen Datenbus verbunden sind. Diese Struktur wird vielerorts verwendet, so gerade auch im 'richtigen' Theaterbetrieb. Hier wird heutzutage meist der DMX-512-bus verwendet, über den von einem zentralen Steuergerät aus die entferntesten Scheinwerfer, Effektmaschinen und mehr bedient werden können.

Die Elektronik einer Mondoskopkiste besteht im Prinzip aus einer Zentralen Steuereinheit, einer Lichtsteuerung, einer Motorsteuerung, einer Servosteuerung sowie kleinen Hilfsplatinen.
Als Datenverbindungsbus wurde hier aber das für lokal kurze Verbindungen geeignete I2C-protokoll gewählt - umsomehr als die ausgewählten Mikrokontroller (Atmel AVR) damit relativ gut umgehen können.

Die Zentraleinheit nimmt die Befehle der Bedienungselemente entgegen (Münzeinwurf, Sprachauswahl, Lautstärkeregelung) und kann serielleVerbindung mit einem PC aufnehmen für Statusmeldungen und Kontrollprüfungen sowie zwecks Neuprogrammierung des Theaterablaufes. Sie bedient auch den MP3-player mit den dort aufgezeichneten Sprachvesionen des Theaterstückes. Die MP3-Steuerung ist leider nicht ganz unproblematisch, da je nach angewähltem track die Reaktionszeit völlig unberechenbar ist. Um einen absolut synchronen Ablauf zu garantieren beginnt letztlich jede Tonspur mit einem hässlichen Synchronisiersignal und die Befehlsausgabe der Zentraleinheit startet erst nach dessen Empfang. Dieser Umstand hat eine zusätzliche, digitale Lautstärkeregelung erfordert um das lästige Startsignal lautsprecherseitig zu unterdrücken. Auf der Zentralplatine befindet sich auch ein leistungsfähiger Audioverstärker.
Die wichtigste Aufgabe der Zentraleinheit ist aber natürlich die gesamte Steuerung des Ablaufes und hier werden im 1/25-Sekundentakt alle programmierten Befehle aus einem nichtflüchtigen Speicher geholt und an die angeschlossenen Untereinheiten zur weiteren, autonomen Verarbeitung weitergegeben. Am Ende einer Vorstellung überwacht die Zentraleinheit die programmierte Rückführung der beweglichen Elemente in die ursprüngliche Startposition und gibt den Münzeinwurf erst wieder frei, wenn das Theaterstück erneut gespielt werden kann. Die Zentraleinheit steuert auch die Beleuchtung des Vorhanges und kann mit unterscheidbaren Blinkrhytmen auf Fehler in der Mechanik hinweisen. Es werden auch noch weitere Vorkehrungen getroffen, so dass die Mondoskopkiste maximal bereit ist und bei Münzeinwurf sogleich loslegt... es gibt ja nichts lästigeres als Automaten, bei denen nach Münzeinwurf erst mal lange nichts passiert und so sind auch die ersten Fausthiebe und Fusstritte vorprogrammiert...


Zentralplatine mit MP3-player (manuelle Lautstärkeregelung wurde später umgebaut)

Eine Lichtsteuereinheit kann bis zu 16 Quellen autonom bedienen. Die Beleuchtungsmittel sind frei wählbar von bescheidenen Leuchtdioden bis zu 12V/20W-Halogenbirnchen. Für ein Fading etwa bekommt der angesprochene Kanal lediglich Start- und Endwert (0 - 100%) übermittelt sowie über welchen Zeitraum gefadet werden soll. Da die autonome Abarbeitung eine wesentlich höhere Datenrate erlaubt als die auf 1/25-Sekunde festgelegte Gesamtstruktur ermöglicht dies auch sichtbar feinere Abstufungen. Dennoch sind - gerade bei Leuchtdioden - die 8-bit-Auflösung an der unteren Grenze und bei genügend Budget wäre eine 16-bit-Auflösung mit logarithmischer Kurvenumrechnung wünschbar... Maximal sind 64 Lichtquellen möglich.


Layout Lichtsteuerplatine für 16 Quellen / 2 Mikrokontroller

Eine Motorsteuereinheit kann bis zu 16 12V-Getriebemotore (max. 2 A) steuern. Sie besteht aus Untereinheiten, die jeweils 2 Motore kontrollieren über eine integrierte H-Brücke: links/rechtslauf mit PWM-Geschwindigkeitsregelung. Jeder Motorkanal verfügt über 2 Positions-Rückmelder (Endschalter) und falls eine willkürliche Motoraktion zu selbstzerstörerischen Schäden führen könnte, sind zusätzlich hardware-Unterbrecher eingebaut. Sämtliche Motorkanäle verfügen ausserdem über einen gemeinsamen Meldekanal, der erst dann freigegeben wird, wenn alle Motore eine nach programmierten Angaben festgelegte Position eingenommen haben und so eine Startkonstellation erfüllt ist. Es können bis zu 32 Motore kontrolliert werden


Motorsteuerplatine für 16 Motore

Eine Servoeinheit kann bis zu 16 Modellbauservos bedienen. Diese müssen aber mit Bedacht eingesetzt werden, da der unkontrollierbare Einschaltschwenker nicht unterdrückt werden kann. Ansonsten sind die Geschwindigkeit der Positionseinnahme abhängig vom gewählten Servotyp. Langsame Bewegungen können analog den Lichtfadings autonom ausgeführt werden. Bis zu 64 Servos sind bedienbar.

Eine Zusatzplatine enthält einen Infrarotempfänger, so dass Befehle zur Lautstärkeregelung über Fernbedienung eingegeben werden können. Diese Platine verfügt auch über hochwertige Kopfhörervertstärker sowie eine Stummschaltung. Es hat sich nämlich in der Praxis gezeigt, dass die Lautstärke zwingend dem Umgebungspegel angepasst werden muss und dieser kann je nach Zuschaueranzahl schnell sehr stark schwanken. Bei engen Ausstellungsverhältnissen kann auf Kopfhörerbetrieb ausgewichen werden.

Eine weitere Zusatzplatine kontrolliert die Münzeingabe: Während der Abspiel- oder Rücksetzphase ist ein Münzeinwurf unwirksam und die Münze geht verloren. Um die Zuschauer nicht zu verärgern wird die Münzeingabe mechanisch gesperrt und nur dann freigegeben, wenn das Theater auch abgespielt werden kann...

Bei einer durchschnittlich ausgestatteten Mondoskopkiste sind ca. 15 Mikrocontroller (Atmega88, Atmega48, Attiny13, AT89C4051) im Einsatz.
Alle Schaltungen wurden selbst entwickelt und die Platinen wurden selbst gezeichnet und hergestellt. Bei Bestückung und Verlötung haben glücklicherweise begabte Helfer mit angepackt. Die Mikrokontrollerprogramme sind durchwegs in Assembler geschrieben und für die sichere Datenübertragung des Theaterstückes in den Ablaufspeicher wurde gar auf das X-Modem-Protokoll zurückgegriffen. Und was ich kaum zu sagen wage: auch die PC-programme, welche die Daten aus den Audiofiles extrahieren und aufbereiten und schlussendlich verlinken & dokumentieren sind in purem x86-assembler geschrieben. Sie alle laufen klaglos im DOS-fenster von Win-XP.... (trotz allen Unkenrufen).

Als Netzteil dienen (rezyklierte) PC-ATX-Netzteile. Die Zentraleinheit wird vom Standby-teil gespiesen und die Versorgung der Untereinheiten sowie Licht/Motore/Servos wird erst bei Bedarf automatisch eingeschaltet. Der Audioteil verfügt über einen eigenen, 'sauberen' Netzteil.