Internetradio mit Hardwareknöpfen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,
    schon seit einer Weile ärgere ich mich darüber meinen pc anmachen um musik zu hören. Mein Handy an die Anlage anzuschließen ist mir auch zu aufwendig. Da mein Raspberry eh neben der anlage steht und als webserver permanent an ist, kam mir die idee ihn als radio/mediaplayer zu benutzen.
    Wenn ich zum an und ausmachen nun aber ssh / webinterface oder sonstetwas nutzen muss wäre nichts gewonnen. Meine Idee:


    Ein kleines hardwaremenu mit einigen knöpfen zur steuerung der musik auf dem pi.
    Ich habe als ersten anlauf einen Controller aus ner kaputten tastatur ausgebaut. Durch verbindung von 2 pins (2x13 instgesamt) wird ein scancode über usb an den Raspberry gesendet. wenn ich jetzt einfach taster an die pins löte habe ich im prinzip eine stark abgespeckte tastatur mit 5 oder 6 tasten.

    Als Audioplayer soll mpd/mpc dienen, da einfach zu bedienen und keine grafische oberfläche gebraucht wird, außerdem lassen sich aufwendigere dinge wie playlists usw. einfach über clients auf dem pc oder webinterface regeln.

    Nun zu meinem Problem:
    Wie steuere ich den mpc mit nur wenigen tasten. Ich bräuchte soetwas wie ne übersetzung von der play taste ( die ja letzendlich nicht mehr ist als irgendein buchstabe) in einen konsolen befehl "mpc play"
    dazu kam mir in den sinn ein kleines python/bash script zu basteln, das bei jeweiligm tastendruck jeweilige aktion durchführt. wie starte ich aber dieses script? via autostart ? dafür müsste man sich aber nach dem start direkt in der eingabe des scripts befinden ist das zu realisieren?
    eine weitere idee wäre sich durch rausprobieren die entertaste zu suchen und einen buchstaben zum starten des scripts (a.py - zb) zu benutzen. Das kommt mir aber doch alles sehr unrund und umständlich vor.
    Gäbe es ne elegantere lösung? zum Beispiel soetwas wie shortcuts denen man befehle oder kleine befehlsblöcke zuweisen kann ? gibt es in der konsole unbenutzte tasten F1, F2 usw. zb? oder Num oder Rollen etc ? durch rausfinden der Alt-Gr taste könnten sonst auch darüber shortcuts definiert werden ? dann könnte man diese taste einfach überbrücken. und a wäre automatisch Alt-Gr + a. Die funktion des Pi's über ssh muss natürlich erhaltenbleiben ;).

    Falls jemand da ideen für mich hat wie das software mäßig zu lösen ist würde ich mich freuen. Am liebsten ne lösung für beliebige tasten dann muss ich mir nicht die Mühe machen die 400 kombinationen durchzutesten.


    Falls es Alternativen gibt die genau meinen Zweck (ohne finanziellen aufwand) erfüllen würde ich mich auch darüber freuen.
    Sicherlich gibt es hier im Forum schon zig Tutorials und Themen zu internetradios auf dem Pi aber die suche hat mir nicht geholfen.

    MfG
    Sarbot

    ps:
    natürlich werde ich den mpd auch über android apps / webinterface ansprechen wollen außerdem soll er ebenso wie internetradio auch musik von usb-speichern abspielen können, aber da scheint es ja schon mehr als genug lösungen auf dem softwaremarkt für zu geben.

    edit: pps:
    sollte es funktionieren und i-wo interesse bestehen würde ich auch gerne ein anfängergerechtes tut. schreiben. Das werde ich aber erst nach abschluss meines Vorhabens entscheiden jenach aufwand*kosten/nutzen verhältnis.

    Einmal editiert, zuletzt von sarbot (2. Januar 2014 um 14:03)

  • Ok die GPIO variante scheint auch nicht sehr schwierig zu sein.. dann kann ich mir den tastatur controller vlt. auch einfach sparen.. die sachen mit enter zu bestätigen wäre nicht weiter problematisch.. vlt. könnte man sogar ne schaltung bauen die jede taste mit enter bestätigt man müsste nur die enter taste finden ;) dazu müsste ich nen haufen pin kombinationen probieren.. aber das wäres mir durchaus wert :)


    ich werd mir dann mal ein paar taster bestellen und wenn ich bis morgen die enter taste nicht gefunden habe oder jemand ne bessere idee hatte probier ichs mal mit den GPIO.
    danke schonmal

    für die GPIO möglichkeit habe ich auchnoch folgendes gefunden:

    http://www.watterott.com/de/Adafruit-16…s-white-on-blue

    für 20 Euro wäre es sogar ne überlegung wert vlt. auchnoch nen display einzubauen. Wenn ichs richtig verstanden habe sind allerdings nur 4 der 5 knöpfe programmierbar (oder was ist mit "ausrichtbar" gemeint !?) mit 5 knöpfen würd ich auskommen:
    1. Play/Pause
    2. prev
    3. next
    4. shuffle
    5. function (zum wechsel von webradio und localer playlist)

    shuffle könnt man zur not weglassen...

    Einmal editiert, zuletzt von sarbot (2. Januar 2014 um 14:37)

  • Zitat


    Android smartphone zur hand? MPDroid laden, so steuere ich mein pi-wifi-radio. Gibt auch ne app für iPhone.

    Genau das ist der plan, aber die hardwareknöpfe brauch ich dennoch, da ich viel wert darauf lege die musik durch einen knopf an und aus machen zu können auch wenn mein handy mal grad nicht zur hand ist und der pc erstmal aus bleiben soll.

    Das "Telephon-Radio" gefällt mir auch von der idee :) habe mich mal durch weiterführende links gelesen vielen Dank.
    Zunächst werde ich das mit dem USB controller aber erstmal hintenanstellen und mich an den GPIO-Pins versuchen.

    Ich habe im Internet gelesen, dass man einfach ein 40Pin- IDE kabel nutzen kann ? Ich würde dann ein solches kabel am anderen ende abschneiden und die kabelenden zum weiter verlöten an eine platine zu den Tastern:

    http://www.conrad.de/ce/de/product/…-2-tastend-1-St

    http://www.conrad.de/ce/de/product/…abel-20-cm-Bulk

    http://www.conrad.de/ce/de/product/…rtpapierhttp://

    Wäre soetwas denkbar ? Ich hab leider ziemlich wenig Erfahrung was elektrotechnik angeht, würde mich aber gerne dran versuchen.
    wären die Schalter geeignet ? Wenn ichs richtig verstanden habe schaltet man entweder erde oder spannung auf einen der pins, bräuchte ich dann nen widerstand oder noch weitere komponenten ? Ich hab kann sowas leider nicht abschätzen, aber meine e-technikgrundlagen sagen mir, dass ein widerstand den fließenden strom verringern würde, wie groß bzw. wie klein er sein muss kann ich allerdings nicht abschätzen. U=R*I mit U=3,3V und I<0,05A --> R> 66 Ohm ???

  • Vielen dank für die links.
    Da sind durchaus interessante projekte bei, die mein vorhaben beinhalten.
    Ich werde mich die nächsten tage mal tiefer einlesen und anschließend berichten :)

  • StatusUpdate:

    Ich habe mich für den Bausatz von Adafruit entschieden, da ich mir doch unsicher war was die schaltkriese und wiederstände anging... außerdem habe ich so kompakt display + knöpfe :) sehr komfortabel.

    Display und knopferkennung funktioniert soweit.
    Jetzt werde ich mich ransetzen ein pythonscript für die funktionen der Knöpfe zu schreiben.

  • Hallo Zusammen,

    ich habe mir nun auch einen Internetradio gebaut.
    Das ganze funktioniert bisher sehr gut . Ich poste anbei den Code aber nun in Kurzform:
    Der Code steuert mein Display (HD44780). Es wird eine Startanimation ausgegeben und dann wird in einer Schleife immer die aktuelle Zeit mit Datum, CPU Temp, CPU Speed und der Radiosender mit Radiotitel ausgeben.

    Ich hoffe ich habe alles sauber in den Code Tag bekommen.

    Aber nun zu meinem Vorhaben:
    Wie oben bereits beschrieben, wir momentan die aktuelle Zeit mit Datum, CPU Temp, CPU Speed und der Radiosender mit Radiotitel in einer Schleife ausgeben.

    Ist es möglich, per Taster, so eine Art "Info Taste", die verschiedenen Funktionen "durchzuklicken".
    Also ich will die Schleife ablösen und per Tastendruck steuern was auf dem Display ausgegeben wird.

    Drücken der Taste, Datum und Uhrzeit
    Nochmals drücken der Taste, CPU Speed und CPU Temp
    nochmals drücken der Taste, Radiosender und Titel.

    Da ich auch viel im Internet gelesen habe und gesehen habe, dass man das ganze nicht in einer Schleife lösen sollte, da es zu viel CPU last erzeugt, soll man das ganze über Interrupt lösen.

    Nun stellt sich mir die Frage ist so etwas möglich und kann mir bei so etwas unter die Arme greifen?

    Danke

  • Ich habe jetzt relativ viel rumgespielt und im Internet gelesen.
    Ich habe mir dann auch einen Code geschrieben, der die Taster per Interrupt abfrägt.

    Vielleicht kann mir bei meinem jetzigen Problem jemand helfen.
    Ich habe nun 2 verschiedene Codes. Den Code, den ich darüber gepostet habe mit dem ich das Display und Radio usw. steuere und diesen jetzt.

    Ich weiß leider nicht wie man die 2 Codes so zusammenfügt, dass der Interrupt in dem Skript für meinen Radio ist.
    Egal was ich bis jetzt probiert habe, es kam immer eine Fehlermeldung.

    Ich weiß leider nicht an welcher Stelle, ich den Interrupt einfügen muss, sodass er sauber funktioniert.

    Ich habe mir das ganze so vorgestellt.
    Ich deklariere eine globale Variable der ich einen fiktiven Wert gebe.
    Wenn dann ein Taste gedrückt wird, schaue ich nach was in der globalen Variable steht.
    So habe ich mir vorgestellt, dass ich zwischen den Funktionen hin und her springen kann .

    So stelle ich mir das vor. Ich kann es nur leider nicht umsetzten.

    Vielleicht kann mir hier jemand behilflich sein, wo man so einen Code einbaut.

    Danke

Jetzt mitmachen!

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