Hallo zusammen, ich habe mpg123 als Player für wählbare Inet-Streams auf einem R2B+ laufen, Anzeige über ein 2x16LCD, Steuerung über 6 Tasten. Alles auf einem i2c shield. Läuft soweit super. Nun würde ich gerne LIRC nutzen um neben den Tasten auch eine IR FB nutzen zu können, aber es stellen sich folgende Fragen: 1) Meine Steuerung läuft über ein bash, welches zyklisch die Tasten im i2c shield abfragt. Wenn ich nun "ver-ODER-t" auch auf einen input aus LIRC reagieren möchte, wie frage ich das ab - auf einem uC hätte ich dazu eine entsprechende Variable, aber beim Raspi? Kann LIRC meinem bash den Tastendruck iwie über shared memory übergebn o.ä.? Wo finde ich ein Beispiel für sowas? (Script A schreibt in golbale Variable, Script B prüft diese) 2) Wenn der TSOP an GPIO18 hängt, wird der dann gepollt??? Das würde ja eine recht hohe Prozessorlast erzeugen und mit mpg123 ist der ja so schon gut beschäftigt? Wie erreicht man, dass beides gleichzeitig "flüssig" läuft? ...mir fehlt leider noch etwas die Erfahrung in der Raspi-Denke. Klaus.
Google nach "lirc bash" liefert gleich das https://wiki.ubuntuusers.de/Lirc/Tasten_mit_Funktionen_belegen/ Ein RAM Filesystem erzeugen und in der llircrc der touch dummy Files erzeugen die dein bash Script pollt (und dann löscht). Ein wenig unelegant, aber das einfachste für den Anfang. Python wäre eleganter.
...und was wäre das zauberwort bei python um zwischen zwei tasks daten auszutauschen? Btw: Gibt es bei Raspi einen scheduler, dem ich mein bash anvertrauen kann? Momentan lasse ich es nämlich am Ende immer 0.2s schlafen, was ja aber auch nicht "elegant" ist. EDIT: Verstehe, die bash als phython und dann die lb einbinden...nungut, die bash wollte ich nicht umschreiben, daher die frage nach einer globalen var. Wäre eine "pipe" eine Option, lässt sich damit aus der LIRC config etwas in das inet bash "pipen"? Klaus.
:
Bearbeitet durch User
Dateien im temp Filesystem (welches eine RAM Disk ist) als "globale Variable" (IPC) ist unter Linux vollkommen akzeptiert. Mach das doch einfach mit der lircrc, ist das einfachste. Es geht natürlich auch eleganter. Z.B. über Sockeds, das sieht aus wie Dateien, sind real aber keine. Du kannst also die Info von lirc direkt bekommen indem du die "Dateien" liest die lirc anlegt http://www.lirc.org/html/lircd.html#lbAG
OK, Danke! Ich versuche es erstmal mit f = open("demofile.txt", "w") f.write("Woops! I have deleted the content!") und lese die Datei dann im bash und prüfe auf "which key"... -> Und wie ist das nun mit dem polling vom IR empfänger, läuft das wrkl so? Klaus.
IR Empfänger pollen ist nix was den pi großartig auslastet. Wie gut das funktioniert hängt am Ende davon ab ob lirc den IR Code kennt (raw codes sind Mist, am besten die lirc.conf manuell schreiben). Ferner hängt es davon ab ob die Fernbedienung brauchbare Codes sendet (Kennungen für Taste wiederholt gedrückt und gehalten müssen korrekt gesendet werden). Aber das sind Feinheiten.
OK, ich schaue erstmal was der Raspi mit laufendem LIRC sagt und ob er die codes mit 455kHz träger de B&O erkennt... (er soll ja auch den receiver steuern können). Danke! Klaus.
:
Bearbeitet durch User
Schau dir vielleicht mal mpd als Ersatz für mpg123 an (https://www.musicpd.org/) Das macht sehr viel von dem, was du per Bash hinfrickeln willst schon selber, lässt sich aber trotzdem bash-fernsteuern, gibt passende client-Programme. Dann kann dein GPIO-Poll-Programm den Player genauso steuern, wie der LIRC-Empfänger, eine USB-Tastatur oder eines der vielen Client-Programme für Händies.
Hallo, bei mir scheitert es leider gerade an der LIRC Installation, so richtig finde ich dazu aber nichts: SOLL: lsmod | grep lirc lirc_rpi 9032 0 lirc_dev 10583 1 lirc_rpi rc_core 24377 1 lirc_dev IST: pi@xxx_PI:~ $ lsmod | grep lirc lirc_rpi 8001 2 lirc_dev 8313 1 lirc_rpi -> rc_core fehlt aber ich kann mir weder einen Reim daraus machen was da schief läuft, noch wo mein Fehler liegt. Da sich aber die meisten Installationsanleitungen NICHT auf die 0.9.4c-9 beziehen, ist es schwer das rauszufinden. Klaus.
Hat der pi keinen Packetmanaget... apt-get install lirc oder so ähnlich?
...doooch, das war ja alles erfolgreich! zgT sehe ich auch keine Unterscheide zum soll, außer hier wieder in der 3. letzten Zeile: pi@oneplus_PI:/boot $ systemctl status lircd.service ● lircd.service - Flexible IR remote input/output application support Loaded: loaded (/lib/systemd/system/lircd.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2018-09-21 00:10:28 CEST; 19h ago Docs: man:lircd(8) http://lirc.org/html/configure.html Main PID: 365 (lircd) CGroup: /system.slice/lircd.service └─365 /usr/sbin/lircd --nodaemon Sep 21 00:10:30 oneplus_PI lircd[365]: lircd-0.9.4c[365]: Info: Cannot configure the rc device for /dev/lirc0 Sep 21 00:10:30 oneplus_PI lircd[365]: lircd-0.9.4c[365]: Notice: accepted new client on /var/run/lirc/lircd Sep 21 00:10:30 oneplus_PI lircd-0.9.4c[365]: Notice: /etc/lirc/lircd.conf.d/devinput.lircd.conf: devinput: Multiple values for same code: Sep 21 00:10:30 oneplus_PI lircd-0.9.4c[365]: Notice: /etc/lirc/lircd.conf.d/devinput.lircd.conf: devinput: Multiple values for same code: Sep 21 00:10:30 oneplus_PI lircd-0.9.4c[365]: Warning: Duplicate remotes "devinput" found, problems ahead Sep 21 00:10:30 oneplus_PI lircd-0.9.4c[365]: Notice: lircd(default) ready, using /var/run/lirc/lircd Sep 21 00:10:30 oneplus_PI lircd-0.9.4c[365]: Notice: accepted new client on /var/run/lirc/lircd Problem(?): Sep 21 00:10:30 oneplus_PI lircd-0.9.4c[365]: Info: Cannot configure the rc device for /dev/lirc0 Sep 21 00:10:30 oneplus_PI lircd-0.9.4c[365]: Notice: accepted new client on /var/run/lirc/lircd Sep 21 00:10:30 oneplus_PI lircd-0.9.4c[365]: Notice: accepted new client on /var/run/lirc/lircd
:
Bearbeitet durch User
- in der Anleitung waren einige Befehle falsch geschrieben - die TSOP Belegung ist dort falsch beschrieben - rc_code (whatever that is) ist nicht nötig -> RasPi "lirct". Klaus.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.