|
|
DIY Lernfähige Fernbedienung mit IRMPVon Robert und Frank M. (ukw)
[Bearbeiten] EinleitungDie Fernbedienung kann mittels IRMP Fernbedienungs-Codes speichern und auch wiedergeben. Insgesamt gibt es fünf Tasten zum Senden von Codes:
Diese Tasten können 3-fach belegt werden. Dafür gibt es eine zusätzliche Select-Taste für das gewünschte Gerät. Es können aber auch für eine der drei Speicherplätze unterschiedliche Geräte angesteuert werden. Das ist zum Beispiel sinnvoll, wenn man die TV-Kanalwahl über den Satellitenempfänger einstellen muss, aber die Lautstärkewahl über das Fernsehgerät erfolgt. Angezeigt wird das anzusteuernde Gerät über 3 LEDs. Ab V. 1.3.0 ist die Fernbedienung makrofähig. Dabei können ganze Abfolgen von Tasten und Pausen abgespeichert werden. Es sind bis zu 5 Befehle und Pausen pro Taste möglich. Ein Beispiel:
Ab V. 1.4.0 lässt sich die Fernbedienung über den UART-Bootloader flashen. [Bearbeiten] SchaltplanDer Schaltplan ist relativ unspektakulär. Es werden nur Standard-Bauteile verwendet. Die Verwendung eines Quarzes ist nicht unbedingt notwendig, ist aber empfehlenswert, da einige kommerzielle Geräte stark auf das Timing des IR-Signals achten. In der Version 1.1.0 wurde die Schaltung derart verändert, dass der IR-Empfänger (TSOP17xx) nun vom µC aus- und eingeschaltet werden kann. Dies spart den Ruhestromverbrauch des Empfängers, welcher bei ca. 1mA liegt. Änderung ab Version 1.4.0: Der TSOP17xx wird nun active low geschaltet! Stromverbrauch:
[Bearbeiten] Stückliste:
[Bearbeiten] DownloadVersion 1.4.1, Stand vom 22.05.2011: RemoteControl.zip Passender Bootloader für UART inkl. Windows-Programm: Uart-bootloader.zip [Bearbeiten] Versionshistorie03.04.2011 V 1.0.0
10.04.2011 V 1.1.0
13.04.2011 V 1.2.0
17.04.2011 V. 1.3.0
22.05.2011 V. 1.4.0
[Bearbeiten] Source-CodeDer Source-Code lässt sich einfach für AVR-µCs übersetzen, indem man die Projekt-Datei remotecontrol.aps in den WinAVR lädt. Das Projekt nutzt IRMP zum Empfangen von IR-Protokollen, IRSND zum Senden der IR-Befehle. Siehe dazu auch: IRMP - Infrared Multi Protocol Decoder IRSND - Infrared Multi Protocol Encoder Die Taktfrequenz des AVR µCs sollte mindestens 8 MHz betragen. Das Projekt ist eingestellt auf einen ATMega168 mit 8 MHz. Es sind im Standard nicht alle Fernbedienungsprotokolle freigeschaltet, weitere müssen in irmpconfig.h und irsndconfig.h zum Empfangen und Senden aktiviert werden. Wie das geht, ist im oben genannten Artikel zu IRMP nachzulesen. Fuses (ohne Bootloader):
Fuses (mit Bootloader):
[Bearbeiten] BedienungMit der Select-Taste wird das gewünschte Gerät ausgewählt. Wenn man sie kurz drückt, wird das aktuelle Gerät durch kurzzeitiges Leuchten der entsprechenden LED angezeigt. Danach hat man ca. eine halbe Sekunde Zeit, durch nochmaliges Drücken zum gewünschten Gerät durchzuschalten. Drückt man die SELECT-Taste länger, schaltet die Fernbedienung in den Lernmodus. Dies wird durch Leuchten aller 3 LEDs angezeigt. Die Programmierung einer Taste geschieht folgendermaßen:
Bootloader Drückt man die SELECT- und die POWER-Taste gleichzeitig, geht die Fernbedienung bei angeschaltetem BOOTLOADER_SUPPORT für 3 Sekunden in den UART-Flash-Modus. So hat man dann ca. 3 Sekunden Zeit, mit dem UART-Bootloader den Flashvorgang für die Fernbedienung zu beginnen. Die Kommandozeilensyntax für das Windows-Programm lautet: uart-flash comX: remotecontrol.hex Bei erstmaligen Einschalten wird der Flash-Modus ebenso für 3 Sekunden aktiviert. [Bearbeiten] Weitere EntwicklungGeplant sind folgende Erweiterungen
Im Moment ist die Fernbedienung noch auf eine 5V-Spannungsversorgung
angewiesen. Der Schaltplan wird noch darauf angepasst, dass die
Fernbedienung auch im Batteriebetrieb funktioniert.
Hinweis:
Mit 3 Mignon-Zellen (je 1,5 Volt) ist die Schaltung bereits
unverändert einsetzbar.
Ein Bootloader zum Update der Firmware über den Infrarot-Empfänger
Ein Bootloader zum Update der Firmware über die PC-Soundkarte
Ein Bootloader für Linux Weitere Vorschläge zur Verbesserung des Programms oder der Schaltung können gerne in http://www.mikrocontroller.net/topic/214204 gemacht werden. [Bearbeiten] LiteraturIRMP : Zugehöriger Thread in der Codesammlung |