Einen Infrarot-Empfänger auf dem Raspberry installieren
Das ist keine Anleitung im üblichen Sinn, denn auch nach zwei Versuchen weiss ich immer noch nicht wie man es "richtig" macht...
1. Versuch
Ging eigentlich ganz glatt, aber ich musste dafür lange im Internet herumsuchen. Wie gewöhnlich findet man vor allem längst veraltete Anleitungen, was die Sache mühsam macht.
Was nicht gelungen ist: das Teach-In der Tasten der Fernbedienung. So oft ich es auch versucht habe, das Config-File wurde nie richtig erstellt. Schliesslich fand ich eine passende Konfiguration im Internet.
2. Versuch
In einer Gruppe die lirc ebenfalls installieren wollte, gab es Leute die folgenden Fehler bekamen:
@raspberrypi:~/lirc $ python3 lirctest.py Traceback (most recent call last): File "lirctest.py", line 1, in <module> import lirc File "/usr/lib/python3/dist-packages/lirc/__init__.py", line 7, in <module> from .client import get_default_lircrc_path File "/usr/lib/python3/dist-packages/lirc/client.py", line 38, in <module> import _client ModuleNotFoundError: No module named '_client'
Die Vermutung lag nahe dass das Problem mit der Raspbian-Version zusammenhhängt. Deshalb habe ich ein tagesaktuelles Raspbian auf eine frische SD-Karte geschrieben und auf dieser Basis lirc noch einmal installiert.
Die Tastendefinition habe ich übernommen. Ob das Teach-in mit der neuen Version funktionieren würde habe ich also nicht geprüft.
Tatsächlich ist der gleiche Fehler diesmal auch bei mir aufgetreten. Eine Lösung dazu fand ich nicht, aber die Deinstallation und Neu-Installation von lirc hat den Fehler zum Verschwinden gebracht!?!
IR-Empfänger und Fernbedienung
Beide stammen aus einem Starterkit und haben die Bezeichnung Keyes. Auf dem Receiver steht KB45754.
Der Anschluss an den PI könnte nicht einfacher sein: 3 Verbindungen sind alles was nötig ist.
Die Pins auf dem Empfänger sind klar beschriftet mit DAT, VCC und GND. Auf dem Raspberry habe ich GPIO23 als Eingang gewählti, und die nächstgelegenen Pins für 3.3V und Ground.
Auf dem Empfänger gibt es eine LED. Wenn das Breakout richtig angeschlossen ist dann blinkt sie bei jedem Tastendruck.
Die Anschlüsse links im Bild gehören zu einer 7-Segment Anzeige, sind also irrelevant für dieses Projekt.
Die Fernbedienung dazu:
Vorgehen beim zweiten Versuch
Wie gesagt: die Basis war eine ganz neue SD-Karte mit der letzten verfügbaren Raspbian-Version. Andere Software war nicht installiert.
# Als user root apt-get update apt-get install lirc cd /etc/lirc mv lircd.conf.dist lircd.conf cd lircd.conf.d mv devinput.lircd.conf devinput.lircd.conf.dist # Das File aus dem Internet cp /.........../keyes.lirc.conf . vi /boot/config.txt # Folgende Zeile einfügen unter "...infrared..." dtoverlay=gpio-ir,gpio_pin=23 cd /etc/lirc vi lirc_options.conf # Folgende Zeilen aendern driver = default device = /dev/lirc0 reboot
Nach der Installation war ein Test mit Python fällig:
import lirc connection = lirc.client.RawConnection() while True: print( connection.readline() )
Und dabei tauchte der oben erwähnte Fehler auf.
Nach vielen erfolglosen Versuchen wusste ich nichts mehr anderes als lirc zu deinstallieren und neu zu installieren. Und siehe da: es half!
Die Konfiguration in /etc/lirc blieb bei diesem Prozedere erhalten.