Stand-alone
mp3 Player
Die Idee für einen mp3
Player, der auch Netzwerkstreams abspielen kann, entstand 2005.
Verwendet werden sollte damals das von Guido Fischer entwickelte Modul Arthernet.
Nachdem die Platine damals zusammen gelötet wurde, fehlte mir jedoch
die Erfahrung diese doch recht umfangreiche Idee umzusetzen. Nach
einigen weiteren Projekten ging es dann Mitte 2009 wieder weiter.
Inzwischen ist das Projekt fertig gestellt.
Bilder
Klicken vergrößert die Ansicht
| Die Platine fast fertig aufgebaut |
Player mit erstem LCD
|
Player mit neuem LCD
| PC Build mit ncurses
|
 |
 |

| 
|
Ein Video bei Youtube zeigt den Player (mit einer etwas älteren Software Version) im Betrieb. Ein zweites Video (aktuelle Software Version) zeigt noch ein paar Extras.
Features
- 128x64 Pixel LCD mit einem Menüsystem
- Steuerung per Infrarot Fernbedienung (RC5) und/oder Drehencoder
- Spielen von mp3s von einer internen SD Karte oder von einem Netzwerkstream (Shoutcast, Lastfm)
- Arthernet Platine mit ATmega128, 512KB SRAM und RTL8019AS Ethernet Chip
- VS1002 decoder
- FTP Server zum Befüllen der SD Karte
- Nut/OS dient als Betriebssystem
- Betrieb mit 9V @ 160...300mA = 1,5...2,7W
- Aluminiumgehäuse
- Aufnahme von mp3 Streams
- Auf Wunsch spätere automatische Aufnahme eines Stücks um es vollständig zu bekommen
- Dekodieren und Anzeigen von Meta Informationen (ICY200, ID3)
- Unterstützen von Redirects
- SD-HC Unterstützung
- Verschiedene mp3 Wiedergabemethoden (Zufall, Ähnlicher Zufall, Ordner, Kontinuierlich)
- Statistiken (Uptime, Reboots, Traffic etc)
- Automatisches Wiederherstellen des letzten Zustands nach einem Einschalten
- Zeit Einschalten->Wiedergabe: ~6 Sekunden bei Dateien, ~17 Sekunden bei Streams
- Alphabetisches Sortieren von Dateinamen
- Es ist möglich den Player für Testzwecke auch unter Linux (i386) zu compilieren und auszuführen
Durch die Arbeit fertig gestellte Unterprojekte und Anleitungen, veröffentlicht auf mikrocontroller.net:
Schaltpläne und Sourcecode
Den Schaltplan für die AVR Ethernet Platine und den VS1002 Decoder sind auf den oben erwähnten Webseiten erhältlich.
Portierbarkeit
Eine Portierung der Software auf eine
andere Hardware ist möglich, erfordert aber etwas Einarbeitungszeit
in meine Software. Generell muss die Plattform jedoch von Nut/OS
unterstützt oder eine passende API bereit gestellt werden. Auf einem
AVR werden knapp 128KB Flash benötigt.
Ferner werden mindestens 100KB RAM (am besten 512KB) benötigt. Bei
der AVR Platine ist der RAM in Segmenten zu je 16KB anzusprechen.
Diese Verwaltung ist relativ Tief in der Software integriert.
Ebenfalls recht tief integriert und speziell an der Hardware ist die
Verwaltung des SPI Bus. Auf diese beiden Bereiche dürfte daher die
Hauptarbeit einer möglichen Portierung entfallen. Die Möglichkeit die
Software auf dem PC auszuführen zeigt jedoch dass eine Portierung
prinzipiell machbar ist.
Dinge, die ich beim nächsten mal besser machen würde
- Keine zwei bis drei verschiedenen Spannungen (8V fürs ursprüngliche LCD, 5V für Controller, 3,3V für SD Karte und MP3 Decoder)
- Und wenn doch, dann Schaltregler verwenden
- Leistungsfähigeren Controller für mehr ftp Datendurchsatz und weniger Probleme mit zu wenig RAM, z.B. ARM7
- Nicht mit einem Restposten billig LCD anfangen, bei welchem
langsam Zeilen ausfallen und für das kein Ersatz in gleicher Größe
verfügbar ist.
- Die
Vier-Dioden Schaltung am Eingang der Ethernet Platine ist ungünstig,
wenn man an dem gleichem Netzteil noch eine weitere Schaltung betreiben
möchte und man dadurch plötzlich unterschiedliche Potentiale an GND hat.
zuletzt aktualisiert: 17.04.2010