[0001] Die Erfindung betrifft ein Verfahren zum Programmieren des Ablaufes von Aktionen
von an ein Steuermodul angeschlossenen und von diesem zum Erzeugen des Ablaufes angesteuerten
Aktoren, insbesondere Verfahren zum Programmieren eines Lichtsteuersystems, bei welcher
Programmierung zum Erzeugen eines eine Primäraktion überlagernden Ablaufes wenigstens
ein Plug-in über eine Schnittstelle mit einem Hostprogramm verknüpft wird. Die Erfindung
betrifft ferner ein Plug-in, vorzugsweise zur Verwendung in einem solchen Verfahren
sowie ein Lichtsteuersystem mit derartigen Plug-ins.
[0002] Bei Lichtsteuersystemen werden komplexe Lichtszenen oftmals durch Überlagerung einzelner
Lichtszenen erzeugt. Eine solche Lichtszene umfasst eine Primäraktion, die zumindest
von einer weiteren Aktion überlagert wird. Bei derartigen Überlagerungen kann es sich
beispielsweise um eine auf einer als Primäraktion definierten Lichtszenerie in einem
Ausschnitt derselben abspielende zweite Lichtszenerie handeln, die sich beispielsweise
durch ihre Farbdarstellung und/oder durch einen Bewegungsablauf von der Primäraktion
abhebt. Bei derartigen Lichtsteuersystemen handelt es sich um individuelle Lichtpunkte
oder Strahler, die in einer ein- oder zweidimensionalen Matrix angeordnet sind. Angeschlossen
sind die individuellen Lichtpunkte, die beispielsweise als LEDs ausgeführt sein können,
an ein Steuermodul, durch das diese in Abhängigkeit von dem jeweiligen Lichtsteuerprogramm
angesteuert werden. Zum Bereitstellen dieses Lichtsteuerprogramms bedarf es einer
Programmierung. Programmiert werden Überlagerungslichtszenen durch spezielle Überlagerungsalgorithmen,
wie beispielsweise durch Blau-Stanzverfahren oder unter Verwendung des sogenannten
Alpha-Blendingverfahrens. Zum Programmieren einer solchen Lichtszene werden an ein
für die Lichtsteuerung eingesetztes Programm - das Hostprogramm - ein oder mehrere,
zueinander in Reihe geschaltete Plug-ins an die diesbezügliche, zum Anschließen eines
Plug-ins definierte Schnittstelle angeschlossen bzw. mit dieser Schnittstelle verknüpft.
Damit übernimmt ein solches Plug-in oder eine solche Plug-in-Reihenanordnung die Ansteuerung
der Aktoren des überlagerten Bereiches der Matrix, während das Hostprogramm für die
Ansteuerung der Primärszenerie bzw. der Primäraktionen verantwortlich ist. Für den
Fall, dass der überlagerte Bereich der ein- oder zweidimensionalen Lichtquellenanordnung
bewegt erscheinen und somit sukzessive über unterschiedliche Bildpunkte wandern soll,
ist es erforderlich, über ein oder mehrere weitere Schnittstellen - sogenannte Sidechain-Interfaces
- zusätzlich entsprechende Bewegungsvektoren in das entsprechende Plug-in einzuspeisen.
Ein solches Plug-in ist sodann über zwei unterschiedliche Schnittstellen an das Hostprogramm
angeschlossen. Auch ist es über Sidechain-Interfaces möglich, die Größe eines überlagerten
Teilbereichs oder geometrische Verformung dieses Teilbereiches zu steuern.
[0003] Ist bei einem Lichtsteuersystem die Programmierung unter Verwendung des Hostprogramms
durchgeführt worden, wird die Programmierung typischerweise auf einem dem Lichtsteuersystem
zugeordneten Speicher abgelegt. Der typischerweise für eine solche Programmierung
eingesetzte Computer kann anschließend von dem Lichtsteuersystem getrennt werden.
[0004] Auch wenn mit dieser vorbekannten Programmierung prinzipiell komplexere Lichtszenen
erzeugt werden können, ist der Programmieraufwand bei komplexer werdenden Lichtszenen
zunehmend höher; zudem wird mit komplexer werdenden Lichtszenen die Programmierung
zunehmend unüberschaubarer.
[0005] Ausgehend von dem vorbeschriebenen Verfahren zum Programmieren von Lichtszenen liegt
der Erfindung die Aufgabe zugrunde, den Vorgang der Programmierung für einen Benutzer
zu vereinfachen, insbesondere wenn komplexe Überlagerungsabläufe, beispielsweise in
Form von Lichtszenen erzeugt werden sollen.
[0006] Gelöst wird diese Aufgabe durch ein eingangs genanntes, gattungsgemäßes Verfahren,
bei dem das zumindest eine mit dem Hostprogramm über eine Primärschnittstelle verknüpfte
Plug-in über eine weitere, mit der Primärschnittstelle identische oder kompatible
Sekundärschnittstelle verfügt und entsprechend dem zu programmierenden Überlagerungsablauf
mit dem ersten, mit dem Hostprogramm verknüpften Plug-in ein oder mehrere weitere
Plug-ins mit dessen Sekundärschnittstelle verknüpft werden.
[0007] Bei diesem Verfahren erfolgt die Programmierung der Überlagerungsaktionen unter Verwendung
von Plug-ins, die neben ihrer üblicherweise vorhandenen Primärschnittstelle zum Verknüpfen
derselben mit einem hierarchisch übergeordneten Programm, beispielsweise dem Hostprogramm,
zusätzlich über eine Sekundärschnittstelle verfügen. Die Primärschnittstelle und die
Sekundärschnittstelle eines solchen Plug-ins sind kompatibel oder sogar identisch.
Dieses gestattet den Einsatz von Plug-ins auch als hierarchisch übergeordnete Programme,
um an diese ein oder mehrere weitere hierarchisch untergeordnete Plug-ins anschließen
zu können. Da sämtliche Plug-ins über eine Primär- und eine Sekundärschnittstelle
verfügen, können diese quasi beliebig miteinander verknüpft werden. Damit ist es möglich,
an eine einzige Schnittstelle im Hostprogramm eine Vielzahl von nach Art eines hierarchischen
Baumes angeordnete Plug-ins anzuschließen. Dieses ermöglicht, eine Steuerdatenbearbeitung
in einem oder mehreren derartigen Bäumen, wobei in jedem Baum nicht nur die Effektsteuerung
als solche, sondern auch die Bewegungssteuerung überlagerter Aktionspunktbereiche
der Matrix, beispielsweise Lichtpunktbereiche erfolgt. Aufgrund der Plug-in-Konzeption
können diese Daten über eine gemeinsame Schnittstelle in das Hostprogramm eingespeist
werden. Die Möglichkeit des baumartigen hierarchischen Anordnens von Plug-ins, wobei
jeweils die Primärschnittstelle eines untergeordneten Plug-ins mit der Sekundärschnittstelle
eines übergeordneten Plug-ins verknüpft wird, ist Grund dafür, dass problemlos und
ohne weiteres überschaubar mehrdimensionale Überlagerungen einzelner Szenen oder auch
der gesamten Matrix möglich sind. Bei der Programmierung beispielsweise eines Lichtsteuerprogramms
ist es allein notwendig, ein oder mehrere Bilderzeugungs-Plug-ins miteinander und/oder
mit einem oder mehreren bewegungssteuernden Plug-ins zu verknüpfen. Zu diesem Zweck
werden benutzerseitig in jedem Plug-in diejenigen Daten definiert, die über seine
Sekundärschnittstelle zur weiteren Bearbeitung untergeordneten, an diese Schnittstelle
angeschlossene Plug-ins abgegeben und zur Weiterleitung oder eigenen Weiterverarbeitung
wieder empfangen werden.
[0008] Das Verknüpfen einzelner Plug-ins zu Plug-in-Strukturen in der beschriebenen Art
und Weise kann problemlos visuell durch Anzeigen der aktuellen Baumstruktur dargestellt
werden. Vorzugsweise können Plug-in-Strukturen zur Ausbildung eines neuen eigenständigen
Plug-ins als Arbeitspaket dauerhaft verknüpft werden, wobei auch ein solches Plug-in
über eine Primärschnittstelle und vorzugsweise über eine Sekundärschnittstelle verfügt.
Auf diese Weise können individuelle, aus mehreren oder auch aus einer Vielzahl einzelner
Plug-ins zusammengesetzte Arbeitspakete erstellt werden, die anschließend in unterschiedliche
Programmierungen eingebaut werden können. Weisen diese aus einzelnen Plug-ins erzeugten
Arbeitspakete eine Sekundärschnittstelle auf, was bevorzugt der Fall ist, können diese
genauso wie die ursprünglichen Plug-ins gehandhabt werden.
[0009] Nachfolgend ist die Erfindung anhand eines Ausführungsbeispiels unter Bezugnahme
auf die beigefügten Figuren beschrieben. Es zeigen:
- Fig. 1a-1c:
- eine schematisierte Darstellung einer Lichtszenenmatrix mit einer Primärlichtszene
und einer diese Lichtszene überlagernden Szene (Figur 1a) sowie weitere Ausschnitte
aus dem Ablauf einer Lichtszene auf der Matrix (Figuren 1b, 1c) und
- Fig. 2:
- eine schematisierte Darstellung des für die Realisierung der Lichtszene der Figur
1 eingesetzten Lichtsteuerprogramms.
[0010] Ein insgesamt mit dem Bezugszeichen 1 gekennzeichnetes Lichtsteuersystem umfasst
eine Lichtpunktmatrix 2, die bei dem dargestellten Ausführungsbeispiel als zweidimensionale
Matrix ausgeführt ist. Die einzelnen Lichtpunkte L der Matrix 2 sind durch LEDs dargestellt,
wobei jeder Lichtpunkt L in Abhängigkeit von seiner Ansteuerung Licht in unterschiedlichen
Wellenlängen emittieren kann. Dabei sind die Wellenlängen so konzipiert, dass sie
zumindest einen Teil des sichtbaren Lichtspektrums abdecken.
[0011] Angeschlossen ist die Matrix 2 an ein Steuermodul 3 mit einem Prozessor zum Abarbeiten
eines Lichtsteuerprogramms. Mit Hilfe dieses Lichtsteuerprogramms können auf der Lichtpunktmatrix
2 Lichtszenen generiert und Lichtszenenabläufe erzeugt werden.
[0012] Dargestellt ist in Figur 1a die Lichtpunktmatrix 2 in einer Ansteuerung derselben,
dass auf dieser eine Primärszenerie mit bei dem dargestellten Ausführungsbeispiel
vertikalen unterschiedlich hellen Lichtstreifen erzeugt. Diese Lichtstreifen wandern
im Zuge des Ablaufes des Lichtsteuerprogramms von links nach rechts. Überlagert wird
diese Primärlichtszene und der Ablauf derselben durch eine zweite, sich von der Primärlichtszene
unterscheidende Lichtszene. Die zweite Lichtszene ist durch die kreuzschraffierten
zur Sekundärszene gruppierten Lichtpunkte L kenntlich gemacht. Lediglich im Wege eines
Beispieles und der Einfachheit halber wurde in dem dargestellten Ausführungsbeispiel
eine quadratische Gruppierung der Lichtpunkte für die zweite Lichtszene vorgenommen.
Die Lichtpunkte der zweiten Lichtszene emittieren Licht in einer anderen Wellenlänge,
unterscheiden sich mithin farblich. Zudem wandert die zweite Lichtszene beim Ablauf
des Lichtsteuerprogramms über die Lichtpunktmatrix 2, wie dieses schematisiert in
den Figuren 1b, 1c erkennbar ist.
[0013] Das Lichtsteuerprogramm zum Realisieren des Lichtszenenablaufes der Figuren 1a, 1b
und 1c ist nachfolgend anhand eines schematisierten Blockschaltbildes unter Bezugnahme
auf Figuren 2 erläutert. Das Lichtsteuerprogramm umfasst ein Hostprogramm 4, welches
die zum Ansteuern der Lichtpunktmatrix 2 notwendigen Steuerbefehle enthält. Je nach
Ausgestaltung des Hostprogramms kann dieses ausgelegt sein, um mit diesem eine Primärlichtszene
auf der Matrix 2 zu erzeugen. Das Hostprogramm 4 verfügt über ein oder mehrere Schnittstellen
5. Der Einfachheit halber ist in Figur 2 lediglich eine solche Schnittstelle 5 gezeigt.
Die Schnittstelle 5 dient zum Anschließen eines Plug-ins, über das alle oder ein Teil
der der Matrix 2 zuzuführenden Lichtsteuerdaten bearbeitet werden können. Bei dem
dargestellten Ausführungsbeispiel ist an die Schnittstelle 5 ein erstes Plug-in 6
angeschlossen, mithin das Plug-in 6 mit dem Hostprogramm 4 über seine Schnittstelle
5 verknüpft. Das Plug-in 6 verfügt über eine Primärschnittstelle P, über die das Plug-in
6 mit der Schnittstelle 5 des Hostprogramms 4 verknüpft ist. Diese Primärschnittstelle
P verfügt über einen Eingang E
P zum Empfangen von Lichtsteuerdaten und über einen Ausgang A
P, über die die empfangenen und von dem Plug-in 6 bearbeiteten Lichtsteuerdaten im
einfachsten Fall wieder in das Hostprogramm 4 eingespeist werden. Gleichfalls ist
es möglich, diese an eine Kette von weiteren Plug-ins weiterzugeben, deren letztes
über den Ausgang seiner Primärschnittstelle die resultierenden Daten dann an das Hostprogramm
zurückgibt. Bei dem dargestellten Ausführungsbeispiel wird mittels des Plug-in 6 die
Primärlichtszene generiert.
[0014] Das Plug-in 6 verfügt neben seiner Primärschnittstelle E
P über eine identisch konzipierte Sekundärschnittstelle S, an die ein oder mehrere
weitere Plug-ins angeschlossen werden können. Die Sekundärschnittstelle S verfügt
über einen Ausgang A
S, über den Lichtsteuerdaten zur weiteren Bearbeitung an ein an diese Schnittstelle
S angeschlossenes Plug-in übertragen werden können. Die Sekundärschnittstelle S verfügt
des Weiteren über einen Eingang E
S zum Empfangen der von den weiteren Plug-ins bearbeiteten Lichtsteuerdaten. Bei dem
dargestellten Ausführungsbeispiel sind an die Sekundärschnittstelle S zueinander in
Reihe geschaltet zwei Plug-ins 7, 8 angeschlossen und damit mit dem Plug-in 6 verknüpft.
Das Plug-in 6 definiert diejenigen Daten oder diejenige Datenmenge, die durch die
hierarchisch untergeordneten Plug-ins 7, 8 bearbeitet werden sollen. Im vorliegenden
Fall wird über den Ausgang A
S der Sekundärschnittstelle S des Plug-in 6 die Größe und damit die Umgrenzung der
Sekundärlichtszene definiert und an die Plug-ins 7, 8 zur Bearbeitung übertragen.
Die Plug-ins 7, 8 sind ebenso aufgebaut wie das Plug-in 6 und verfügen somit jeweils
über eine Primärschnittstelle P und eine Sekundärschnittstelle S. Das Plug-in 7 dient
zum Erzeugen der Bewegung der Überlagerung über die Matrix 2; das Plug-in 8 dient
zur Farbbearbeitung der Überlagerungsszene. Ein weiteres Plug-in 9 ist mit seiner
Primärschnittstelle P an die Sekundärschnittstelle S des Plug-in 7 angeschlossen und
dient einer Farbvariation innerhalb der zweiten Lichtszene während des Ablaufes derselben.
[0015] Hierarchisch gesehen bildet das Plug-in 6 unterhalb der Hostprogrammebene eine erste
hierarchische Plug-in-Ebene. Die Plug-ins 7, 8 sind hierarchisch dem Plug-in 6 untergeordnet
und bilden bei dem dargestellten Ausführungsbeispiel eine zweite Plug-in-Ebene. Das
Plug-in 9 befindet sich in einer dritten Plug-in-Ebene.
[0016] Die beispielhaft in Figur 2 dargestellte Plug-in-Struktur kann quasi beliebig erweitert
oder geändert werden, wobei eine Variation bezüglich einer Implementierung von Plug-ins
in allen Ebenen möglich ist. In jeder Ebene können zahlreiche Plug-ins in Reihe angeordnet
sein, wie dieses in Figur beispielhaft in der zweiten Plug-in-Ebene gezeigt ist. Ebenso
kann eine Plug-in-Struktur zahlreiche weitere Plug-in-Ebenen aufweisen.
[0017] Zum Erstellen der beschriebenen Verknüpfungen werden Kopien der in einem Speicher
hinterlegten Plug-ins an die jeweiligen Schnittstellen gelegt. Dieses kann mit einfachen
Mitteln visuell an einem Bildschirm angezeigt werden, beispielsweise nach Art eines
hierarchischen Baumes.
[0018] Da die Primärschnittstellen P und die Sekundärschnittstellen S der Plug-ins 6, 7,
8, 9 identisch zueinander aufgebaut sind, können die Plug-ins beliebig miteinander
kombiniert werden. Bei dem dargestellten Ausführungsbeispiel sind beispielhaft einige
wenige Plug-ins hinsichtlich ihrer Lichtdatensteuerung beschrieben worden. Eine Vielzahl
weiterer Plug-ins mit weiteren Steueroptionen sind typischerweise Teil eines solchen
Programmpakets. Die Kompatibilität der einzelnen Plug-ins miteinander erlaubt die
Ausbildung beliebig komplexer Strukturen, die problemlos als hierarchische Strukturbäume
zusammengestellt werden können. Damit lassen sich beliebig komplexe Lichtszenen programmieren.
[0019] Nach erfolgter Programmierung, zu der typischerweise ein Computer verwendet werden
wird, kann die Programmierung auf einen nichtflüchtigen Speicher eines für die Ansteuerung
der Matrix eingesetzten Steuermoduls übertragen werden. Das Steuermodul verfügt zu
diesem Zweck über eine entsprechende Programmierschnittstelle zum Anschließen des
Computers. Zum Ablaufenlassen einer Lichtszene, wobei auf einem solchen Speicher auch
unterschiedliche Lichtszenen hinterlegt sein können, bedarf es der Mitwirkung eines
an das Steuermodul angeschlossenen Computers grundsätzlich nicht.
[0020] Die Funktionalität der Programmierung wird vorzugsweise dadurch erhöht, dass bestimmte
Plug-in-Strukturen, beispielsweise die in Figur 2 abgebildete, als Arbeitspaket zusammengefasst
ein neues ursprungsprogrammseitig nicht bereitgestelltes Plug-in definieren kann.
Auf diese Weise können individuelle Plug-ins gebildet und definiert werden.
[0021] Die Erfindung ist anhand eines Lichtsteuersystems bzw. der Erstellung einer Programmierung
dafür beschrieben worden. Einem Fachmann erschließen sich aufgrund dieser Ausführungen
zahlreiche weitere Möglichkeiten, die Erfindung verwirklichen zu können, ohne den
Umfang der Ansprüche zu verlassen, ohne dass diese an dieser Stelle aufgezählt werden
müssten. So erschließt sich ohne Weiteres, dass das beschriebene Verfahren sich auch
zur Programmierung von Abläufen anderer Aktoren eignet und nicht lediglich im Rahmen
einer Lichtsteuersystemprogrammierung einsetzbar ist. Ein Einsatz ist beispielsweise
auch bei Audio-Anwendungen möglich. Gleichfalls kann das Verfahren bei Video-Anwendungen
oder bei Objektbeleuchtungen Einsatz finden.
Bezugszeichenliste
[0022]
- 1
- Steuersystem
- 2
- Lichtpunktmatrix
- 3
- Steuermodul
- 4
- Hostprogramm
- 5
- Schnittstelle
- 6
- Plug-in
- 7
- Plug-in
- 8
- Plug-in
- 9
- Plug-in
- AP
- Ausgang Primärschnittstelle
- AS
- Ausgang Sekundärschnittstelle
- EP
- Eingang Primärschnittstelle
- Es
- Eingang Sekundärschnittstelle
- L
- Lichtpunkt
- P
- Primärschnittstelle
- S
- Sekundärschnittstelle
1. Verfahren zum Programmieren des Ablaufes von Aktionen von an ein Steuermodul (3) angeschlossenen
und von diesem zum Erzeugen des Ablaufes angesteuerten Aktoren (L), insbesondere Verfahren
zum Programmieren eines Lichtsteuersystems, bei welcher Programmierung zum Erzeugen
eines eine Primäraktion überlagernden Ablaufes wenigstens ein Plug-in (6) über eine
Schnittstelle (5) mit einem Hostprogramm (4) verknüpft wird, dadurch gekennzeichnet, dass das zumindest eine mit dem Hostprogramm (4) über eine Primärschnittstelle (P) verknüpfte
Plug-in (6) über eine weitere, mit der Primärschnittstelle (P) identische oder kompatible
Sekundärschnittstelle (S) verfügt und dass entsprechend dem zu programmierenden Überlagerungsablauf
mit dem ersten, mit dem Hostprogramm (4) verknüpften Plug-in (6) ein oder mehrere
weitere Plug-ins (7, 8) mit dessen Sekundärschnittstelle (S) verknüpft werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die weiteren Plug-ins (7, 8) eben ihrer Primärschnittstelle (8) ebenfalls jeweils
eine Sekundärschnittstelle (5) aufweisen und zumindest eines dieser weiteren Plug-ins
(7) mit einem oder mehreren weiteren, eine Sekundärschnittstelle (S) aufweisenden
Plug-ins (9) verknüpft wird.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass über jedes Plug-in (6, 7) der Datenstrom definiert wird, der über seine Sekundärschnittstelle
(S) an ein mit diesem verknüpften weiteren Plug-in (7, 9) übertragen wird.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Verknüpfung der Plug-ins (6, 7, 8, 9) mit dem Hostprogramm (4) hierarchisch nach
Art einer Baumstruktur vorgenommen wird.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass ein aus mehreren Plug-ins gebildetes Arbeitspaket als neues Plug-in mit einer Pimärschnittstelle
und vorzugsweise auch mit einer Sekundärschnittstelle definiert wird und zur Verknüpfung
mit dem Hostprogramm und/oder anderen Plug-ins zur Verfügung steht.
6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Plug-ins (6, 7, 8, 9) als in einem Speicher abgelegte Computerprogramme ausgeführt
sind und zum Erstellen einer Verknüpfung einer Kopie des zu verknüpfenden Plug-ins
oder wenigstens eine Kopie der notwendigen Bestandteile desselben an die Schnittstelle
des zu dem zu verknüpfenden Plug-in übergeordneten Programms gelegt wird.
7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die Steuerung der Primäraktionen und diejenige der Überlagerungsabläufe über ein
und dieselbe Schnittstelle (5) erfolgt.
8. Plug-in mit einer Schnittstelle (P) zur Verknüpfung mit einem übergeordneten Programm,
etwa einem Hostprogramm (4), insbesondere zur Verwendung in dem Verfahren nach einem
der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass das Plug-in (6, 7, 8, 9) neben seiner Primärschnittstelle zum Verknüpfen des Plug-ins
(6, 7, 8, 9) mit einem übergeordneten Programm (4, 6, 7) eine mit der Primärschnittstelle
(P) identische oder kompatible Sekundärschnittstelle (S) zum Anschließen eines weiteren
Plug-ins verfügt.
9. Plug-in nach Anspruch 8, dadurch gekennzeichnet, dass die Sekundärschnittstelle (S) ausgelegt ist, dass der gesamte über die Primärschnittstelle
(P) empfangene Datenstrom, eine Teilmenge desselben, ggf. ergänzt um neue in dem Plug-in
generierte Daten zur Weiterverarbeitung in einem mit dieser Schnittstelle (5) verknüpften
Plug-in ausgegeben werden kann.
10. Lichtsteuersystem, umfassend ein Hostprogramm (4) mit einer Schnittstelle (5) zum
Anschließen eines Plug-in sowie mehrere weitere Plug-ins, dadurch gekennzeichnet, dass die dem Lichtsteuersystem zugeordneten Plug-ins (6, 7, 8, 9) jeweils neben ihrer