Internet-Radio mit RaspberryPi, 2-zeiligem RGB-LCD und 5 Tasten

02.04.2013

UPDATE 03/2015:

Adafruit empfiehlt inzwischen, statt ihrer Occidentalis-Distribution direkt das Raspbian-Linux zu benutzen.  Von Adafruit gibt es dann einen Raspberry Pi Finder, der die fehlenden Komponenten zur Hardwaresteuerung nachrüstet.

Ich habe damit auf meinem Mac eine passende SD-Karte mit den folgenden Befehlen vorbereitet:

diskutil unmountDisk /dev/disk3 sudo dd bs=1m if=$HOME/Downloads/2015-02-16-raspbian-wheezy.img of=/dev/disk3

Dieser Befehl läuft sehr lange. Mit CTRL-T im Terminalfenster kann man sich zwischendurch den Status anzeigen lassen.

Ein Aufruf von

curl -SLs https://apt.adafruit.com/bootstrap | bash</pre>

… findet dann einen über Ethernet-Kabel angebundenen RaspberryPi und konfiguriert ihn.

Hier ist noch ein kurzes Video vom Startvorgang des Radios:

UPDATE 2. Der Niederländer Bob Rathbone hat auf seiner Website eine umfangreiche (120 S.) Anleitung als PDF-Datei mit passender Python-Software verlinkt.

Internet-Radio. So 2000er! Heute trägt doch jeder ständig mindestens ein Smartphone und ein iPod, vielleicht auch noch ein Tablet und ein Kindle mit sich herum. Eben! Der Nachwuchs bettelt ständig um verlängerte Medienzeit (“nur zum Radio hören”) und nutzt dann das Gadget doch nur zum Daddeln.

Ein Internet-Radio muss also her! Neu gekauft sind die auch gar nicht mehr so teuer. Es gibt auch einige Bausätze mit Gehäuse und Software.

Wer allerdings lieber ein quelloffenes Gerät in Küche oder Kinderzimmer stehen haben möchte, kann sich aber mit moderatem Aufwand und für kleines Geld ein solches Hightech-Radio selber bauen. Mit einem RaspberryPi und dem Music Player Daemon ist das auch gar nicht so schwer. Ganz toll ist natürlich, wenn man dieses Bastelprojekt mit den Sprösslingen gemeinsam bearbeitet. Hier die benötigte Hardware:

  • 1 RaspberryPi, z.B. von Farnell. Inzwischen gibt die Version mit 512MByte Hauptspeicher. Das Radio läuft aber auch gut mit der Version mit nur 256MByte.
  • SDcard ab 4 GByte
  • Netzteil mit Micro-USB-Stecker, wie sie heute bei allen neuen Handys dabei sind
  • WLAN-Adapter N150 von Conrad
  • 1 Adafruit RGB LCD Plate
  • Aktive PC-Boxen zum Anschluss an den Audio-Ausgang des Pi
  • 5 Taster, z.B. von Conrad
  • 1 Holzkiste. Ich konnte eine Kiste von Teebeuteln recyclen.

Dieses Software erweckt das Ganze zum Leben:

Die Vorbereitung der SDcard für den RaspberryPi ist bei elinux.org beschrieben. Wenn der RaspberryPi damit bootet, bringt ihr am besten als nächstes den RaspberryPi per WLAN-Adapter ins Netz. Die Occidentalis-Distribution enthält glücklicherweise bereits passende Treiber, so dass ich mit dem Eintragen meiner SSID und meines Netzwerkkennwortes in der Datei /etc/network/interfaces auskam.

Nach dem Neustart sollte der Pi dann bereits per WLAN erreichbar sein. Per Avahi macht er sich als raspberrypi.local im lokalen Netz bekannt. Da auch ein SSH-Daemon bereits installiert und aktiv ist, können Tastatur und HDMI-Anschluss jetzt von Pi entfernt werden und das weitere Arbeiten kann per Terminal erfolgen.

Jetzt benötigen wir die LCD-Anzeige mit den Tastern. Auf den Adafruit-Seiten ist der Aufbau erklärt.

Für die ersten Schritte in der Python-Entwicklung ist die WebIDE von Adafruit eine tolle Wahl. Zur Installation des Internet-Radios gehen wir aber hier einen anderen Weg:

  • Music Player Daemon, des Kommandozeilenprogramms hierfür und Versionsverwaltung Git:
    sudo apt-get install mpd mpc git
  • Setzen des Audio-Ausganges auf die Klinken-Buchse:
    sudo amixer cset numid=3 1
  • Starten des Radio-Dämons:
    sudo service mpd start
  • Über eine Android- oder iOS-App liesse sich die Musik nun bereits steuern.

Jetzt benötigen wir einige Sender-URLs. Bei mir sieht das nach einigem Googlen so aus:

root@raspberrypi:/var/lib/mpd/playlists# ls -la
total 56
drwxr-xr-x 2 mpd audio 4096 Mar 30 16:43 .
drwxr-xr-x 4 mpd audio 4096 Mar 17 22:28 ..
-rw-r--r-- 1 mpd audio 116 Sep 19 2012 1live_kassettendeck.m3u
-rw-r--r-- 1 mpd audio 106 Dec 14 2011 1live_klubbing.m3u
-rw-r--r-- 1 mpd audio 102 Sep 19 2012 1live_planb.m3u
-rw-r--r-- 1 mpd audio 101 Sep 19 2012 1live_rocker.m3u
-rw-r--r-- 1 mpd audio 30 Mar 17 22:41 90elf.m3u
-rw-r--r-- 1 mpd audio 40 Mar 17 22:52 bigfm-mp3-96.m3u
-rw-r--r-- 1 mpd audio 100 Dec 14 2011 einslivedigi.m3u
-rw-r--r-- 1 mpd audio 88 Sep 28 2012 einslive.m3u
-rw-r--r-- 1 mpd audio 90 Dec 14 2011 kiraka.m3u
-rw-r--r-- 1 mpd audio 77 Mar 30 16:43 klassikradio.m3u
-rw-r--r-- 1 mpd audio 118 Dec 14 2011 wdr2.m3u
-rw-r--r-- 1 mpd audio 87 Dec 14 2011 wdr5.m3u</pre>
  • Installation der erforderlichen Python-Module
wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
sudo easy_install unidecode
  • Installation des Radio-Programmes:
    cd ~; git clone https://github.com/oschettler/radio.git
  • Installation des Start-Scriptes:
    cd radio; sudo cp initradio.sh /etc/init.d/radio; sudo update-rc.d radio defaults

    Damit lässt sich das Radio-Programm starten:

    sudo service radio start

Die Radio-Applikation ist noch sehr rudimentär. Die Menüeinträge lassen sich per Pfeiltasten auswählen (hoch, runter, Menüpunkt auswählen = rechts, zurück = links). Unter “Playlists” werden die Radiosender angezeigt. In einem Sender kann die Lautstärke per hoch/runter eingestellt werden. Es gibt noch keine “aus”-Taste! Ich freue mich über Pull-Requests 😉

Wenn Hardware und Software funktionieren, kann das Ergebnis in eine gefällige Kiste eingebaut werden. Ich habe zusätzlich parallel zu den Tastern auf der Platine 5 Taster für die Frontplatte an das LCD-Plate gelötet. Das Ergebnis sieht bei mir so aus:

Frontplatte des Internet-Radios IMG_0023 IMG_0025

 

Allgemein, Rasberry Pi

- Anzeige -


comments powered by Disqus