Sie sind auf Seite 1von 9

22.1.

2014

Raspberry-Webradio - Mikrocontroller.net

www.mikrocontroller.net

Raspberry-Webradio
von Michael Schwarz

Dieser Artikel nimmt am Artikelwettbewerb 2012/2013 teil.

Inhaltsverzeichnis
1 Einleitung 2 Features 3 Hardware 3.1 Technische Daten 3.2 Stromversorgung 3.3 GLCD Bridge 3.4 I/O Bridge 3.5 Internet 4 Software 4.1 Bridges 4.2 Firmware 4.2.1 Konfigurationsdatei 4.3 Streaming und Local-Player 4.4 Simulator 4.5 Android App 4.6 SHOUTcast Untersttzung 5 Installation 5.1 Installer 5.2 Autostart und Autologin 6 Troubleshooting 7 Fertiges Gert 7.1 Fotos 7.2 Video 8 Ausblick 9 Downloads 10 Siehe auch

Raspberry Webradio

Einleitung
Wer kennt das nicht, man mchte einfach nur Musik hren und egal auf welchen Radio Sender man schaltet, entweder hrt man Werbung, Nachrichten, unntige Ansagen irgendwelcher Moderatoren oder die gefhlte 317te Wiederholung der Charts. Glcklicherweise gibt es eine bessere und obendrein kostenlose Alternative: Internet-Radio. Mit SHOUTcast gibt es dazu auch ein Verzeichnis, das annhernd 50.000 Online-Radiosender listet. Doch da ich nicht immer meinen PC einschalten mchte um Musik zu hren, musste ein Standalone Gert her. Und da ich gerade meinen Raspberry Pi erhalten hatte, schien das ein gutes Projekt zu sein um den Mini-Computer sinnvoll einzusetzen. Das Projekt hat dann doch mehr Zeit in Anspruch genommen als zuerst gedacht, doch das Ergebnis kann sich sehen lassen und muss sich auch nicht vor kommerziellen Gerten verstecken, die in hheren Preisklassen liegen. Eine ausfhrliche Anleitung gibt es natrlich auch, in welcher die Bedienung des Gertes genau beschrieben wird.
http://www.mikrocontroller.net/articles/Raspberry-Webradio 1/9

22.1.2014

Raspberry-Webradio - Mikrocontroller.net

Features
Hier ist eine Liste der Hauptfeatures des Raspberry Webradios Abspielen von MP3 Shoutcast Streams ber WLAN oder Ethernet Abspielen von MP3s von USB-Medien mit Untersttzung von Playlists Anzeige der Song Informationen (sowohl von MP3s als auch von Streams) Vollstndige Shoutcast Untersttzung (Suchen von Stations, Top Stations, Stationen nach Genre, Zufllige Stations) Lieblingsstationen und Verwaltung der Favoriten Android App zur Fernsteuerung Schlummerfunktion

Hardware
Das Hauptprogramm luft auf einem Raspberry Pi (Model B) mit 256 MB RAM, getaktet auf 700MHz. Die Interaktion mit dem Benutzer erfolgt ber ein Blau-Wei Grafik-Display mit KS0108 Controller und einer Auflsung von 128x64 Pixel, sowie ber einen Drehencoder und 6 Tasten. Um den Raspberry Pi zu entlasten, und da dieser nicht besonders viele I/O Pins zur Verfgung stellt, stehen ihm zwei Mikrocontroller als "CoProzessoren" zur Verfgung. Ein ATMega32 dient als Bridge zwischen Raspberry und GLCD und ein ATTiny2313 wird verwendet um den Drehencoder und die Tasten auszuwerten.

Technische Daten

Funktion Prozessor

Hardware Raspberry Pi (Model B, 256MB RAM)

LCD Controller ATMega32 @ 14,3181 MHz I/O Controller Display Eingabe ATTiny2313 @ 8 MHz GLCD KS0108 (128x64) S/W Display Drehencoder und 6 Taster

Stromversorgung
Der Raspberry Pi wird ber den GPIO Pin Header mit 5V versorgt. Der ATMega32 und das Display werden ebenfalls mit 5V versorgt. Die 3,3V fr den ATTiny2313 stellt der Raspberry Pi an seinen GPIO Ports zur Verfgung [1]. Der Stromverbrauch des Raspberry liegt laut Spezifikation bei 700mA, das Gert sollte also mit einem Netzteil versorgt werden das 1A liefern kann, vor allem wenn ein WLAN Stick verwendet wird. Mein Webradio wird durch ein USB Handy-Ladegert (5V @ 1A) mit Strom versorgt.
Schaltplan

GLCD Bridge
http://www.mikrocontroller.net/articles/Raspberry-Webradio 2/9

22.1.2014

Raspberry-Webradio - Mikrocontroller.net

Da der Raspberry nur wenige Pins hat und diese nur 3,3V Pegel haben dient der ATMega32 sowohl als PegelRaspberry Pi I/O Converter, Portexpander und Display Treiber. Die Stromversorgung erfolgt ber die 5V mit welchen auch der Pins Raspberry Pi gespeist wird. Die 3,3V der I/O Pins reichen fr den ATMega um es als High-Pegel zu erkennen, eine Kommunikation in die andere Richtung findet nicht statt. Die einzige Aufgabe des Mikrocontrollers ist es, die vom Raspberry erhaltenen Daten an das Display weiterzuleiten. Die Kommunikation erfolgt ber ein Clock und ein Data Signal. Bei jedem high-low bergang wird das Bit vom Data-Pin bernommen und in einem Ringbuffer gespeichert, damit keine Daten verloren gehen. Der Inhalt des Ringbuffer wird dann regelmig an das Display gesendet. Ein vollstndiges Bild hat eine Gre von 1024 Bytes (128x64 Bit). Danach werden die Daten fr das nchste Bild gesendet. berprfungen finden nicht statt und es werden ausschlielich die Rohdaten des Bildes gesendet um den Overhead so gering wie mglich zu halten und damit eine hohe Bildaufbaugeschwindigkeit zu erhalten. Das Format der Daten schaut folgendermaen aus Byte 0-127 Byte 128-255 ... Byte 895-1023

Bilddaten 1.-8. Zeile Bilddaten 9.-16. Zeile Bilddaten 17.-120. Zeile Bilddaten 121.-128. Zeile Jedes gesendete Byte enthlt 8 vertikale Pixel, es werden also durch das Senden von 128 Bytes immer 8 Zeilen auf das Display geschrieben. Bei einer Taktung des ATMegas mit 14,3181MHz wird damit eine maximale Refresh-Rate von 12 Bildern/Sekunde erreicht. Im Produktiveinsatz hat sich eine Refreshrate von ungefhr 6,5 Bildern/Sekunde als vllig ausreichend herausgestellt und sich als sehr stabil bewhrt. Zustzlich zur Grafik steuert der ATMega auch noch die Hintergrundbeleuchtung des Displays. Diese ist so geschaltet, dass beim Einschalten des Gertes die Beleuchtung aktiviert wird und bei Bedarf vom Raspberry deaktiviert werden kann.

I/O Bridge
Da der ATMega32 mit den Aufgaben als Grafik-Bridge schon ziemlich ausgelastet ist handhabt ein weiter Mikrocontroller, ein ATTiny2313, die Eingabe ber den Drehencoder und die 6 Taster. Kommuniziert wird bei beim ATMega ebenfalls ber ein Data- und Clock-Signal, diesmal jedoch in die andere Richtung. Der ATTiny agiert nur als Slave und sendet die Zustnde der Taster und des Encoders an den Raspberry wenn dieser ein Clock-Signal anlegt.

Raspberry Pi, Platine mit GLCDund IO-Bridge

Eine vollstndige bertragung ist 3 Byte (24 Bit) lang und enthlt fr jeden Taster ein Bit ob er seit der letzten Abfrage gedrckt wurde, weiters fr jeden Taster ein Bit ob er seit der letzten Abfrage fr lngere Zeit gedrckt wurde und schlielich noch ein Byte das die Anzahl der Steps des Drehencoders seit der letzten Abfrage enthlt. Erstes Byte, wenn das entsprechende Bit gesetzt ist, wurde der Taster seit der letzten Abfrage gedrckt, sonst nicht. Bit 7 Bit 6 0 0 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

Taster 5 Taster 4 Taster 3 Taster 2 Taster 1 Taster 0

Zweites Byte, wenn das entsprechende Bit gesetzt ist, wurde der Taster seit der letzten Abfrage fr lngere Zeit gedrckt, sonst nicht. Bit 7 Bit 6 0 0 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

Taster 5 Taster 4 Taster 3 Taster 2 Taster 1 Taster 0

Drittes Byte, die Anzahl der Steps die der Drehencoder seit der letzten Abfrage gedreht wurde. Positive Werte bedeuten eine Drehung nach rechts, negative eine Drehung nach links. Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Drehencoder nderung (als 8-Bit signed char) Die Entprellroutinen fr die Taster und die Auswerte-Routine fr den Drehencoder sind in diesem Controller implementiert, sodass sich der Raspberry Pi nicht mehr darum kmmern muss.

Internet
Fr den Zugriff auf das Internet kann man entweder die Ethernet Buchse des Raspberry Pi verwenden oder einen WLAN Stick an einen der USB Ports anschlieen. Hier ist der Netgear N150 Wireless USB Microadapter empfehlenswert, da er sowohl klein als auch recht gnstig ist und es fr den Raspberry Pi einen Treiber gibt. Eine Anleitung zur Installations des Treibers gibt es hier: http://pkern.at/1342/netgear-n150wireless-usb-microadapter-auf-dem-raspberry-pi http://www.mikrocontroller.net/articles/Raspberry-Webradio 3/9

22.1.2014

Raspberry-Webradio - Mikrocontroller.net

wireless-usb-microadapter-auf-dem-raspberry-pi Die Konfiguration des WLAN (Suche, Verbinden und Authentifizierung) kann vollstndig ber das Gert erfolgen, sodass es auch mglich ist das Radio mitzunehmen und mit einem anderen WLAN Hotspot zu verbinden.

Software
Die Software des Webradios besteht aus mehreren Teilen und kann in folgende Kategorien eingeteilt werden Software Hauptprogramm das am Raspberry Pi luft ("Firmware"), programmiert in C Stream Player und USB-Player, programmiert in C Android Fernsteuerungsprogramm, programmiert in Java Installer zur erstmaligen Einrichtung, programmiert in Bash Interfaces Kleine Hilfstools zur Kommunikation mit dem Betriebssystem, programmiert in Bash Firmware fr die Bridges (I/O und GLCD), programmiert in C Mobile Webseite zur Fernsteuerung, programmiert in PHP und JavaScript Developer Tools Simulator, programmiert in C++ Bild-Konverter fr Firmware, programmiert in Bash Font-Creator von F. Maximilian Thiele (apetech) Der Zusammenhang der wichtigsten Teile ist in diesem Diagramm zu sehen

Graue Rechtecke sind Hardware-Komponenten (Display, Taster, Drehencoder), die Software-Hardware Bridges sind blau eingezeichnet, die gelben Elemente sind Software-Interfaces (Bash-Scripts), Software Komponenten sind wei und in grn gehalten sind BetriebssystemAnwendungen.

Bridges
Die Software fr die beiden Mikrocontroller ist in C geschrieben und kann mit einem Aufruf von
m a k eh e x

erstellt werden bzw. mit


http://www.mikrocontroller.net/articles/Raspberry-Webradio 4/9

22.1.2014

Raspberry-Webradio - Mikrocontroller.net

m a k ef l a s h

erstellt und geflasht werden. Vor dem Flashen sollte man allerdings noch die Zeile mit dem Programmer im Makefile anpassen. Die Fuses knnen durch den Aufruf von
m a k ef u s e s

richtig gesetzt werden. Fr den ATMega32 bedeutet das: Taktfrequenz auf Quarz und JTAG deaktivieren (damit PORTC verwendet werden kann). Das Entspricht den Fuse-Werten Low-Fuse 0xde und High-Fuse 0xd9) Am ATTiny stellen die Fuses die interne Taktfrequenz auf 8MHz. Die Fuse-Werte sind Low-Fuse 0xe4, High-Fuse 0xdf und Extended-Fuse 0xff. Die Taktfrequenzen der Mikrocontroller sind nicht kritisch, fr den ATMega32 sollte alles im Bereich von 12MHz bis 16MHz funktionieren. Schlimmstenfalls muss der Wert G L C D _ D E L A Yin der glcd.h erhht werden. Die Firmware fr den ATMega32 enthlt auch das Boot-Logo, welches mit dem convert Script aus einem PNG erzeugt wurde. Das Bild kann durch ein beliebiges anderes Bild ausgetauscht werden, es muss dann nur der Aufruf zu G L C D D _ X B M D r a w _ P ( d a t a ,x ,y ,w i d t h , h e i g h t )in der main.c angepasst werden (auer das neue Bild ist ebenfalls 59x56 Pixel gro).

Firmware
Die Firmware ist das Herzstck des Projekts. Sie ist zustndig fr die Ein- und Ausgabe, das Starten und Stoppen von Musik und fr die Verwaltung. In regelmigen Intervallen werden die Benutzereingaben von der I/O Bridge geholt, auf diese reagiert und der neue Display Inhalt an die Grafik-Bridge gesendet. Mchte der User Musik abspielen, entscheidet die Firmware ob es ein lokales File oder ein Stream ist, und delegiert die Aufgabe dann entweder an den USB-Player oder den Stream-Player. Konfigurationsdatei Alle Einstellungen die konfiguriert werden knnen sind in der default.conf zu finden. Die Optionen sollten selbsterklrend sein, es sollte jedoch nicht notwendig sein hier manuell etwas anzupassen (ausgenommen der Eintrag des Shoutcast API Keys).

Streaming und Local-Player


Zum Abspielen von Musik gibt es zwei getrennte Applikationen: den Local-Player zum Abspielen von lokalen Dateien (von USB-Stick oder externen Festplatte) und den Stream-Player zum Wiedergeben von SHOUTcast Streams.

Die Konfigurationsdatei play.conf wird allerdings von beiden Programmen verwendet. In ihr kann der verwendete Player eingestellt werden (es funktionieren jedoch nur Player, welche die Musik Daten von einer Pipe verarbeiten knnen) sowie die Gre des Buffers den der Player verwendet.

Simulator
Da es relativ umstndlich ist, die Software jedesmal auf den Raspberry zu bertragen und zu testen existiert auch ein Simulator, der die komplette Hardware simuliert. Der Simulator ist in C++ geschrieben mit wxWidgets als GUI Framework. Der Simulator ist nur unter Linux getestet, da die Software auch unter Linux entwickelt wurde. Das liegt auch nahe, da auf dem Raspberry Pi ein modifiziertes Debian luft und es nie geplant war, dass die Software auf einer anderen Plattform als auf dem Raspberry Pi luft. Um das Programm im Simulator zu testen muss der Quellcode nur mit dem Debugging Makefile kompiliert werden. Dieses setzt das Simulationsmakro und linkt die wiringPi Bibliothek nicht zum Programm. Weiters mssen noch die default.conf folgendermaen angepasst werden:
[ h a r d w a r e ] l c d = s i m i o = s i m

Simulator nach dem Starten

http://www.mikrocontroller.net/articles/Raspberry-Webradio

Die Hardware Zugriffe werden dadurch auf Datei-Operationen umgeleitet. Diese Dateien sind die Kommunikationsschnittstelle zum Simulator.

5/9

22.1.2014

Raspberry-Webradio - Mikrocontroller.net

Die Hardware Zugriffe werden dadurch auf Datei-Operationen umgeleitet. Diese Dateien sind die Kommunikationsschnittstelle zum Simulator. Beim Starten des Simulators kann man als Parameter den Pfad zur Software mitgeben, damit diese sofort geladen wird. Der Simulator selbst kann im Grunde nicht mehr als das Display, den Drehencoder und die Tasten zu simulieren, das ist aber ausreichend, um die komplette Funktionalitt (bis auf die Hintergrundbeleuchtung) der Firmware zu testen. Die Oberflche des Simulators ist zwar nicht schn, aber zweckmig. Die Buttons in der ersten Zeile simulieren den Drehencoder (linke, Ok, rechts), die zweite und dritte Zeile enthalten die Buttons und die letzte Zeile ermglicht das Simulieren des Gedrckthaltens der Tasten 1-4 fr lngere Zeit. Ein Klick auf den Screenshot Button speichert das aktuelle Bild im Ordner des Simulators als "lcd.png".

Android App
Da der Raspberry Pi noch gengend Ressourcen hat, luft im Hintergrund ein Webserver, der es erlaubt das Gert auch ber ein AndroidSmartphone zu steuern. Die App dafr ist ebenfalls auf der Downloadseite des Projekts zu finden. Das Smartphone muss natrlich im gleichen Netzwerk sein (WLAN), damit das Webradio gefunden werden kann. Um das Gert zu finden, braucht man nicht einmal die IP-Adresse wissen, da in der App ein Zeroconf-Client implementiert wurde, der den Raspberry automatisch findet (der Zeroconf Name ist raspberrypi.local). Wurde das Raspberry Webradio gefunden, kann man ihn der App sehen, welches Lied gerade abgespielt wird (inklusive Bild des Interpreten, falls vorhanden), Stationen aus der Favoriten-Liste und vom USB-Medium abspielen sowie neue SHOUTcast Stationen und SHOUTcast Streams hinzufgen. Um das App zu installieren, kopiert man die apk Datei einfach auf das Smartphone und ffnet sie mit einem beliebigen Datei-Explorer auf dem Handy. Die einzigen Voraussetzungen fr die App sind Android 2.2 und aufwrts sowie WLAN, da das Smartphone natrlich im gleichen Netzwerk sein muss wie das Webradio.

SHOUTcast Untersttzung
Die Untersttzung fr die SHOUTcast API kann alles was man braucht Suchen nach Stationen Anzeigen der Stationen nach Genre Liste der Top Stationen Zufllige Stationen (wenn man sich gerne berraschen lsst) Leider bentigt man fr die SHOUTcast API einen Developer Key der nicht so einfach zu bekommen ist (und den man auch nicht verffentlichen darf). Wer die oben erwhnten Features also verwenden mchte, kann entweder versuchen einen SHOUTcast Developer Key zu bekommen, oder man verwendet einfach einen der Keys die im Internet umherschwirren... (siehe Links). Das Abspielen von SHOUTcast Streams funktioniert natrlich auch ohne Developer Key.
Startseite der Android App

Der Developer Key muss in der Konfigurations-Datei default.conf berall eingetragen werden, wo [DevKey] vorkommt.

Installation
Die Firmware ist entwickelt und getestet auf Raspbian Wheezy. Die Installation von Raspbian wird auf der Raspberry Pi Seite beschrieben. Die einfachste Art das Raspberry Webradio aufzusetzen ist mit dem automatischen Installer. Hierfr kopiert man alle Ordner, die man aus dem SVN ausgecheckt hat auf den Raspberry Pi und fhrt den Installer wie unten beschrieben aus. Eine andere, noch einfachere Mglichkeit ist, ein fertiges Image zu verwenden. Dieses braucht nur auf eine SD-Karte mit mindestens 2GB geschrieben werden. Das Image (Stand: 11.07.2013) ist zu finden auf misc0110.net/download/webradio-image.rar. Auf die SD-Karte schreiben kann man es (nach dem Entpacken) mit
s u d od di f = / p f a d / z u m / i m a g e . i m go f = / d e v / s d Xb s = 4 M

wobei /dev/sdX durch den Pfad zur SD Karte ersetzt werden muss. Man kann statt dd auch das graphische Tool ImageWriter (sudo apt-get install usb-imagewriter) verwenden. Die Login Daten fr das Image sind User: pi und Passwort: raspberry.
http://www.mikrocontroller.net/articles/Raspberry-Webradio 6/9

22.1.2014

Raspberry-Webradio - Mikrocontroller.net

Installer
Der Installer ist ein Bash-Script das alle erforderlichen Dateien auf dem Raspberry Pi installiert. Damit der Installer funktioniert, wird Internetzugang bentigt (am besten ber die LAN Buchse) und er muss als root ausgefhrt werden. Folgende Schritte werden vom Installer durchgefhrt Installation aller notwendigen Softwarepakete, falls diese noch nicht installiert sind (avahi-daemon, mpg123, id3v2, usbmount, lighttpd + php5, wiringPi, libcurl, libxml2) Einrichten des lighttpd Servers und der mobilen Webseite Kompilieren der Firmware, des USB-Players und des Streaming-Players Kopieren aller Dateien in die richtigen Ordner (/home/pi wird als Installationsordner verwendet) und setzen der Berechtigungen Standard Konfiguration einspielen Der Installer wird mit einem Aufruf von
s u d o. / i n s t a l l e r . s h

gestartet. Nach der Installation muss - sofern die Firmware auf der Hardware ausgefhrt wird, und nicht im Simulator - die default.conf bearbeitet werden:
[ h a r d w a r e ] l c d = h a r d w a r e i o = h a r d w a r e

Sollte der Webserver nicht starten, kann dies durch ein


s u d oc h o w np i : p i/ v a r / l o g / l i g h t t p d /

behoben werden.

Autostart und Autologin


Um die Firmware automatisch beim Starten des Raspberrys zu starten mssen zwei Dateien angepasst werden. Zuerst editiert man die Datei /etc/inittab (z.B. mit s u d on a n o/ e t c / i n i t t a b ). Man sucht die Zeile
1 : 2 3 4 5 : r e s p a w n : / s b i n / g e t t yn o c l e a r3 8 4 0 0t t y 1

und kommentiert sie aus, indem man # davor setzt. Die Zeile sieht danach so aus:
# 1 : 2 3 4 5 : r e s p a w n : / s b i n / g e t t yn o c l e a r3 8 4 0 0t t y 1

Unter der genderten Zeile fgt man folgende neue Zeile ein
1 : 2 3 4 5 : r e s p a w n : / b i n / l o g i nfp it t y 1< / d e v / t t y 1> / d e v / t t y 12 > & 1

Dies sorgt dafr, dass man automatisch als User pi angemeldet wird wenn das Betriebssystem startet. Danach muss noch die Datei /etc/profile gendert werden (z.B. mit s u d on a n o/ e t c / p r o f i l e ). Hier fgt man einfach am Ende der Datei folgende zwei Zeilen ein
c d/ h o m e / p i
http://www.mikrocontroller.net/articles/Raspberry-Webradio 7/9

22.1.2014

Raspberry-Webradio - Mikrocontroller.net

. / f i r m w a r e

Dadurch startet die Firmware automatisch wenn man den Raspberry Pi hochfhrt.

Troubleshooting
Ich kann keine Musik hren Es kann sein, dass die Standard Audio Ausgabe auf dem HDMI Port erfolgt. Umschalten auf die Audio Buchse kann man mit
s u d oa m i x e rc s e tn u m i d = 31

Eine weitere Mglichkeit ist, dass entweder die Bash Scripts nicht dort liegen, wie es in der default.conf angegeben ist, oder die Bash-Scripts nicht ausfhrbar sind. Wenn die Software allerdings mit dem Installer Script installiert wurde sollte das nicht der Fall sein. Es wird eine falsche Uhrzeit angezeigt Das ist dann der Fall, wenn die Zeitzone nicht richtig eingestellt ist. Das ndern der Zeitzone ist nicht schwer und sieht z.B. fr Wien so aus
s u d om v/ e t c / l o c a l t i m e/ e t c / l o c a l t i m e . o l d s u d oc p/ u s r / s h a r e / z o n e i n f o / E u r o p e / V i e n n a/ e t c / l o c a l t i m e

Der Drehencoder funktioniert nicht/verhlt sich seltsam Mglicherweise sind die beiden Ausgnge vertauscht. Tauschen der Pins PD5 und PD6 sollte helfen (entweder in Software oder Hardware) Im Simulator funktioniert das Abspielen von Streams/MP3s nicht Die Firmware geht davon aus, das alle notwendigen Dateien in /home/pi legen. Abhilfe schafft entweder das Anlegen des Ordners /home/pi und hineinkopieren der relevanten Dateien in diesen Ordner oder das ndern der Pfade in der default.conf Das Display zeigt Streifen an/ist verschoben/unleserlich nachdem ich das Audio-Kabel ein/ausgesteckt habe Das ist ein bekannter Bug, der manchmal auftritt, den ich aber noch nicht lokalisieren konnte. Beheben kann man ihn im Moment nur, indem man das Gert herunterfhrt (Settings -> Shutdown), vom Strom trennt und wieder mit Strom versorgt. Dadurch wird der Display Controller zurckgesetzt und man sollte wieder ein normales Bild haben. Die Android App zeigt nur Loading... Please wait... an Wenn ein Neustart der App nichts hilft (manchmal wird der Raspberry nicht gefunden), dann kann es daran liegen, dass das Handy nicht im gleichen Netwzerk ist (wenn es z.B. ber 3G im Internet ist und nicht mit WLAN) oder dass der Raspberry im Moment keine aktive Internet Verbindung hat. Der zweite Fall kann dann auftreten, wenn der Raspberry ber WLAN verbunden ist, und fr lngere keine Zeit kein Traffic verursacht wurde. Abhilfe schafft hier das manuelle Starten einer Internet Radio Station, danach sollte es auch ber die Android App wieder funktionieren.

Fertiges Gert
Fotos

Offenes Gert
http://www.mikrocontroller.net/articles/Raspberry-Webradio 8/9

22.1.2014

Offenes Gert

Raspberry-Webradio - Mikrocontroller.net

Gehuse mit offenem Deckel

Bootlogo (vor dem Lackieren)

Video
Raspberry Webradio Demo

Ausblick
Wie jeder Entwickler wei, ist ein Produkt nie fertig. Das gilt auch bei diesem Projekt und so habe ich bereits einige Ideen fr zuknftige Software Updates. Abspielen von Musik aus YouTube Videos (bereits in der Testphase) Eine Weckerfunktion Erweitern des Simulators um die Simulation der Hintergrundbeleuchtung und einer Debug Console Untersttzung weiterer Musik Formate (ogg und wma) Bessere USB Wiedergabe (Anzeige der Restzeit/Gesamtzeit, voriges Lied, zuflliges Lied, Wiederholen, ...) Aufnahme der Internet Streams als MP3 Erweiterung der Android App um mehr Funktionen Um immer auf dem neuesten Stand zu sein, empfiehlt es sich hin und wieder die Projektseite zu besuchen, bei greren Updates werde ich natrlich auch diesen Artikel aktualisieren. Sollte das Projekt jemand nachbauen, wnsche ich viel Spa dabei und ich wrde mich ber Fotos und/oder Videos freuen.

Downloads
Anleitung Sourcecode siehe Projektseite (Code Checkout - Projekt Seite) Image (Stand 11.07.2013) (Raspberry-Webradio Image)

Siehe auch
Das Projekt auf Google Code Ohloh Code Statistik Raspberry Pi Low Level Peripherals WiringPi Library Reverse Engineering des Shoutcast Metadaten Protokolls Zeroconf Shoutcast API Key Von http://www.mikrocontroller.net/wikisoftware/index.php?title=Raspberry-Webradio&oldid=78876 Kategorien: Wettbewerb AVR-Projekte Audio Raspberry Pi

http://www.mikrocontroller.net/articles/Raspberry-Webradio

9/9