Phoniebox - "Gute Nacht" Button und Verdrahtung, Fallschutz

  • Hallo zusammen,


    ich versuche mich grade an der Phoniebox. Meine Elektrotechnik- und Programmierkenntnisse gehen gegen null, ich lese mich aber schon so gut es geht ein.


    Zunächst möchte ich kurz erzählen, was ich bis jetzt habe und was noch geplant ist:

    • RPi3B+ (plus SD-Karte, Elektronisches Starter-Kit)
    • EasyAcc 20000mAh
    • Neuftech RFID Reader
    • vorhandene Logitech Z120 (zunächst zum Testen)
    • Arcade Buttons mit LED (danke @splitti79 für deinen Blog und die Hilfe bisher) für Play/Pause, Vol+, Vol-, Track+, Track-


    Geplant ist bislang noch:


    Bislang funktionieren die verkabelten Buttons schon (umgesetzt wie Schaltplan von splitti79, danke!), ich kann Musik abspielen und so weiter.


    Jetzt hänge ich allerdings leider an weiteren Fragen/Themen:

    1. Ich plane einen "Gute Nacht" Button, der die LEDs aller Buttons (laut Beschreibung der Buttons bei Amazon 5V) und das OLED-Display ausschaltet, die beim Start zunächst leuchten sollen. Zurzeit habe ich ersteinmal eine LED versucht mit dem Button auszuschalten (Verdrahtung wie splitti79's Schaltplan: Button: GPIO 13, LED GPIO 6) und habe mich dabei hieraus bedient (angepasst auf meine Pins und nichts mit blinken). Dazu habe ich die /home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py angepasst. Bei jedem Versuch gingen anschließend keine der vorher funktionierenden Buttons mehr (gut, dass man bei der Installation eine Kopie angelegt hat (;).
      1. Wie bekommt man es hoffentlich ohne viel Aufwand hin, den RPi nicht mit den ganzen LEDs (7) zu überlasten? Jede LED an einem GPIO dürfte wohl zu viel in Summe werden, was ich bis jetzt gelesen habe. Die beiden 5V-Pins werden vom OLED und vom Shim belegt (zumal ich auch nicht wüsste wie das auszusehen hätte). Wie muss also eine Schaltung für mein Vorhaben aussehen, wenn es überhaupt umsetzbar ist?
      2. Wie muss man den Code anpassen, damit der Button die LEDs an- und wieder ausschaltet bzw. beim Start angeschaltet sind? Meine Versuche mit nur einer LED sind bislang wie gesagt gescheitert. Beim OLED-Display baue ich auf die Hilfe von @splitti79 :daumendreh2:
    2. Gibt ein beim OnOffShim eine Beschreibung, wie man den Gehäuse-Button anbringen muss? Da sind zwei "Löcher", bislang habe ich nicht gesehen, welches davon wofür ist. Reicht es, den Button nur mit dem Shim zu verbinden und die LED anderweitig(siehe oben)? Die sonstige PIN-Belegung wird ja hier beschreiben.
    3. Lohnt sich eine Soundkarte wie CSL USB Soundkarte oder bringt diese kaum einen Mehrwert? Ist die Einbindung dann analog zum RFID-Reader?
    4. Meiner Kleiner liebt es zurzeit, Sachen rumzuwerfen. Wie realisiere ich einen möglichst guten Fallschutz, außer dass ich die schwere Powerbank besonders gut und den Rest ausreichend an anschraube/Klebe?
    5. Für die Powerbank bieten sich vermutlich zwei DeLock Kabel USB 2.0 Micro-B Buchse zum Einbau an, die Kritiken sind aber eher durchwachsen. Wie sind eure Erfahrungen? Gibt es günstige Alternativen? Was ich bislang noch nicht gefunden habe: Gibt es soetwas auch mit einem USB-C Stecker am Gehäuse (die sind leichter zu stecken)?

    Das Thema Löten wird für mich auch noch spannend, aber da taste ich mich dann langsam vor. Bislang habe ich die Buttons aus dem Kit auf einem Breadboard verwendet.

    6. Ist man flexibler, wenn man Pins auf eine Platine anlötet, auf die man die Verbindungskabel zum RPi steckt, oder wenn man die Kabel direkt auf die Platine lötet?


    Ich bedanke mich schon einmal fürs Lesen und hoffe auf (anfängergerechte :helpnew:) Hinweise von euch erfahrenen Bastelkollegen :danke_ATDE:

    Liebe Grüße

    Christina

  • Hallo Christiana,https://amzn.to/2URtiSa


    1. Muss selber noch mal schauen, hatte mir nen Script gebastelt mit den LEDs. Aber das sieht gar nicht verkehrt aus! Aber denke dran, GPIO machen 3V und keine 5V.

    1.1. Ich hab mir ja 3V LEDs geholt und selbst mit nem 1k Widerstand vorgeschaltet machen die noch gutes Licht. Damit muss man sich keine Sorgen machen. Hab das mal ausgerechnet, ist dann nur noch eine Nebensache.

    1.2. Viele Wege führen nach Rom, hier ein Beispiel: https://raspberry.tips/raspber…und-programmen-einrichten

    2. Direkt den Button da dran, das Signal wird ja direkt geschaltet vom Button. Da muss auch kein Widerstand mehr zwischen.

    3. Da teste ich selber noch. Ich hab die CSL gekauft, weil viele hier meinten, die OnBoard-Karte ist Murks.

    5. Wenn es nicht geschraubt, sonder auch mit Heißkleber gehen darf: https://amzn.to/2Dp9kau oder https://amzn.to/2URtiSa

    6. Ich wolle kein Kabel an die Platine löten, u.a. weil ich mir auch schon einen RPi geschrottet hab. So kann man einfacher beim Sturz (siehe 4) Hardware tauschen ;-)

  • Hallo,


    vielen Dank für die Antwort!


    1.1. Gibt es weiße LED, die nur 3V haben? Die aus deinem Set gehen ja auch bis 3,6V hoch, oder?

    "Die jeweilige Durchlassspannung des Dioden: Rot/Gelb DC 1.8-2.3V; Weiß/ Grün/Blau DC 2.8-3.6V,"


    5. Bei Kabel meine ich welche, die außen am Gehäuse USB-C-Female und innen Micro-USB-Male haben (2 zum parallelen Laden der Powerbank). Habe ich bislang nur als Stecker gefunden. Stecker sind bei der Gehäuseplanung recht unflexibel. Muss aber auch nicht zwingend. Die häufiger erwähnten Magnetkabel finde ich ja auch reizvoll, aber die Kritiken sind leider durchwachsen. Und mein Kleiner sollte die nicht rauspulen können (Kleinteil < 3J.).


    6. (4.) Das ist ein guter Punkt (: Also bei dem Platinenkauf auf ein Set mit Pins achten :thumbup:


    Liebe Grüße

    Christina

  • Hallo,


    Zu 1.2:

    Das war mein erneuter (wahrscheinlich naiver) Versuch, die Datei anzupassen, die wieder alle Buttons außer Gefecht gesetzt hat (und scheinbar auch meine LED, die vorher noch leuchtete, jetzt nach Zurückkopieren des Originals und Neustart des RPIs nicht mehr...:conf:)


    # ERGÄNZT zeigt, was ich reinkopiert (bzw. angepasst) habe...


    Das ist also definitiv keine Lösung! Ich hoffe, die LED - zum Glück nur aus dem Testkit - ist jetzt nicht defekt... Das ganze brauche ich natürlich auf Dauer für alle 7 LED.


    Edit sagt: Nach erneutem Neustart geht die LED doch noch, puh...


    Liebe Grüße

    Christina

    Edited once, last by WIMS ().

  • Hallo WIMS,

    So kannst Du die GPIO nicht doppelt belegen. :no_sad:


    Du musst aufpassen!

    zum Glück nur aus dem Testkit - ist jetzt nicht defekt.

    Scheiß auf die LED! :stumm: Hoffentlioch hat der RPi nichts abbekommen!

  • Hallo hyle,


    ach du mein Schreck, ja danke für die Info. Oh man. Ob ich mich da jetzt nochmal selbst rantraue? Wie stelle ich fest, ob der RPi einen abbekommen hat? :wallbash:

    Der eine Teil ist zum Glück auskommentiert, betrifft also "nur" einen Pin...

  • Wie stelle ich fest, ob der RPi einen abbekommen hat?

    Starte mal neu und teste die betroffenen Taster, dann siehst Du ja, ob die noch funktionieren. Das müsste Ton aus / Mute und record sein, wobei Du mit der LED so richtig Glück haben könntest, da die Zeile

    #reco = Button(6, pull_up=True) # Choose GPIO to fit your hardware auskommentiert ist.


    Ob ich mich da jetzt nochmal selbst rantraue?

    Na klar, Du musst nur aufpassen das die GPIO nicht schon belegt sind. Im Zweifel zeigst Du uns einfach das Script und fragst nochmals hier nach. ;)

  • Hallo zusammen,


    mein lieber RPi funktioniert noch, scheint wohl gegen solche idiotischen Programmierer wie mich :wallbash: abgesichtert :angel:

    zu 1.
    ich habe es soweit schon einmal geschafft, dass 6 Lampen leuchten, die 7te für den Lichtschalter ansich ist dann vermutlich auch kein Hexenwerk mehr.

    Nicht hinbekommen bis jetzt habe ich, dass die jeweilige Lampe kurz blinkt, wenn man den passenden Button drückt. ob sie das muss, ist aber auch fraglich. Jede Lampe (aktuell: 2,5 V) ist zurzeit mit 2k Ohm versehen. Ich hoffe, das packt der RPi dann zusammen mit dem OLED-Display auch.




    Hier mal meine Ergänzungen in der Button-Datei:

    splitti79 kannst du mir evtl. sagen, wie ich die Datei für das Display anpassen muss? Kann man das ganz ausschalten oder muss ich den Contrast auf 0 bzw. den gewünschten Wert, wenn das LIcht an ist, setzen? Oder wie macht man das am besten?

    Wie sehen dann die Anpassungen aus? Du hast eine Contrast-Datei in deinem Code abgelegt. Die sieht für nicht Programmierer recht komplex aus :geek:


    zu 3. Die Boxen (zurzeit noch die Logitech) knacken beim Ein/Ausschalten. Wie ist eure Meinung zu einer (günstigen/teuren) Soundkarte? Behebt es das Problem? Bringt diese deutlich mehr Qualität?



    Als nächstes kommt das Thema Display und dann auch irgendwann das Thema Löten. Ich bin gespannt.


    Vielen Dank und viele Grüße

    Christina

  • Hallo zusammen,


    habe nun das OLED Display installiert und Option 2 (2 oder 3 wurde empfohlen) gewählt. Das war für meine Zwecke scheinbar nicht so optimal.

    Meine LEDs sind nun wieder aus und der Button GPIO13 ist nun VOL0 statt LED. Im Display wird auch das entsprechende Bild angezeigt und es kommt kein Ton mehr.

    Die Datei /home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py kann ich zwar erneut anpassen (habe die Datei durch die hier per Anleitung getauscht), aber

    das hat überhaupt keinen Effekt. Es bleibt bei LED-Button="stumm". :(

    Welche Datei muss ich nun entsprechend anpassen? Wo finde ich diese?


    Wie muss ich die Datei anpassen, damit dann das Display bis zum nächsten aktivieren meines LED-Buttons nichts anzeigt/dunkel/aus ist? Zurzeit wird kurz "Lautsprecher X" angezeigt. Das bräuchte ich dauerhaft in schwarz bis erneut der Button gedrückt wird (meinetwegen ein anderer GPIO für meinen LED-Button "Lichtschalter", der nicht durch Standardbuttons, OnOffShim oder Display belegt ist).


    Kann mir jemand dabei helfen? :helpnew:

  • Hallo zusammen,


    ich hatte eine Idee und mit der Hilfe eines Arbeitskollegen habe ich nun den neuen Ort der Button-Datei gefunden und - nach Anlegen einer Sicherungskopie - editiert mittels:

    Code
    1. sudo nano /home/pi/oled_phoniebox/scripts/gpio-buttons/gpio-buttons.py

    Die LEDs leuchten wieder, die Buttons funktionieren wie gewünscht.

    :bravo2:


    Als nächstes kommt jetzt Operation "Gute Nacht"-Button macht das Display dunkel, bis er wieder gedrückt wird.

  • Hallo zusammen,


    ich habe mir mal die Datei "oled_phoniebox.py" angesehen. Puh. Ich vermute, dass diese angepasst werden muss, wenn ich möchte, dass das Display schwarz bleibt, wenn die Box im Gute-Nacht-Modus ist.


    Ich habe ja die Datei "gpio-buttons.py" angepasst, so dass meine LEDs (inkl. der neuen "ledlich" für den Gute-Nacht-Button) wieder funktionieren.

    Programmiert habe ich noch nie, daher ist meine erste Idee, ohne dass ich weiß, wie genau das umzusetzen ist:

    Ist das sinnvoll? Kann man die LED in zwei verschiedene Dateien so einführen? Gibt es andere Ansätze und das Wichtigste: Wie sieht das dann in Nicht-Pseudocode aus?


    Was mir auch noch einfällt: Hat schon irgendjemand versucht, Amazon Prime Music einzubinden?


    Vielen Dank und viele Grüße

    Christina

  • Kurze Info an alle, die auch noch wegen der Lautsprecher überlegen:

    Ich habe (noch) keine Soundkarte. Direkt an dem RPi angeschlossen klingen die Speedlink (heute angekommen) im Vergleich zu den Logitech Boxen grauenvoll.

    Haben die Logitech Boxen irgendwie etwas verbaut wie die oft genannten Z20, die es so nicht mehr gibt?


    Puh, entweder kaufe ich die Z120 nochmal oder eine Soundkarte für die Speedlink Boxen...

  • So, nächste Idee, damit ich mit dem Gute-Nacht-Button das Display ausgeschaltet bekomme:


    Ordner angelegt: mkdir /home/pi/Gute_Nacht

    Rechte vergeben: chmod a+rw /home/pi/Gute_Nacht


    Mittels "sudo nano /home/pi/oled_phoniebox/scripts/gpio-buttons/gpio-buttons.py" folgende Änderungen (#wg Datei ergaenzt) vorgenommen:

    Ziel soll es sein, dass eine Datei in dem Ordner existiert, wenn die LED für den Gute-Nacht-Button leuchtet, und diese gelöscht wird, wenn die LED aus ist. Da eine Änderung nur durch Betätigung des Gute-Nacht-Buttons(lichtschalter) passieren kann, sollte das eigentlich mit in "def def_lichtonoff():".

    Funktioniert aber nicht: Buttons und LEDs sind nicht mehr funktionstüchtig nach Neustart.

    Was jedoch funktioniert: Wenn ich nur diese beiden Zeilen (und natürlich "import os") einfüge, wird die Datei im Ordner erstellt:

    Code
    1. licht_an_Datei = open("/home/pi/Gute_Nacht/licht_an_Datei.txt","w")
    2. licht_an_Datei.close()


    Was ich damit plane:

    In der Datei "oled_phoniebox.py" soll eine Abfrage innerhalb "def main(num_iterations=sys.maxsize):" gestartet werden:


    :helpnew:

    Warum funktioniert die GPIO-Datei nicht? Wie muss das korrekt aussehen?

    Könnte der Plan ansonsten aufgehen?


    Vielen Dank und viele Grüße,

    Christina

  • Kurzer "Vor-Bett-Geh"-Status:

    Danke splitti79 :danke_ATDE:, habe es hinbekommen mit dem Gute-Nacht-Button :bravo2:


    Code
    1. GPIO-Datei:
    2. def def_lichtonoff():
    3. ledlich.toggle()
    4. ...
    5. if ledlich.value == 0 :
    6. check_call("/usr/bin/touch /home/pi/Gute_Nacht/licht_aus_Datei.txt", shell=True)
    7. else:
    8. os.remove("/home/pi/Gute_Nacht/licht_aus_Datei.txt")


    Nun kommt noch das Löten.


    Weitere noch offene Fragen:

    1. Hat sich schon jemand mal mit Amazon Prime Music beschäftigt? Lässt sich das einbinden?

    2. Hat jemand noch Hinweise zum Thema Fallschutz?

    3. Die Boxen (Logitech Z120) knacken beim Ein/Ausschalten. Wie ist eure Meinung zu einer (günstigen/teuren) Soundkarte? Behebt es das Problem? Bringt diese deutlich mehr Qualität?

    Vielen Dank und viele Grüße!

    Christina


    Edit sagt: Code war abgeschnitten.

    Edited once, last by WIMS ().

  • Hi,


    so langsam geht es mir besser und wollte jetzt mal nachfragen, wie es läuft mit der Box?


    Zum Fallschutz hab ich ne Idee, ist arg zweckentfremdet, aber vielleicht ne Idee:

    https://amzn.to/2ELDgPT

    https://amzn.to/2H02PPo

    https://amzn.to/2XC9VPu


    Die Frage ist dann natürlich, ob man die Box von außen schützt, oder die Komponenten drinnen. Ich werde mit den Terassenpads die Powerbank etwas polstern, hab davon noch massig...

  • Hi,

    das sieht gut aus. :danke_ATDE:

    Gibt es sicher auch im normalen Baumarkt, gell? Solche transparenten Anschlagpuffer müssten wir sogar noch zuhause haben.


    Woher bekommt man so einen geschlitzten Tragegriff, in den man die Karte stecken kann? Hatte soetwas auf einem Bild von einer Phoniebox gesehen, das sah sehr praktisch aus. Aktuell hat die Box noch gar keinen Griff, wir überlegen noch. Ein Griff oben macht ein Figuren Stellen natürlich schwieriger, falls die doch mal kommen sollten...


    Gestern im Baumarkt haben wir Zubehör für den Kasten (Dragan von Ikea) geholt. Lötstation ist ausgeliehen. Jetzt muss ich nur noch Zeit finden, das ganze zu löten und so weiter.


    Die neuen Z120 Boxen sind jetzt auch da, leider rauschen die im Gegensatz zu den vorhandenen, so dass ich noch über eine Soundkarte nachdenken muss. GPIO Pins sind alle belegt, muss also USB werden. Das Knacken beim Ein-/Ausschlaten ist auch bei diesen Boxen vorhanden. Auseinandergebaut habe ich sie auch noch nicht. Ggf. müssen auch noch die Kabel etwas gekürzt werden.


    Die Software steht in der aktuellen Version soweit: Es gibt diverse Buttons inkl. Licht aus und Shutdownafter (zurzeit) 20 Minuten.

    Ich sollte jetzt mal über ein Backup der Micro-SD nachdenken und durchführen :shy:


    Der Kleine hat morgen Geburtstag, so dass erstmal andere Dinge wie Kuchen etc. anstehen, aber es wird, es wird :-)


    Übrigens: Amazon Prime Music ist ein Erweiterungswunsch bei Github, habe ich gesehen.


    Vielen Dank und weiterhin gute Besserung splitti79  
    Christina