U23 2005/Infrarotdecoder
Contents
Einleitung
Der gewöhnlich Nerd ist faul. Was liegt da näher als das Fnordlicht gemütlich vom Bett aus steuern zu können. Damit war die Idee zum Infrarot-Empfänger am Fnordlicht geboren.
Dazu ist in der Firmware ein RC5-Decoder integriert. RC5 ist ein von Phillips entwickeltes weit verbreitetes Infrarot-Datenübertragungs-Protokoll. Es ist besonders geeignet, weil es recht gut dokumentiert ist. Praktisch alle billigen Multi-Gerät-Fernbedienungen unterstützen dieses Protokoll.
Übersicht über RC5
Es gibt an vielen Stellen gute Dokumentation zu RC5. Deswegen wirds hier nur ne kurze Übersicht mit einigen Stichworten geben.
Ein RC5 Datenpaket besteht aus 14 Bit.
Diese Bits werden in der sog. Manchester-Codierung übertragen.
Was genau diese 14-Bits bedeuten ist hier recht gut dokumentiert: Knowledge-Base
Hardware am Fnordlicht
Am Fnordlicht kann man direkt einen TSOP1738 Infrarot-Empfangsbaustein anschließen. Der TSOP-Baustein hat drei Beine. Er kann direkt über den 78l05 der Powerplatine mit 5V Spannung versorgt werden. Die Datenleitung kann direkt an INT0 (PD2) des AtMega8 angeschlossen werden. Es werden keine weiteren Bauteile benötigt.
(Hier kommt noch ein Foto von der Beschaltung hin)
Decoder Software
Im SVN Repository gibt es ein Subdir "/ir". Da liegt der RC5-Decoder Code.
Die eigentlich Arbeit übernimmt der Code in der Datei "ir_decoder.inc". ir_test ist im selben Unterverzeichnis ein Programm, das mit
make irtest install_irtest
auf das Fnordlicht übertragen werden kann. ir_test überträgt empfangene RC5-Signale per RS232 an den Rechner, und kann so mit screen (irgendwo anders im Wiki dokumentiert) angesehen werden.
So kann man beispielsweise sicherstellen, dass die verwendete Fernbedienung auch wirklich gültige RC5-Signale aussendet.
Decoder in der Firmware aktivieren
Standardmäßig ist in der Firmware der RC5-Decoder deaktiviert. IR_DECODER kann aktiviert werden. Dann reagiert die Firmware auch auf Infrarot-Befehle.
bisher implementierter Befehlssatz
RC5 definiert einige Standard-Befehle. So sind bei einer RC5-Fernbedienung die Zifferntaste mit den Codes 0x1, 0x2, ... belegt. Die Firmware reagiert auf diese Codes, genau wie auf Ziffern, die über die serielle Schnittstelle gesendet werden.
Aktion | mehr | weniger |
rot | 1 | 4 |
grün | 2 | 5 |
blau | 3 | 6 |
Die Power-Taste beendet alle aktiven Skripte. Will heißen, das automatische Fading der Firmware wird beendet. Dann fuscht einem die Firmware in die individuelle Farbwahl nicht rein.
Mit der Enter-Taste wird die aktuelle Farbe gehalten.