[Projekt] jukebox4kids (Jukebox für Kinder)

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
    • Offizieller Beitrag

    el.mar 16? GPIO oder Pin? Sieh mal hier: https://de.pinout.xyz/pinout

    Achso, welches Skript meinst Du (bitte mit Link)? hier geistern mittlerweile so einige Skripte herum.

    • Offizieller Beitrag

    Alles klar!

    Ich meine den Pin.

    gpiozero arbeitet mit den GPIO-Nummern, d.h. Pin 16 = GPIO (BCM) 23. Da Du aber an GPIO 16 (Pin 36) keinen Taster angeschlossen hast passiert da auch nichts. ;)

    Habe mir https://github.com/MiczFlor/RPi-J…GPIO-BUTTONS.md nochmals genauer angesehen und verstehe nun wie Du auf z.B. Pin 16 gekommen bist. Die Tabelle auf der Seite stimmt nicht, bzw. nur z.T., mit den verwendeten GPIO im Sampleskript überein!

    MiczFlor und hailogugo ich ping euch hiermit mal an? ;)

  • Hilfreich wäre auch die Ausgabe von cat /proc/asound/cards, damit man auch die /usr/share/alsa/alsa.conf und die /etc/asound.conf richtig anpassen kann. ;)

    cat /proc/asound/cards

    0 [sndrpihifiberry]: HifiberryDac - snd_rpi_hifiberry_dac

    snd_rpi_hifiberry_dac

    In der /usr/share/alsa/alsa.conf habe ich nichts angepaßt, die /etc/asound.conf sieht wie folgt aus:

    Und danach mpd neu gestartet?

    gerade noch einmal getestet, PI nach dem Setup rebootet, ohne Erfolg.

    Ich habe gerade eben noch was gefunden:

    https://www.max2play.com/en/forums/topi…volume-problem/

    Darin wurde laut Hifi-Berry Support folgender Eintrag für die mpd.conf gewählt

    Code
    audio_output {
    type „alsa“
    name „sysdefault:CARD=sndrpihifiberry“
    mixer_type „software“
    }

    das Feld "Name" habe ich so definitiv noch nie deklariert. Ich werde es heute Abend mal testen, wenn ich wieder davor sitze...

    Eben auch ausprobiert, damit kann ich im MPD keine Lautstärle mehr einstellen, zeigt immer 0% an

  • gpiozero arbeitet mit den GPIO-Nummern, d.h. Pin 16 = GPIO (BCM) 23. Da Du aber an GPIO 16 (Pin 36) keinen Taster angeschlossen hast passiert da auch nichts. ;)

    Nee nee, das hab ich schon richtig verstanden. Das ist nicht das Problem.

    Die Belegung im Skript hatte ich auch schon überprüft und entsprechend gesteckt. Aber mein Fehler scheint zu sein, dass ich nicht generell mit 3,3V versorgt habe. Das war mir nicht klar.

    Hatte das wir hier so verstanden, dass der Button nur ein Signal gibt und keine zusätzliche Spannung benötigt.

  • Aber mein Fehler scheint zu sein, dass ich nicht generell mit 3,3V versorgt habe. Das war mir nicht klar.

    Hatte das wir hier so verstanden, dass der Button nur ein Signal gibt und keine zusätzliche Spannung benötigt.

    Ja, das geht grundsätzlich auch. Man kann man die 3,3V inkl. ("Pullup-")Widerstand auch in Software zuschalten lassen, dann passiert das automatisch intern im Prozessor. Dann müsstest Du ein Skript wie in diesem Link beschrieben nehmen. Das Beispielskript im Github-Projekt geht m.E. davon aus, dass man selbst einen Widerstand gegen 3.3V platziert.

    Der Nachteil von der Softwarelösung ist, dass die Beschaltung mit Pullup/Pulldownwiderständen nicht für alle GPIO-Pins zur Verfügung steht (die Ausnahmen habe ich nicht im Kopf, müsste ich googeln).

    Und auch hier besteht das Problem: Wenn Du aus Versehen ein anderes Skript startest (z.B. für ein anderes Bastelprojekt), welches den Pin als Output-Pin konfiguriert, dann hast Du außen dran nur Deinen Button gegen Masse. Wenn Du den dann drückst, fließt zuviel Strom aus dem GPIO und der Prozi kann beschädigt werden.

    Daher ist die Variante mit den Widerständen am Button die sicherste...

  • Wo kann ich denn die Softwarelösung deaktivieren? Oder kann ich die eingeschaltet lassen, wenn ich das mit der 3.3v-Lösung ausprobiere?

    Im Beispielskript der Phoniebox sieht man das glaube ich hier ganz gut:

    Code
    shut = Button(3, hold_time=2)
    vol0 = Button(13)    
    volU = Button(16,pull_up=True)
    volD = Button(19,pull_up=True)
    next = Button(26)
    prev = Button(20)
    halt = Button(21)

    Da steht beim Button für Lauter (volU) und leiser (VolD) ein ",pull_up=True" mit dabei. Das müsste heißen, dass hier der Widerstand gegen 3.3V per Software aktiviert wird. Umgekehrt ist das bei den anderen Buttons deaktiviert (wenn mans nicht angibt, ist es aus), dort braucht man dann 1-2 eigene Widerstände pro Button.

    Somit müsste das mit ",pull_up=True" dann mit einem Button nur gegen Masse funktionieren. Ich habe das aber noch nicht selbst ausprobiert. Wie gesagt gibt es aber 2, 3 GPIO-Pins wo das per Software NICHT funktioniert.

  • Hallo allerseits,

    Ich bin hier seit einiger Zeit nur lesender weise unterwegs gewesen und habe mich nun auch daran gemacht die Phoniebox für meine Tocher zu bauen. Ich bi ziemlich begeistert wieviel Arbeit hier schon drin steckt und finde die Dokumentation grandios!

    Trotzdem, ich habe ein kleine Problem:

    Soweit funktioniert alles ganz gut, aber die Funktion Latest_Folder_Played läuft bei mir nicht.

    Symptom:
    Die Datei Latest_Folder_Played wird ums verrecken nicht gschrieben (bleibt leer):

    sudo echo ${VALUE} > $PATHDATA/../settings/Latest_Folder_Played

    LinkZumRepo (Zeile 354)

    Grund:
    Es scheint an dem sudo am Zeilenanfang zu liegen. Wenn ich die Datei lösche und sudo entferne funktioniert es auf einmal. Lösche ich sie erneut und führe den Befehl mit sudo aus, hab ich das selbe Problem wieder.

    Ich arbeite unter stretch Kernel 4.14.50-v7+, und mein Benutzer ist Sudoer.

    Hat jemand vielleicht eine Idee?

    Viele Grüße,

    Henning

  • Kurzes Update, ich habe alles noch einmal platt gemacht und clean angefangen, geht zwar immer noch nicht aber eines ist mir aufgefallen

    Zuerst habe ich Stretch installiert und den Hifiberry Miniamp enabled, ein "speaker-test -c2 --test=wav -w /usr/share/sounds/alsa/Front_Center.wav" gibt entsprechend den Ton aus, auch nach mehreren reboots. Dann habe ich diesmal die Phoniebox mit dem Script installiert, lief soweit alles durch. Ich habe über Samba ein paar MP3s hochgeladen und wollte diese über die Weboberfläche starten -> hat nicht funktioniert. Daraufhin habe ich noch einmal per SSH den speaker-test durchgeführt, der Testsound wurde ausgegeben, also habe ich den Pi per sudo reboot neu gestartet, mit dem Ergebnis das der speaker-test nun stumm bleibt :(

  • bezüglich einer asound.conf für den HifiBerry MiniAMP kann ich vielleicht aushelfen (Siehe Dateianhänge). Hier hat mir das Forenmitglied smutbert sehr geholfen, den MiniAMP bei meinem Raspiblaster (basierend auf dem audacious-Mediaplayer) vernünftig einzurichten, dafür nochmals :danke_ATDE:

    Was mir letztlich auffiel, ist die Tatsache, dass mit dem omxplayer von Raspbian nur eine "einfache" ALSA-Konfiguration funktioniert. Eine etwas komplexere wie in meiner Beispieldatei, die einen Mixer implementiert, um mehrere Audioquellen gleichzeitig wiedergeben zu können, funktioniert zwar mit den meisten anderen Programmen, aber nicht mit dem omxplayer sowie mit Programmen, die darauf aufbauen, wie z.B. mein yamuplay. Aber der omxplayer ist bei diesem Projekt ja außen vor.

    Ein weiterer Punkt ist die Anpassung an periphere Soundkarten wie die HifiBerry-Produkte in der config.txt. Dabei wurde für den MiniAMP folgender Block angepasst:

    Code
    # Enable audio (loads snd_bcm2835)
    ####dtparam=audio=on
    # in spite of the upper line the HiFiBerry MiniAmp V1.0 is activated:
    dtoverlay=hifiberry-dac

    Wichtig ist, die interne "Soundkarte" des SoC 283x zu deaktivieren, was hier über Auskommentieren der Zeile dtparam=audio=on erfolgt und die Einbindung des richtigen Treibers für den HifiBerry MiniAMP: dtoverlay=hifiberry-dac
    Der MiniAMP ist kompatibel zum HifiBerry DAC, nicht zum DAC+. Also unbedingt ohne Pluszeichen!


    Interessant ist evtl. der folgende Forenthread: HifiBerry MiniAMP aktivieren

    Zu meinem Raspiblaster habe ich auf github eine Installationsanleitung abgelegt. Dort kann anstelle des Gesamtprojektes auch die mit LaTeX erstellte PDF-Datei raspiblaster_de.pdf direkt heruntergeladen werden. Kapitel 3.2 der Anleitung beschreibt die Einrichtung des MiniAMP.

  • Ich habe jetzt das mal mit dem 3,3V probiert und der angegebenen Schaltung (natürlich auf meine Pins angepasst). Aber das klappt immer noch nicht.

    Wie kann ich denn prüfen, ob die GPIO-Programmierung überhaupt angesteuert wird? In welchen Verzeichnissen sollte den was liegen? Vielleicht ist da mein Fehler zu finden. Oder kann es sein, dass sich Programmierungen gegenseitig blockieren? Wo muss ich suchen?

  • Symptom:

    Die Datei Latest_Folder_Played wird ums verrecken nicht gschrieben (bleibt leer):

    sudo echo ${VALUE} > $PATHDATA/../settings/Latest_Folder_Played

    LinkZumRepo (Zeile 354)

    Grund:
    Es scheint an dem sudo am Zeilenanfang zu liegen. Wenn ich die Datei lösche und sudo entferne funktioniert es auf einmal...

    Hallo Henning,

    der Befehl sudo bewirkt ja, dass die nachfolgende Befehlssequenz in dieser Zeile von root ausgeführt wird und nicht vom angemeldeten Benutzer pi. Jede Linux-Benutzerkennung hat ihr eigenes "Environment", in dem u.a. die Inhalte der Shellvariablen (z.B. $PATHDATA) induividuell und auf den Benutzer angepasst gespeichert sind. Bei $PATHDATA kann ich mir gut vorstellen, dass die Pfade bei root und pi abweichen. Somit wird die Datei mit sudo ... wohl durchaus (unter dem Pfad von root) angelegt, aber eben nicht in dem Verzeichnis, das für pi angegeben ist.

    Prüfen kannst Du das im Script, indem Du zu Testzwecken bei Zeile 354 die beiden folgenden Befehle einfügst (und hinterher wieder entfernst):

    Code
    echo $PATHDATA
    sudo echo $PATHDATA

    Im Terminal müssten zwei entsprechende Zeilen ausgegeben werden.

    PS:

    Mir ist es jetzt zu aufwendig, das ganze Script durchzufieseln, nur um das Ganze zu analysieren, daher nur mein theoretischer Ansatz8o

  • Danke für diese Ausführliche Hilfestellung!

    Ich hab die asound.conf so angepasst wie du sie hast. jetzt bekomme ich beim reboot den Startsound der phoniebox und er spielt ganz kurz (ca. 0,5sek) ton der zuletzt gespielten Datei (autoresum) und jetzt frage ich mich warum er dann die wiedergäbe abbricht, in den /var/log/syslog und var/log/mpd erkenne ich keine Fehler... es wird langsam kurios...

  • Hi schlizibäda,

    eine etwas aufwändigere asaound hatte ich ebenfalls schon ausprobiert, nachdem ich gestern hier und hier darauf gestoßen bin, sieht erst einmal ähnlich aus wie Deine, werde diese auf jeden Fall testen. Die Testsoundausgabe funktioniert so lange bis ich die phoniebox installarie, danach geht nach einem reboot (von dem Start Sound mal abgesehen) nichts mehr, warum auch immer, es kommt auch nichts über die Interne Soundkarte, habe einmal Kopfhörer eingesteckt. Ich starte heute noch einmal clean, mal sehen ob ich es eingrenzen kann, ansonsten muss ich wohl auf den miniamp verzichten, Donnerstag ist deadline, oder kommt man noch an die VLC basierte Version, da ging es ja.

Jetzt mitmachen!

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