[Projekt] jukebox4kids (Jukebox für Kinder)

  • Ich baue die Jukebox grade in einem Feuerwehrauto. Dieses besitzt blau beleuchtete Knöpfe (als Blaulicht verbaut [GPIO5/GPIO6], standardmäßig an), gelb beleuchtete Knöpfe (als "Fernlicht" verbaut, in Reihe geschaltet [GPIO13], standardmäßig aus) und einen "Spezial-Knopf". Wenn dieser Knopf gedrückt wird, soll ein Martinshorn erklingen und die Knöpfe blinken. Dazu würde ich gerne abfragen, ob VLC grade ein Lied spielt, damit ich dieses pausieren und am Ende wieder starten kann.


    Laut https://n0tablog.wordpress.com…ocket-and-no-programming/ sollte der Befehl dazu is_playing sein. Wie kann ich diese Abfrage in mein Script einbauen?


    Das Script ist bisher nur geschrieben aber völlig ungetestet, da ich die LEDs der Knöpfe erst einmal anschließen muss. Gerne kann also einmal jemand drübergucken, ob es so überhaupt funktionieren würde.



    Starten wollte ich den Ablauf durch eine angepasste Version von diesem Beitrag:

    [Projekt] jukebox4kids (Jukebox für Kinder)



    Funktioniert das denn überhaupt? Denn wie gesagt, ist das komplett ungetestet, da ich die Knöpfe bisher noch nicht anschließen konnte.

    Edited 2 times, last by Geliras ().

  • Kurzanleitung zu den Buttons:


    Um das richtige Modul zu nutzen erstmal folgende Befehle ausführen:


    sudo apt update


    gpiozero Python 3

    sudo apt install python3-gpiozero


    gpiozero Python 2

    sudo apt install python-gpiozero


    Dann den Skipt mit den Buttons in das Home-Verzeichnis einfügen.

    Skript kannst du bei Micz Flor runterladen GPIO Sample Button

    Link


    Hier im Skript ggf. modifizieren, je nach dem woher der Sound nachher kommen soll. Ich habe auch nicht die Widerstände vom pi genutzt sonder eigene eingelötet.


    Jetzt muss man den Skript ausführbar machen mit:

    chmod a+x button.py (button.py ist der Dateinname des Skriptes)


    Jetzt das Skript mit in den Autostart.


    sudo nano /etc/rc.local

    hier vor exit das folgendes eintragen:

    /home/pi/buttons.py (wieder Name des Skriptes)


    so sollte es dann funktionieren.


    Du kannst das Skript auch erstmal ausprobieren ohne das du es in den Autostart legst. Dafür musst du es einfach mit Python starten. Auf dem Desktop im Raspbian oben auf Entwicklung gehen und dann die Datei darin öffnen.

  • Achtung Falle. Im von dir verlinkten Script ist _kein_ Shebang enthalten, ergo wird die Ausführung ohne explizite Übergabe des Scripts an einen Python-Interpreter sondern über chmod +x und direkte Ausführung nicht funktionieren.

  • Mein Sohn und ich brauchen dringend Eure Hilfe.

    Wir würden gerne dieses Projekt umsetzten, wissen aber nicht wie wir anfangen sollen.

    Mein Sohn möchte es für die Schule als Projekt präsentieren, benötigt dies aber

    erst im Frühsommer.

    Seit dem Sommer haben wir uns zunächst intensiv mit dem Raspberry auseinander gesetzt.

    Moment beschäftige ich mich intensiv mit einem Python-Grundkurs.

    Unsere Vorstellungen wären diese:

    Einlesen der CD über RFID, steuern von PI MusicBox über Buttons. Perfekt wäre die Anzeige über ein LCD-Display.

    Um das Projekt vermeintlich einfacher zu gestalten, habe ich mir den Neuftech USB Reader für EM4100 gekauft. Wir haben sehr viel im Internet nach einfachen Scripten gesucht, sind aber nicht richtig fündig geworden oder waren einfach noch mit dem Code überfordert.

    Wir würden gerne ein einfaches Script erstellen, um vom Transponder die ID einzulesen.

    Oder wie würdet Ihr das Projekt angehen?

    Mein Sohn Ole und ich haben total Lust auf das Projekt.

    Wer von Euch hätte Lust, Zeit und Geduld uns bei diesem Wunschprojekt zu unterstützen?

    Ich habe dafür einen extra Thread im Bereich „laufende Projekte und Ideen“ mit dem Titel „Jukebox mit RFID“ angelegt. Netterweise wollte man uns auch schon weiterhelfen, waren aber einfach mit den Antworten überfordert.

    Ich habe auch schon ein Forummitglied, der das Projekt erfolgreich umgesetzt hatte, hier direkt angeschrieben, aber keine weitere Antwort mehr erhalten.


    Mein Sohn und ich würden uns über jede Hilfe sehr freuen.

    Nette Grüße, Ole und Frank

  • Ich bin gerade mit meiner Anleitung dran.

    Eigentlich fehlen nur noch die Schaltpläne.

    Dann habe eigentlich alles drin und man kann es nachbauen.

    Kosten sind aber hoch. Circa 250€.

    Vielleicht schaffe ich es morgen fertig zu machen.

  • hailogugo, ich bin mal gespannt auf deine Anleitung.

    250€ ist natürlich viel Geld, aber so einige Komponenten haben wir schon

    und zum Glück steht ja Weihnachten vor der Tür 😀

    Verwendest Du auch einen USB-RFID Reader?

  • @hailogugo: Vielen Dank für die Kurzanleitung für die Einbindung der Button. Funktioniert perfekt. Das Button Skript habe ich entsprechend angepasst und es wird über den Cron Job beim Starten austomatisch mitgestartet. Funktioniert bestens. Ist in Deiner finalen Anleitung auch eine Beschreibung wie man ein LCD Display ansteuert?

  • KingKahn ich habe kein LCD was ich anschließen werde, da die Kids ehe noch nicht lesen können.


    Du müsste ja für die LCD Anzeige den Titel von VLC bekommen. Da hilft die vielleicht diese Befehlsliste weiter.


    VLC Befehle


    Irgendwo hatte ich aber hier im Forum schon was gelesen mit der LCD Anzeige auch wie ein Bespielskript aussehen sollte.

    Aus meiner jetzigen Erfahrung muss du dafür das Modul subprocess verwenden, weil dieser auch Rückantworten von Befehlen verwerten kann.

    Edited once, last by hailogugo ().

  • hailogugo, ich bin sprachlos!

    Ich habe die Anleitung nur kurz überflogen.

    Sie ist sehr detailliert und verständlich aufgebaut.

    Die wird uns bestimmt zum Ergebnis führen.

    Du hast Dir sehr viel Mühe gegeben, wirst damit bestimmt noch so einige Anwender

    glücklich machen.

    Mein Sohn Ole und ich sagen schon einmal „Vielen Dank“!

    Die eine oder andere Frage wird bestimmt noch folgen 😜


    LG,

    Ole und Frank

  • Habe mein Feuerwehr Spezial zum laufen bekommen. Eine VLC Abfrage "is_playing" liefert übrigens immer 1. Auch wenn auf Pause. Daher mute ich zu Beginn einfach den VLC und mache ihn am ende wieder laut.



    Eine Sache klappt leider nicht. Die gelben LEDs leuchten nicht. Das liegt aber nicht am Code, denn am 3v3 Pin leuchten sie auch nicht, am 5V jedoch schon. Sind die Widerstände zu groß? Vor jeder LED jeweils 470ohm, also:

    GPIO13 -> 470ohm -> LEDgelb1 -> 470ohm LEDgelb2 -> GND


    Irgendwo weiter vorne wurde mir dazu geraten vor jede LED einen Widerstand zu löten. Vor den blauen ist natürlich auch je einer, dort läuft es ja bestens:

    GPIO5 -> 470ohm -> LEDblau1 -> GND

    GPIO6 -> 470ohm -> LEDblau2 -> GND


    Diese LEDs bzw Knöpe sind es: https://www.adafruit.com/product/1441


    Bilder und Video vom fertigen Projekt folgen die Tage, ist nämlich echt cool geworden :)

    Edited once, last by Geliras ().

  • Dellex Danke für die Blumen. Da ich selber mit dem Thema neu angefangen habe und ich so eine Anleitung nicht gefunden habe, außer über Projekte wie schalte ich eine LED an und aus, wollte ich eine detaillierte Anleitung machen. Dies ist auch dadurch entstanden, dass ich bestimmt noch ein zweites bauen muss.


    Geliras Bei einer Parallelschaltung musst du vor jeder LED einen Widerstand setzen. Wenn du die LEDs in Reihe hast, musst du über deren Widerstände den Spannungsabfall hinbekommen.


    Für das einfache System würde ich die Parallelschaltung bevorzugen.


    Vorwiderstand berechnen LED


    3.3V als Betriebsspannung wählen oder 5V je nachdem welchen Pin du nutzt und dann die LED Farbe wählen und du bekommst unten den passenden Widerstand ausgerechnet. Man kann ruhig etwas mehr Ohm nehmen.

  • Moin



    Als erstes, Super tolle Arbeit hier.

    Habe meine Jukebox am Laufen, Weihnachtsgeschenk für meine 2Jährige Tochter


    Ich bin Neuling in Sachen Raspberry Pi und hab Folgendes Problem:

    Habe für die Soundausgabe eine Externe Soundkarte dran, LogiLink UA0053.


    Die funktioniert einwandfrei, nur die Lautstärke Regelung funktioniert nicht über die RFID´s

    über den Raspi Klinkenanschluss JA aber nicht über die USB Soundkarte.


    Im alsamixer kann ich sie problemlos verstellen.


    Wäre Dankbar für einen Tipp wie ich das Problem lösen könnte.

  • Ich hab nen Drehpotentiometer und Amplifier angeschlossen daher kann ich es nicht testen. Aber welche Befehle sendest du denn um die Lautstärke zu ändern? Normalerweise wird doch die Ausgabelautstärke vom VLC geändert oder?


    Code
    1. def def_volU():
    2. check_call("amixer sset PCM 1.5db+", shell=True)
    3. def def_volD():
    4. check_call("amixer sset PCM 1.5db-", shell=True)
    5. def def_vol0():
    6. check_call("amixer sset PCM 0db", shell=True)

    Achso du machst das damit oder?


    Alternativ könntest du es damit machen:

    Code
    1. def def_volU():
    2.     check_call("echo 'volup X' | nc.openbsd -w 1 localhost 4212", shell=True)
    3. def def_volD():
    4. check_call("echo 'voldown X' | nc.openbsd -w 1 localhost 4212", shell=True)
    5. def def_vol0():
    6.     check_call("echo 'volume 0' | nc.openbsd -w 1 localhost 4212", shell=True)

    Wobei du X jeweils durch eine Zahl ersetzen müsstest. Die VLC Standard-Lautstärke ist 256.


    Schöner wäre es jedoch, wenn es mit amixer gehen würde, leider kann ich aber nicht sagen, warum es bei dir nicht geht.

    Edited once, last by Geliras ().

  • Alsa Anleitung Geliras Ja mit 0,851ma bei 450ohm


    Gerry 478 im Standard Skript wird pbc angesteuert. Hier musst du entweder irgendwie pbc auf deine usb Karte bekommen also den Befehl.


    Wenn du in meiner Anleitung guckst wird ALSA eingerichtet guck mal nach den Begriffen und externe USB Soundkarte. Es gibt Anleitungen im Netz. Dabei musst du wissen welche Nummer die Hardware hat und weiteres.


    Alternativ könnte vielleicht auch gehen anstelle des pbc die Bezeichnung des Reglers zu nehmen wir der in dem desktop Modus heißt.


    Ich muss aber sagen ich kenne mich damit nicht wirklich aus. Ich war in einer Anleitung wo viel stand über ALSA.


    Alsa Anleitung


    Sorry mit dem Handy geschrieben

  • Ein Fehler ist mir in meinem "Spezial" noch untergekommen. Dort setze ich ja die VLC Lautstärke kurzzeitig auf 0. Dies klappt jedoch nur, wenn VLC auch läuft. Kann ich dies vorab prüfen? Oder kann ich alternativ bei Systemstart schon einmal VLC mit einer leeren mp3 starten?


    Edit: Dürfte hiermit klappen oder? Werde es natürlich schnellstmöglich selbst testen.

    Code
    1. import commands
    2. output = commands.getoutput('ps -A')
    3. if 'vlc' in output:


    SOLVED:

    Edited 2 times, last by Geliras ().

  • Hi Zusammen,


    bin eigentlich ziemlich fertig und wollte jetzt noch eine LED nachrüsten. Die LED soll anzeigen wan der Pi eingeschaltet ist.

    Hier habe ich mir gedacht ist ja ganz einfach. Löte ich einfach einen Widerstand und die LED zwischen Pin 17 3,3V und GND und dann zeigt er mir es an. Da ich den Pi über den Ein/Austaster anschalte und der Pi immer an einer Powerbank sitzt gibt es immer 3,3V. Jetzt leuchtet die LED trotz, das der Pi ausgeschaltet ist.


    Wie könnte ich das nun umsetzen? Wenn ich das jetzt wie bei den Tastern mache liegt dort auch immer eine Spannung an.


    mhhhhhhhh????