TACTbox – Mein Mediaplayer

Titelbild

Ja ich habe es auch getan – mit dem Raspberry Pi ein Webradio und Musikplayer erstellt! Das geht mit dem Kleinen auch ziemlich gut. Was das Besondere an meiner Variante ist, erfahren Sie in diesem Blog.

MP3 abspielen, ID-Tag-Anzeige, Pegelanzeige, NAS-Zugriff, Webradios, Wetter. Mittlerweile hat das kleine Gerät ganz schön viele Funktionen bekommen. Bis dahin war es aber ein weiter Weg.

Es begann vor ungefähr 2 Jahren…

Nummer Eins

Die erste Version ist mittlerweile schon 2 Jahre alt und wird nicht mehr benutzt. Es war der klassische Aufbau, den man fast überall im Netz finden kann:

Ein 16×2 Display, mehrere Tasten, als Mediaplayer im Hintergrund mpc/mpd und ein Raspberry Pi 1

Möglich war Webradio und das Abspielen von MP3-Dateien. Die Steuerung hat ein Python-Programm übernommen.

Version Zwei

Da immer öfter meine Kinder im Bastelkeller (= der Standort des Players) waren, brauchte ich eine einfachere Bedienung. Es kam auch eine neue Anforderung dazu: Sie wollten ihre Hörspiel-CD’s anhören können.

Daduch habe ich mich für andere Hardware entschieden. Es sollte ein 3,5“ Display sein. Die Bedienung über die Tasten blieb gleich, allerdings mit neuen Funktionen.

  • Raspberry Pi 2 B+
  • 3,5“ LCD-Display zum Aufstecken auf die GPIO-Ports
  • 4 Taster für die Bedienung
  • NAS-Anbindung für die MP3-Dateien
  • und PC-Lautsprecher

Als Erweiterung und Vereinfachung gab es jetzt ein Scroll-Down-Menü mit Funktionen für Radio, Dateiauswahl für MP3-Dateien und Einstellungen. Der MP3-Player zeigte schon die ID3-Tags mit den hinterlegten Bildern aus den MP3-Dateien an.

Version 2 der TACTbox
Version 2 meiner TACTbox von vorne

Als Programmiersprache habe ich hier erstmals Lazarus gewählt. Lazarus läuft noch ganz passabel auf einem Raspberry Pi 2 (aber Spaß macht es nicht!). Informationen zu Lazarus auf dem Raspberry finden Sie am Ende des Blogs unter Links.

Lazarus bietet für den Raspberry fast die gleiche Unterstützung für GPIO-Pins wie Python. Es kann aber seine Stärken bei der grafischen Programmierung viel besser ausspielen. Für mich hat Lazarus eine der schnellsten IDE’s für das Designen von Formularen und Oberflächen.

IDE von Lazarus
Integrierte Entwicklungsumgebung (IDE) von Lazarus mit dem geöffneten TACTbox-Projekt

Variante Touch

Die „Version Zwei“ war schon ein ziemlicher Hit bei uns und läuft immer noch im Bastelkeller. Als mein Sohn dann seine erste Stereo-Anlage bekam, wollte er das selbe auch für sein Zimmer.

Der 3,5“ Bildschirm war uns auch zu klein, also atmete ich einmal tief durch und bestellte für 75 EUR das 7“ Display der Raspberry Pi Foundation. Für das Display hat mein Sohn dann selber ein kleines Gehäuse neben die Stereo-Anlage gebaut.

Dann ging es an die Player-Software.

Die Software musste komplett neu geplant werden, denn mit dem schicken Touch-Display wollten wir keine mühsame Bedienung über Taster mehr. Außerdem sollten einige zusätzliche Features dazukommen.

Einige besondere Wünsche:

  • Eigene Hintergrundbilder und Farben (das war tatsächlich das Wichtigste!)
  • Eine Uhr im Radio Ö3-Style sollte integriert sein
  • Wetter-Informationen sollen angezeigt werden

Lazarus selber reicht fast in der Basis-Installation aus. Ich habe noch folgende freie Erweiterungen (Packages) integriert:

  • BASS-Bibliothek für MP3- und Webradio-Wiedergabe
  • Funktionen für den ID-Tag

Und so sieht das aktuelle Ergebnis aus: Unsere TACTbox ist per Audio-In mit der Steroanlage verbunden.

Version 3 meiner TACTbox
Version 3 meiner TACTbox

Mehr zur Touch-Software

In der Galerie finden Sie einige Impressionen zur Touch-Variante der Software mit Lazarus.

Diese Diashow benötigt JavaScript.

Das coole an Lazarus als Programmiersprache ist in diesem Fall, dass der gleiche Quellcode unter vielen Betriebssystemen laufen kann.

Damit konnte ich unter Windows performant programmieren und dann auf den Raspberry übertragen und dort nur kompilieren.

Solange keine GPIO-Pins benutzt werden, habe ich als Bonus jetzt auch unter Windows die Player-Software, denn die läuft auch auf einem PC oder Windows-Tablet perfekt.

TACTbox unter Windows
Die TACTbox läuft auch unter Windows

Ausblick

Die Entwicklung geht natürlich weiter. Das zweite Gerät steht schon bei meiner Tochter im Zimmer. Diesmal mit zusätzlich ein paar LED-Effekten und integrierten Lautsprechern.

Und es gibt noch jede Menge weitere Ideen.

Fortsetzung folgt…

Links

 

Dieser Beitrag hat 10 Kommentare

  1. Oliver Teske

    Sieht ja echt 100% schick aus, Saubere Arbeit!!!
    Was hast Du denn für eine Internetradio Software verwendet?

    Gruß
    Oli

    1. Thomas Angielsky

      Danke für das Lob. Das Radio läuft ebenfalls über die BASS-Bibliothek. Das geht auch ziemlich einfach:

      BASS_StreamFree(channel);
      channel:=BASS_StreamCreateURL(PAnsiChar(URL_Des_Webradios),0,
      BASS_STREAM_BLOCK or BASS_STREAM_STATUS or BASS_STREAM_AUTOFREE,nil,nil);
      if (channel0) then begin
      //Stream puffern: 75%
      repeat
      len:=BASS_StreamGetFilePosition(channel,BASS_FILEPOS_END);
      if (len=DW_Error) then break;
      progress:=BASS_StreamGetFilePosition(channel,BASS_FILEPOS_BUFFER)*100 div len;
      until (progress>75) or (BASS_StreamGetFilePosition(channel,BASS_FILEPOS_CONNECTED)=0);
      //Abspielen starten
      BASS_ChannelPlay(channel,false);
      end;

  2. Chris

    Der Player ist super! V.a. Die Oberfläche ist gelungen. Da kommen einem so viele Ideen. Ich werde einen Blick ins Lazarus Projekt werfen und versuchen, meine Ideen umzusetzen… Werde öfter mal vorbeischauen. Danke

Kommentar verfassen