Phoniebox DAC installieren und anschließen

  • schlizbäda   hyle


    Bin jetzt nochmal mit den Buttons angefangen. Einen Versuch wage ich noch, da der Hinweis mit dem Modul der GPIO kam.

    WiringPi habe ich nicht wirklich verstanden.


    Nun habe ich nochmal bei gpio angefangen auch wenn es alt ist. Ich muss in meinem Fall nur zweit Taster überwachen und wenn diese gedrückt werden in der "Console" den Befehl mpc next oder mpc prev reinbekommen.


    Der Rest klappt übrigens über meinen KY-040 Drehencoder. Keine Störung. Auch schein dmix zu funktionieren.


    Zu meinen Button mal mein Skript was ich gerade versucht habe mit Hilfe des Kofler Buches zu schreiben.


    Ich habe diesen aktuell nicht getestet, da ich absolut nicht weiß ob man das so schreiben kann/darf und auch ob Pull ab Down wirklich aktiviert werden.

    Bitte schaut mal drüber wenn Ihr Zeit habt und gibt mir Verbessungen vor. Danach möchte ich ausprobieren, ob es an gpiozero liegt.


  • Erstmal nur kurz... Nein, starte das Skript bitte nicht! Wenigstens nicht solange Du keine echten (Hardware) Widerstände benutzt. :conf:


    Ich muss erstmal in Ruhe drüberschauen.


    //Edit:

    hailogugo Ich hoffe ich habe nichts übersehen. Mit RPi.GPIO hab ich nicht viel am Hut und ist auch schon ne Weile her. Der Code ist selstverständlich ungetestet! Sieh deshalb bitte selber nochmals darüber! ;)

  • Jetzt hast du fast alles geändert. Jetzt sieht es ähnlich aus wie gpiozero.

    ne hyle setzt einfach auf callback's und nicht auf polling. Das hat aber nicht s mit gpiozero zu tun. apropo, warum nicht gpiozero? ;)


    Was ich nicht verstehe ist der Sinn von Zeile 21/22 im Code von hyle .

  • Hofei


    Den Skript mit gpiozero habe ich ja aber scheinbar blockiert dieser meine Soundkarte. Sobald ich von der Phoniebox den Skript für die Buttons ausschalte bekomme ich entlich Ton. Es liegt der Verdachsfall vor, dass GPIOZERO die GpIOs blockt.

  • Jupi es funktioniert!


    Was habe ich gemacht.


    den Skript von Hofei kopiert. (Das war gut von mir ;))


    dann hatte ich den Service von den Buttons wieder aktiviert. Dies tat nicht!!!!!!!!


    Ich habe dann den Autostart der button über rc.local jetzt gemacht und es funktioniert.


    Ich freu mich.


    Danke allen. Hofei   schlizbäda   hyle  


    Ich werde nochmal alles zusammenstellen um einen Abschlussbericht zu schreiben.

  • Das Skript von hyle - ich hab nur 3 Zeilen geändert ;)



    dann hatte ich den Service von den Buttons wieder aktiviert. Dies tat nicht!!!!!!!!


    Ich habe dann den Autostart der button über rc.local jetzt gemacht und es funktioniert.

    Den Part versteh ich nicht :conf:


    EDIT: hailogugo

    In diesem Thread hier kann ich nirgends das nicht funktionierende gpiozero Skript von dir entdecken - kannst du mir das mal zeigen.

    Kann mir noch nicht vorstellen das es am Modul liegt

  • Okay


    Also ich spreche bestimmt nicht Linuxjanisch. Da ich bei weitem nicht fit in dem Thema bin.


    Es gibt bei der Phoniebox einen Service der aktiviert wird beim Start damit die button.py auch aktiviert ist.


    Das ist jetzt die gpio-button.py als Example. Bei mir habe ich ein paar Dinge deaktiviert, da ich zum einen für Play/Pause, Vol+/- einen KY040 Encoder nehme und da ich noch einen On/Offshim benutze.



    Es gibt aus meiner Sicht nur noch den Fall des Service wo ich jetzt rc.local gewählt habe. Dies wollte ich nochmal testen.

    Meine neue Button.py hat mit dem Service auch nicht getan. Der Ton kam nicht.


    Ich hoffe jetzt ist es verständlicher.

  • Hattest du das probiert gehabt?

    Das erscheint mir nämlich einleuchtend


    Wie immer gilt, sich nicht durch die leider unglücklich unterschiedlichen Nummerierungen von BCM, Board und GPIO Name verwirren zu lassen

  • Sehe ich auch so wie Hofei . Der Fehler liegt im Skript und nicht bei gpiozero. Steht aber auch in den Zeilen 6 u. 7. ;) Versuche mal folgendes Skript. Das macht nichts anderes als das RPi.GPIO-Skript.


    Ungetestet!

  • Es ist gute Praxis, auf Modulebene nur Imports, Konstanten, Funktionen und Klassen zu plazieren. check_call zu verwenden halte ich für unnötig, da du den möglichen CalledProcessError eh nicht abfängst.

    Die Python-Doku empfiehlt:

    The recommended approach to invoking subprocesses is to use the run()
    function for all use cases it can handle. For more advanced use cases, the
    underlying Popen interface can be used directly

    Ungetestet!

  • So ich habe jetzt nochmal Eure Skripte getestet.

    Beitrag 72 und 73. Funktionieren beide.


    Jetzt zu meinem alten Skript, welcher mit der Onboardsoundkarte funktioniert.



    Diese greift auf playout-controls.sh zu


    Hier der Code von dieser Datei:


    Sobald ich meine alte Datei gpio-buttons.py aktiviere ist der Sound weg.

    Warum weiß ich nicht wirklich. Da die anderen beiden Datein jetzt funktionieren reicht mir es auch.


    Liegt aber somit auch nicht am Service / rc.local sondern an der einzelnen gpio-button.py Datei.




    Meine weiteren Einstellungen:


    asound.conf

    config.txt

    mpd.conf


    als Anlage anbei.

    Files

    • asound.conf

      (1.1 kB, downloaded 38 times, last: )
    • config.txt

      (1.68 kB, downloaded 30 times, last: )
    • mpd.conf

      (14.46 kB, downloaded 34 times, last: )
  • Super, das es funktioniert!!!


    Hab den Mini Amp und damit klappt es auch perfekt! Beim Mini Amp bleiben auch noch ausreichend GPIOs frei...


    Werde jetzt nicht die nächste Sache testen, hab fünf verschiedene USB-Soundkarten durch, diverse 5V Stromversorgungsmöglichkeiten usw. Der Mini Amp macht genau das was er soll und jetzt muss mal gut sein ;-)