Multimediatasten per GPIO am RaspberryPi

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
pascalts
User
Beiträge: 3
Registriert: Dienstag 26. Juni 2012, 18:14

Hallo,

ich habe nach einigen Monaten Wartezeit nun endlich meinen RaspberryPi (B-Board) vor mir liegen. Als OS habe ich mich für Debian entschieden, aufbauend darauf XMBC.

Mein Ziel ist es nun, den RPi als eine Art CarPC ins Auto zu integrieren. Da der kleine allerdings nur 2 USB-Anschlüsse hat und ich ungern einen HUB für 100000 Geräte anschließe, wollte ich mit dem GPIO einfache Funktionen wie "STOP", "PLAY" usw... belegen.

Soweit so gut, mit Python an sich komme ich auch ganz gut klar. Ich bin soweit, dass ich wenn ich einen Taster betätige per Python IRGENDETWAS passiert (eine LED am output leuchtet auf, eine Message erscheint...).

Dieses IRGENDWAS soll nun aber dadurch ersetzt werden, dass an das OS ein Tastendruck gemeldet wird - beispielsweise PLAY oder STOP (Oder eben erstmal ein Buchstabe, das würde schon reichen...) . Im Internet bin ich leider auf keinen Denkanstoß gekommen - mag auch an meiner Suche liegen. Könnt ihr mir ein wenig weiterhelfen? (Der Englischen Sprache bin ich mächtig, also nur her mit englischen Infos!)

Danke im Vorraus

Pascal
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Vllt ist uinput was für Dich - http://thiemonge.org/getting-started-with-uinput

Mir ist allerdings nicht klar, warum Du das über Hijacken des Inputsystems auf OS-Ebene machen willst.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Ich weiß nicht, ob es unter Debian funktioniert, aber du könntest pymprisr versuchen. Unter Kubuntu funktioniert das mit Amarok problemlos.

Code: Alles auswählen

python mpris2-remote.py play
python mpris2-remote.py stop
python mpris2-remote.py next
python mpris2-remote.py previous
python mpris2-remote.py pause
funktionieren auf jeden Fall, den Rest müsstest du dir wohl einfach mal selber suchen

Sebastian
Das Leben ist wie ein Tennisball.
pascalts
User
Beiträge: 3
Registriert: Dienstag 26. Juni 2012, 18:14

Hallo erstmal vielen Dank.

Ich werde mich also vorerst der Version von EyDu annehmen. Allerdings bekomme ich, wenn ich rein

Code: Alles auswählen

 python mpris2-remote.py stop
eingebe Folgende Meldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "mpris2-remote.py", line 13, in <module>
    bus = dbus.SessionBus()
  File "/usr/lib/pymodules/python2.6/dbus/_dbus.py", line 219, in __new__
    mainloop=mainloop)
  File "/usr/lib/pymodules/python2.6/dbus/_dbus.py", line 108, in __new__
    bus = BusConnection.__new__(subclass, bus_type, mainloop=mainloop)
  File "/usr/lib/pymodules/python2.6/dbus/bus.py", line 125, in __new__
    bus = cls._new_for_bus(address_or_type, mainloop=mainloop)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.Spawn.ExecFailed: /usr/bin/dbus-launch terminated abnormally without any error message
Leider kann ich damit nicht wirklich etwas anfange - nur das etwas schief gelaufen ist. Das Paket python-dbus ist aktuell.
pascalts
User
Beiträge: 3
Registriert: Dienstag 26. Juni 2012, 18:14

*PUSH* niemand noch eine Idee woher der Fehler rührt?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Versuch doch dbus-launch per Hand auszuführen?

Edit: Hier gibts noch etwas mehr Infos zur Kontrolle von Mediaplayern

Edit: ich würd einfach das MPRIS2-Interface direkt mit Python-DBus ansprechen, dbus-launch aufzurufen lohnt sich ja gar nicht. Außerdem: welchen Player magst du denn ansprechen und was für ein DE nutzt du?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten