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:
1 motor 1 RESET: Wait till motor in LEFT end position |
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.