Bitte beachten Sie auch diese Ergänzung!
Bitte beachten Sie auch diese Ergänzung!
IRdeo ist zum einen eine lernfähige Fernbedienung, zum anderen ein Interface für eine unter Windows realisierte Schnittsteuerung für Sony- und Panasonic-Geräte (Control-L- und Edit-Code-kompatibel). Die Fernbedienungsfunktion wird für die Steuerung der Videogeräte beim Schneiden benötigt, sie läßt sich aber auch unabhängig von dieser Aufgabe verwenden - und zwar universeller und flexibler als alle Fernbedienungen auf dem Wohnzimmertisch. Im ersten Teil des Artikels steht diese Anwendung im Vordergrund.
Um den Nachbau zu erleichtern, gibt es IRdeo (so heißen Hard- wie Software) als gedruckte Platine von eMedia (siehe Inserentenverzeichnis). Damit sich der Aufwand auch lohnt, ist auf der IRdeo-Platine neben der lernfähigen Fernbedienung ein Interface für maximal drei Videogeräte (Sony oder Panasonic [2]) untergebracht, über die der Rechner unter anderem den aktuellen Zählerstand der Zuspieler übermittelt bekommt. Die Benutzung dieses Interface zum Schneiden von Videofilmen oder allgemein zum Steuern von Videogeräten beschreiben wir voraussichtlich in der nächsten c't.
Durch Teilbestückung kann man sich auf das Infrarotinterface beschränken. Die Adaption dieser Idee auf andere Computer (z. B. Macintosh) sollte ohne viel Aufwand möglich sein: die Spezifikation der seriellen Schnittstelle ist einer der ältesten und immer noch gültigen Standards in der schnellebigen Computerbranche.
Um herauszubekommen, wie eine Fernbedienung `blitzt´, gibt es - neben dem hier vorgestellten IRdeo-Interface - verschiedene Möglichkeiten. Die einfachste besteht darin, die Ansteuerinformationen mit einem Speicheroszilloskop direkt an der Infrarotsendediode der Infrarotfernsteuerung abzunehmen. Jeder Besitzer eines PC mit Soundkarte und einem besseren Soundbearbeitungsprogramm kann diese Information auch ohne teures Meßequipment erhalten. Wer um die Integrität seiner Originalfernbedienung fürchtet (bei heutigen Konstruktionsmethoden nicht unberechtigt), sollte solche Experimente mit einer Zweitfernbedienung durchführen.
Bei Infrarotbefehlen, die oft über rund 100 ms lang sind, ist es nahezu zwangsläufig, daß irgendein Interrupt im PC die Messung stört und das aufgenommene Timing verfälscht. Da die Befehle jedoch mehrfach wiederholt werden, kann man solche Störungen durch Mittelung und Ignorieren von Ausreißern sehr gut ausgleichen.
Ist der Befehl aufgezeichnet, wird aus der kürzesten Impulsgruppe und der kürzesten Pause zwischen zwei Impulsgruppen der Mittelwert gebildet. Dieser Mittelwert bildet die Basiszeiteinheit. Ist eine Pause länger als das Zwanzigfache dieser Basiszeiteinheit (empirisch ermittelt), kann man annehmen, daß eine Pause zwischen zwei identischen Befehlen vorliegt.
Um zu einer handlichen Notation bei der Impulsaufzeichnung zu gelangen - statt `Zwei Dünne, zwei Dicke, ein Mitteldicker, ein Dünner, zwei Mitteldicke´ -, kann man die Impulsgruppen und Pausen auch als Verhältnis zur Basiszeiteinheit ausdrücken. Der `Play´-Befehl eines Sony-Camcorders sieht dann so aus:
| µs | Art | Basiseinheiten |
| 2422 | Impulsgruppe | 4 · 1 = `1111´ |
| 601 | Pause | 1 · 0 = `0´ |
| 610 | Impulsgruppe | 1 · 1 = `1´ |
| 601 | Pause | 1 · 0 = `0´ |
| 1212 | Impulsgruppe | 2 · 1 = `11´ |
| 601 | Pause | 1 · 0 = `0´ |
| 610 | Impulsgruppe | 1 · 1 = `1´ |
| 601 | Pause | 1 · 0 = `0´ |
| 1212 | Impulsgruppe | 2 · 1 = `11´ |
| 601 | Pause | 1 · 0 = `0´ |
| 1214 | Impulsgruppe | 2 · 1 = `11´ |
| 601 | Pause | 1 · 0 = `0´ |
| 610 | Impulsgruppe | 1 · 1 = `1´ |
| 600 | Pause | 1 · 0 = `0´ |
| 608 | Impulsgruppe | 1 · 1 = `1´ |
| 601 | Pause | 1 · 0 = `0´ |
| 1214 | Impulsgruppe | 2 · 1 = `11´ |
| 601 | Pause | 1 · 0 = `0´ |
| 1212 | Impulsgruppe | 2 · 1 = `11´ |
| 601 | Pause | 1 · 0 = `0´ |
| 1212 | Impulsgruppe | 2 · 1 = `11´ |
| 601 | Pause | 1 · 0 = `0´ |
| 608 | Impulsgruppe | 1 · 1 = `1´ |
| 601 | Pause | 1 · 0 = `0´ |
| 608 | Impulsgruppe | 1 · 1 = `1´ |
Wiederholungsfaktor: 5
Basiszeiteinheit: 604 µs
Pause zwischen zwei Befehlen: 24,8 ms
Die `krummen´ Zahlen erklären sich daher, daß diese Werte von IRdeo bestimmt wurden und systembedingt ein gewisses Grundrauschen aufweisen. Schreibt man die ermittelten Einsen und Nullen hintereinander als Hex-Zahlen nieder und füllt die letzte Zahl gegebenenfalls mit Nullen auf, ergibt sich die Folge $F5, $AD, $AB, $6D und $40 - und die könnte man sich notfalls sogar im Kopf merken.
Dieses Verfahren ist ohne eine Änderung des Codes unter DOS, Windows 3.1x und Win 95 einsetzbar. Unter NT scheitert die Routine, da dort der serielle Baustein exklusiv nur vom System bedient werden kann. Ein direkter Zugriff mit `Port´- oder Assemblerbefehlen wird vom System gesperrt.
Wird das Programm zum ersten Mal aufgerufen, muß die gewünschte Schnittstelle und das Timing des Rechners bestimmt werden. IRdeo läuft unabhängig davon, ob die Hardware schon an den Rechner angeschlossen ist. Das Einmessen dauert rund 30 Sekunden und muß normalerweise nur einmal pro Rechner gemacht werden.
Sodann erfolgt der Vorschlag, eine Datei mit der Defaultbelegung der Fernbedienung anzulegen. Diesem Vorschlag kann man ohne Bedenken Folge leisten. Einige fertige `Fernsteuerungen´ für Sony und Panasonic liegen dem Programm bei und können per `Laden´ ausprobiert werden. Diese les- und editierbaren ASCII-Dateien mit der Erweiterung `.cdx´ legen fest, an welcher Stelle auf dem Schirm die Fernbedienung erscheinen soll, wie groß sie selbst und wie groß die Tasten sind. Jede belegte Taste ist mit den charakteristischen Eigenschaften Beschriftung, HEX-Code und Impulsfolge vertreten. Die Größe der Knöpfe kann man nach Anwahl des Menüpunktes `Service´ bestimmen. Über die Größe des Fensters legt man die maximale Anzahl der Knöpfe fest.
Zur Programmierung der eigenen Fernbedienung muß der Menüpunkt `Bearbeiten/Lernen´ angeklickt werden. Sofort ist das gesamte Fenster mit Knöpfen bedeckt. Wird jetzt ein Knopf angeklickt, erscheint das `Lernfenster´. Hier bestimmt man die Beschriftung des Knopfes und seine Funktion. Knöpfe ohne Beschriftung werden unsichtbar, sobald der Modus `Lernen´ durch nochmaliges Anklicken des Menüpunktes desaktiviert wird. Jeder Knopf kann entweder als `normaler´ Sende- oder als Makroknopf betrieben werden. Makro bedeutet, daß mehrere Knopf-Klicks hier zusammengefaßt werden können. Zum Beispiel die Sequenz `Satellitenreceiver einschalten, Fernseher auf SCART, erstes Programm´.
Wegen des kooperativen Multitaskings ist die Lernphase unter Windows 95 besonders kritisch. Daher sollte man beim Lernen IRdeo als einziges Programm aktiv lassen. Sollte das nicht ausreichen, lautet die übliche Maßnahme, weitere unerwünschte Störungen durch das Betriebssystem zu stoppen: die automatische CD-Erkennung ausschalten, die Größe der Auslagerungsdatei statisch einstellen und bei langsamen Rechnern die Anzeige der Uhr aus der Taskleiste nehmen.
Die IRdeo-Hardware besitzt einen Infrarotempfänger, einen Infrarotsender und drei bidirektionale Schnittstellen zum gleichzeitigen Anschluß von Sony- oder Panasonic-Videogeräten. Das RS-232-Signal wird über eine neunpolige DSub-Buchse angeschlossen, das Videoequipment über drei 3,5-mm-Stereoklinkenbuchsen. 2,5-mm-Klinkenbuchsen sind sehr störanfällig und gehen oft schon vom Angucken kaputt.
DTR und RTS bestimmen `nebenbei´ auch die Funktion der Schaltung. Sind beide negativ, ist die Infrarotleuchtdiode aktiv und sendet die Signale, die über TxD hereinkommen. DTR, RTS und TxD laden einen Pufferkondensator von 1000 µF auf, der dafür genügend Energie bereithält. In der Schaltung ist die Standard-Infrarotdiode LD274 verbaut, die laut Spezifikation für 100 mA ausgelegt ist. Variationen der Schaltungen für Infrarotdioden höherer Leistung oder mehrere in Reihe (= größere Reichweite) sind möglich.
In den anderen drei Kombinationen von DTR und RTS (-+, +-, ++) ist eine der drei Videoschnittstellen aktiv. Die Signale DTR und RTS steuern die zwei Multiplexer-Bausteine 4052 (IC3 und IC4). Mit diesen werden die zwei Signale der drei Klinkenbuchsen wechselweise auf den Treiberbaustein 14C88 (unbedingt CMOS-Ausführung verwenden!) geschaltet, der die Signale auf RS-232-Potential hievt. Die Empfänger für das Videoequipment der IRdeo-Schnittstellen sind als sehr hochohmige, rein passive Open-Collector-Schaltungen ausgelegt. Zum Senden von Kommandos an das Videoequipment wird der positive Anteil des Signals TxD ebenfalls über einen Multiplexer 4052 (IC3) an die Transistoren T4 bis T5 geleitet, die zum Kurzschließen der `heißen´ Enden der Klinkenbuchse dienen.
Wenn man erlernte Telegramme naturgetreu wiedergeben möchte, muß man die Anstiegs- und Abfallzeit bei der Auswertung berücksichtigen. Durch die sehr große Hysterese in der Verschaltung des TSL261 mit dem 14C88 kann die ansteigende Flanke des TSL261 unberücksichtigt bleiben. Die abfallende Flanke verfälscht allerdings die Messung stark und muß bei der Berechnung der Zeiten entsprechend berücksichtigt werden.
Die Stromversorgung des Infrarotempfängers TSL261 wird über einen Multiplexer-Kanal (IC3, Pin 11) geschaltet und ist nur aktiv, wenn die Signale DTR und RTS positive Spannung führen. Da der Infrarotempfänger nur zum FB-Lernen projektiert ist, haben wir seine Funktionalität etwas eingeschränkt: seine Signale werden nur durchgeschaltet, wenn die Klinkenbuchse X3 nicht belegt ist. Diese Variante erspart Schalter oder Jumper auf der Platine. Die Stromaufnahme ist dank der verwendeten CMOS-Bauteile mit wenigen mA sehr gering. Die von manchen Videogeräten auf der Schnittstellenbuchse zur Verfügung gestellten 5 Volt werden nicht benötigt.
Eine Kontroll-LED in Serie zur Infrarotsendediode leuchtet bei Aussenden von Infrarotimpulsen. Nach dem erfolgreichen Zusammenbau der IRdeo-Platine kann man diese Kontrolldiode zur Erhöhung der Infrarotleistung mit einem Jumper kurzschließen oder durch eine weitere Infrarotdiode ersetzen. Den Test der Hardware erleichtert eine Service-Seite im Programm, in die man mit `Bearbeiten/Service´ gelangt. Hier kann man RTS und DTR setzen und den Status von CTS und DTR beobachten (rot = -12 V, grün = +12 V).
Die Schaltung wird über ein `staightes´ 9poliges Flachband- oder Modem-Anschlußkabel (male/female) mit dem PC verbunden. Wenn bei der Timing-Messung die rote LED aufblitzt, ist dies schon ein gutes Zeichen. Der Test der Lern-Elektronik ist kaum schwieriger: im Service-Fenster RTS und DTR aktivieren und eine Fernbedienung mit irgendeiner gedrückten Taste vor den Infrarot-Empfänger halten; das Feld DSR sollte nun blinken.
[2] Carsten Meyer, Camcorder-Schnittstellen Panasonic Edit und Sony Control-L, c't 12/93, S. 287 und c't 1/94, S. 22
[3] Ekkehard Pofahl, Schnitt-Stelle, Linearer Videoschnitt mit einfachsten Mitteln, c't 11/96, S. 400
| Halbleiter | |
| IC1 | 14C88, 75C188 |
| IC2 | TSL261, TSL251 |
| IC3, IC4 | HCF4052 |
| T1 | BC337 |
| T2...T6 | BC547 |
| D1...D7, D10, D12, D13 | 1N4148 |
| D8 | LD274 |
| D9 | LED rot 5mm |
| D11 | ZPD6V8 |
| Widerstände | |
| R1,R3...R6 | 22k |
| R2 | 12k |
| R8,R9 | 1k |
| R10, R11 | 470k |
| Kondensatoren | |
| C1 | 47µ 16V |
| C2 | 1000µ 16V |
| C3 | 4µ7 35V |
| Sonstiges | Platine IRdeo, eMedia Best.Nr. 9806266B |
| 3 Klinkenbuchsen m. Schalter, Print 3,5mm | |
| 1 DSub-Buchse 9pol. female |