PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TV mit Computer per Infrarot anschalten



Linulo
12-01-2012, 15:29
DAS PROBLEM

Als ich mein Mame-Cab gebaut habe, stand ich vor dem Problem, dass der verwendete Fernseher nicht automatisch anging, wenn er Strom bekam. Manche Fernseher gehen an, einige sogar auf dem zuletzt benutzten oder einem einstellbaren Kanal. Mein Philips geht aber in den Standby-Modus und wartet auf ein Signal von der Fernbedienung. Man könnte nun einen Taster an die meist vorhandene Prog+-Taste löten, aber das ist nicht besonders elegant. Besser ist es, mit dem Computer ein Infrarot-Signal an den Fernseher zu senden. Ich habe das hinbekommen und schreibe hier, was ich herausgefunden habe. Deine Voraussetzungen sind wahrscheinlich andere, aber es kann ein Startpunkt sein. Prinzipiell geht es.



HARDWARE

Ich hatte einen Infrarot-Sender in meiner Bastelkiste. Er heißt "Irdeo Remote", wird an die serielle Schnittstelle angeschlossen, ist aber scheinbar nicht mehr erhältlich. So sieht er aus:

12178

Die Zeitschrift c't hat in den Ausgaben 6 (http://www.heise.de/artikel-archiv/ct/1998/06/266) und 7/1998 (http://www.heise.de/artikel-archiv/ct/1998/07/200) eine zweiteilige Artikelserie über Irdeo gebracht, wohl inclusive Layout und Teileliste. Es gibt aber auch viele andere Bauanleitungen, z.B. auf der Homepage (http://lirc.org/transmitters.html) des Lirc-Projektes. Eine davon ist besonders interessant, denn sie besteht neben einer IR-Diode nur aus einer Schutzdiode und einem Widerstand, kann also sehr billig und leicht gebaut werden.

12177

Erfahrungswerte habe ich zu dieser Billiglösung noch nicht. Vorsicht! Möglicherweise kann diese Lösung die serielle Schnittstelle beschädigen. Es gibt noch eine Reihe weiterer Schaltungen. Meistens werden sie immer aufwendiger, je höher die gewünschte Senderreichweite ist. Da wir ja nur ein paar Centimeter überbrücken müssen, ist das egal. Natürlich gibt es auch eine ganze Reihe von Angeboten für fertige Sender, sowohl für die serielle Schnittstelle als auch für USB. Wichtig ist, dass sie von der Software unterstützt werden.



SOFTWARE LINUX

Für mein Cab habe ich Linux verwendet, genauer gesagt die (hervorragende) ZXMameCD-Distribution (http://www.zxmamecd.eu/) von Loray. Getestet habe ich das Ganze allerdings mit einem anderen PC, der mit debian Squeeze läuft. Ich hoffe, dass die Software (oder zumindest der wichtigste Teil davon) einmal als fertiges Paket für ZXMameCD zur Verfügung steht. Benötigt werden vier Komponenten:

Ein Treiber. Dies ist ein Kernel-Modul, in meinem Fall zwei: lirc_dev und lirc_serial.
Der Lirc-Daemon lircd. Er leitet Befehle von irsend an die IR-Hardware weiter. (Im Lirc-Paket enthalten.)
Die Konfiguration für den Daemon /etc/lirc/lircd.conf.
Das Progrämmchen irsend. (Im Lirc-Paket enthalten.)

Den Treiber muss man selber bauen, da er nur im Quellcode vorliegt. Das Paket heißt lirc-modules-source, zumindest bei debian, und vermutlich auch bei verwandeten Systemen wie Knoppix oder Ubuntu. Ansonsten gibt's den Code auch bei Sourceforge (http://sourceforge.net/projects/lirc/files/latest/download?source=files). Unter debian kann man die Module mit folgenden Befehlen bauen:
#> dpkg-reconfigure lirc-modules-source
#> m-a prepare
#> m-a a-i lirc-modules-sourceIn meinem Fall gab es noch einen Bug und ich musste Referenzen auf eine nichtvorhandene Datei autoconf.h im Quellcode auskommentieren.

Wenn die Kernel-Module korrekt gebaut wurden, können sie mit modprobe lirc_serial geladen werden, ggf. auch mit insmod lirc_dev und insmod lirc_serial. Anschließend mit lsmod | grep lirc überprüfen ob alles geklappt hat. Es müsste nun eine Gerätedatei /dev/lirc0 oder /dev/lirc existieren

Als nächstes brauchen wir eine Konfiguration für den Lirc-Daemon. Dazu gehst du auf die Fernbedienungs-Seite des Lirc-Projektes (http://lirc.sourceforge.net/remotes/) und suchst dort nach der Modellbezeichnung deiner Fernbedienung. Falls du fündig wirst, lade sie herunter und kopiere sie nach /etc/lirc/lircd.conf. Falls nicht, suche eine, die deiner am ähnlichsten ist. Falls das auch nicht hilft, kannst du jemanden, der einen Lirc-Empfänger hat, bitten, die Codes deiner Fernbedienung aufzunehmen. Und schließlich kannst du einen eigenen Empfänger bauen oder kaufen und die Codes selber aufnehmen.

Wenn du eine gültige Konfiguration hast, müsste sich der Lirc-Daemon starten lassen. Bei debian läuft das mit /etc/init.d/lirc start. Aus irgendeinem Grund funktioniert das bei mir noch nicht, ich kann den Daemon aber direkt von der Kommandozeile mit lircd -n -d /dev/lirc0 starten.



SOFTWARE WINDOWS

Für Windows habe ich keine eigene Erfahrung, prinzipiell funktioniert es aber genauso. Die Lirc-Software gibt es auch für Windows (http://winlirc.sourceforge.net/).



BEDIENUNG

"Bedient" werden soll ja gar nichts, wir wollen ja gerade automatisiert schalten. Als Erstes stellen wir fest, welche Taste auf der Fernbedienung wir drücken wollen. In meinem Fall ist es eine, die nur zwischen den Spezialkanälen (AV1, AV2, YUV und Kanal 0) umschaltet, und die natürlich auch den Fernseher anschaltet, wenn er aus ist. Dann suchen wir in unserer Konfigurationsdatei nach dem Namen dieser Taste. Bei mir wurde ich unter "AUX" fündig. Als Nächstes müssen wir den Namen unserer "Fernbedienung" herausfinden. Sie steht im oberen Teil der Konfigurationsdatei.
begin remote
name PHILIPS-KW-1009Mit diesem Wissen können wir einen Befehl an den Sender absetzen.
#> irsend SEND_ONCE PHILIPS-KW-1009 AUXOb der Sender etwas sendet, kannst du überprüfen, indem du den Sender auf dem Display einer Digitalkamera betrachtest. Digicams sind empfindlich im Infrarot-Bereich und man kann das Leuchten gut erkennen. Zum Testen ist es praktisch, statt SEND_ONCE die Befehle SEND_START und SEND_STOP zu verwenden.

Viel Erfolg und bitte ergänzen, wenn ihr eigene Erfahrungen damit macht.

Linulo
12-01-2012, 20:53
Gute Neuigkeiten: Ein Test mit oben erwäntem Billig-Transmitter war erfolgreich. Es ist also möglich, mit Hardware für 2 € und ein wenig Software-Gefummel so gut wie jedes Gerät, das auf eine Infrarot-Fernbedienung reagiert, zu steuern. Allerdings hatte ich etwas Probleme mit der Reichweite. Bei einem 2-kOhm-Widerstand tat sich überhaupt nichts, bei 1 kOhm lag die Reichweite unter 3 mm. Vermutlich kann man auch 100 Ohm nehmen oder den Widerstand ganz weglassen, aber ich wollte kein unnötiges Risiko bei meinem seriellen Port eingehen. Kann auch daran gelegen haben, dass ich nicht die LD 271 sondern eine LD 274 verwendet habe, die etwas stärker ist und daher wohl etwas mehr Strom braucht, um sauber zu senden. Mich stört's nicht, ich werde die IR-Diode direkt vor den Emfpänger kleben.