PI-Radio, Steuerung von MPC per Button

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo,

    ich habe ein Problem und weiss nicht woran es liegt:

    Ich habe mich dem PI-Radio gewidmet und dieses mit einem LCD-Display versehen.
    MPD und MPC laufen und streamen, alles gut. Mit meinen beiden Tastern kann ich vor/zurück schalten und das LCD gibt auch den Sendernamen aus.

    Weil mir aber die Optik des LCD nicht gefallen hat, habe ich nach einem scrolling LCD gegoogelt und auch ein schönes Scrupt gefunden.
    Und dieses lief quasi sofort und auch so wie ich es mir vergestellt habe, aber:

    Die Taster sind invertiert!
    Wenn ich das Script starte, dann wechselt es jede Sekund den Sender. Halte ich die beiden Taster hingegen gedrückt, läuft die Musik. Wenn ich jetzt einen kurz loslasse, z.B. "PREV" dann wechselt er auch die Station.

    Klar könnte man jetzt sagen, dann nimm doch Öffner aber ich würde gerne verstehen, warum das ganze mal so und mal so interpretiert wird.

    EGHS-PullUpDownSwitchProtected.jpg

    Ich habe die Button wie im unteren Teil angeschlossen.

    Zusätlich gebe ich hier beide Scripts an:
    (Ich habe diese nicht selbst geschrieben, nur an ein paar Stellen angepasst, ich bin also nicht der Author!)

    Hier das Script mit dem es geht (aber keine Info am LCD):

    und hier das Script was das LCD scrollt aber bei dem die Taster gedrückt gehalten werden müssen:

    Da ich mich mit dem Raspi erst am anfreunden bin würde ich mich über ein paar kleine Tipps freuen. Leider steht dazu nichts in meiner Lektüre, obwohl ich diese eigentlich für solche Fälle gekauft habe :(

    Vielen Dank...

    • Offizieller Beitrag

    Naja, scheint ja offentsichtlich:

    Code
    if ( GPIO.input(NEXT) == False): 
    if ( GPIO.input(PREV) == False):

    deine Taster haben den beim nicht-drücken den status den haben sollen wenn sie gedrückt sind (die elektrotechnisch richtige Erklärung überlasse ich anderen ;) ). Ergo sind die Bedingen immer erfüllt und er springt wild hin und her.

    Mach mal aus den beiden False ein True.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Einmal editiert, zuletzt von dbv (6. August 2014 um 16:12)

  • Ich habe den Fehler gefunden!!!

    Und zwar wurden in dem zweiten Script die Tasterabfragen negiert:

    Code
    if ( GPIO.input(PREV) == False):    
                                    os.system("mpc prev")
                                    time.sleep(0.5)
                                    os.system("mpc play")
                                    sleeptime=0
                                    time.sleep(1)

    Total bescheuert aber was solls...

    Umgeschrieben auf True und schon macht es das was es soll.
    Ich gehe mal davon aus, dass der Author wirklich nur noch öffner in der Bastelkiste hatte...

    Dann kann ich mich ja jetzt mal der Volume widmen...


    Naja, scheint ja offentsichtlich:

    Code
    if ( GPIO.input(NEXT) == False): 
    if ( GPIO.input(PREV) == False):

    deine Taster haben den beim nicht-drücken den status den haben sollen wenn sie gedrückt sind (die elektrotechnisch richtige Erklärung überlasse ich anderen ;) ). Ergo sind die Bedingen immer erfüllt und er springt wild hin und her.

    Mach mal aus den beiden False ein True.

    Hi,

    vielen Dank.

    während du geantwortet hast, hatte ich auch gerade meinen Post überarbeitet :)

    Elektrotechnisch Korrekt heisst es Schliesser und Öffner.
    Schliesser ist dann True und ein Öffner wäre False, so ungefähr....

    Einmal editiert, zuletzt von Gintonik (6. August 2014 um 16:20)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!