Musik-Server

Als Gehäuse des Musik-Servers soll ein ausrangierter SAT-Receivers dienen und alle notwendigen Komponenten aufnehmen.

Das Gehäuse selbst hat ein akzeptables Aussehen (WAF) und alle zur Bedienung notwendigen Elemente.

Koscom SAT-Receiver

Folgende Hardware Ausstattung soll in dem alten Gehäuse untergebracht werden:

  • Banana Pi
  • Festplatte
  • Serieller Anschluss für Ampex Terminal
  • Netzteil
  • Alle original Bedienelemente und 4-stellige 7-Segment Anzeige
  • zusätzliches alphanumerisches Display

Die Innereien des SAT-Receivers waren schnell entfernt und die Freude war groß, dass das darin enthaltene Netzteil alle notwendigen Spannungen von 3,3 Volt und 5 Volt zur Verfügung stellte.

Die Banana Pi lief sofort einwandfrei, jedoch mit der zusätzlichen Festplatte brach die Spannung zusammen. Ein anderes Netzteil musste her.

Ein Schaltnetzteil von Pollin für 4,95 Euro sollte genügen – es stellt 3,3 und 5 Volt mit ausreichend Strom zur Verfügung. Auf dem Kühlkörper des Netzteils lagen 115V – nicht so angenehm. Der Kühlkörper des Netzteils war mit einer stromführenden Leitung auf der Unterseite verlötet!!

Banana Pi, Festplatte und Stromversorgung fanden leicht Platz:

Der Pegelkonverter mit MAX3232 ist oberhalb der Banana Pi montiert und dient zum Anschluss des Ampex Terminals via RS 232. Dieses soll später zur Steuerung der Musiksammlung verwendet werden.

Bedienteil

 

Bedienelemente

Hinter der Frontblende mit den Bedienknöpfen befindet sich die Platine, die neben den 7 Knöpfen auch die 4-stellige 7-Segment-Anzeige und einen IR-Empfänger enthält.

Panel Front

Die 4 einzelnen LED-Segmente werden gemultiplext, die einzelnen Segmente über ein Schieberegister angesprochen.

Die 7 Taster werden in einer Matrix abgefragt, wobei die 4 Leitungen zur Ansteuerung der Segmente auch als Eingangsleitungen der Tasten-Matrix verwendet werden.

Das Ansteuern der Anzeige und das Pollen der Tastenmatrix will ich nicht der Banana Pi zumuten – das soll ein Arduino Nano erledigen. Tastendrücke sollen dann per UART an die Banana Pi übertragen werden bzw. die Anzeige auch so angesteuert werden.

Da eine 4-stellige 7-Segment Anzeige zur Steuerung meiner Musiksammlung und zur Anzeige des gerade gespielten Titels nur bedingt tauglich ist, habe ich vor, ein Display aus einer alten DBox-1 zu verwenden. Ich finde diese Anzeige recht hübsch und auch gut leserlich. Die acht zur Verfügung stehenden Zeichen sollten reichen, um per Scrolling auch längeren Text anzeigen zu können.

Im Gegensatz zu einem 2×16 LCD hat diese kleine Anzeige hinter der Klappe an der Front des Koscom Gehäuses Platz. Mit der Ansteuerung des SDA5708 Displays bin ich aus früheren Tests und kleineren Projekten bereits vertraut und für den Arduino gibt es eine fertige Library. Jedoch werde ich diese erweitern, um später Umlaute anzeigen zu können.

Display SDA 5708

Die Abfrage der Tastaturmatrix und das Ansteuern der Anzeige(n) stellt kein großes Problem dar. Jedoch bin ich mit dem Multipexing der LED Anzeige nicht zufrieden. Bei der Übertragung von Daten flackert das Display. Auch die Verwendung der Arduino Timer Library brachte keine Verbesserung. Erst die Verwendung der Timer-Interrupt-Routine mit direkter Verwendung der Register des AtMega328 lieferte ein flimmerfreies Ergebnis.

Die Ansteuerung des Arduino Nano erfolgt über UART3 der Banana Pi. Die Stromversorgung erfolgt somit auch nicht mehr über den USB-Bus, sondern direkt. Die Einspeisung darf dabei nicht über VIN erfolgen, denn diese läuft über den Spannungsregler, der für Spannungen von 7V – 12 Volt gedacht ist. Die Versorgung des Arduino Nano hat somit über den Pin 5V zu erfolgen.

Displays

Am Wochenende hatte das Gerät seine erste Bewährungsprobe und es stellte sich sofort eine Ungereimtheit bei der Bedienung dar:

Der Benutzer wollte instinktiv mit den Auf- und Ab-Tasten die Lautstärke regeln, welche ich aber nach Vorbild einer Fernbedienung auf die Links- und Rechts-Tasten legte.

Die Bedienung konnte durch einfache Konfiguration schnell geändert werden.

Jeder zu erreichender Menü-Eintrag entspricht einem Eintrag in der obigen Liste. Jede der 7 Tasten kann eine Funktion ansteuern und auf auf einen verketteten nächsten Menüeintrag springen.

So ungefähr ist die Steuerung implementiert. Das dot-Diagramm wurde aus dem obigen Array erstellt und ist weder komplett noch ganz korrekt. Aber so ungefähr kann man erkennen, wie die einzelnen Menüpunkte angesprungen werden:

Erweiterungen

Das Frmware des Arduino Nano wurde so erweitert, dass dieser die Uhrzeit nach einmaligem Setzen selbst anzeigt und aktualisiert. Der Doppelpunkt der Sieben-Segment-Anzeige blinkt jetzt im Sekundentakt, d.h. dass der Doppelpunkt jetzt für 5oo ms angezeigt wird und für 500 ms dunkel bleibt. So, wie in jedem Wecker (für Hans).

Das Scrollen von längeren Texten erledigt nun auch der Arduino selbst und muss nicht mehr von der Banana Pi über die serielle Schnittstelle erledigt werden. Sobald ein Text mit mehr als 8 Zeichen an den Arduino übertragen wird, beginnt die Anzeige automatisch zu scrollen.

In das Radioprogramm wurde eine Sleep-Funktion implementiert, die nach einer einstellbaren Zeit das Abspielen von Songs nicht abrupt stoppt, sondern die Lautstärke langsam runter fährt (fade out). Die Anzeige wird ausgeschaltet, sodass diese nicht beim Schlafen stört.

Geplante Erweiterungen

 

Dieser Beitrag wurde unter Allgemein abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.