"Hideaway" Jukebox

* Hier klicken für Video auf Youtube *

 

Nachdem nun die Seeburg Wallbox funktionsfähig war, stellte sich die Frage, was man damit anfangen kann, wenn man keine passende Jukebox sein Eigen nennt.
Oft wurden Wallboxen aus Platzgründen auch ohne sichtbare Jukebox betrieben.
Hier kamen "Hideaways" zum Einsatz.
Das waren schmucklose Kisten, in denen die gleiche Technik wie in den Jukeboxen steckte.
Sie wurden in Nebenräumen "versteckt" aufgestellt, daher der Name "Hideaway".
In Deutschland wurden sie auch als "Kellerbox" bezeichnet.
Im Gastraum befanden sich lediglich eine oder mehrere Wallboxen (Fernwähler) sowie der oder die Lautsprecher.
Es gab in der Regel noch eine Fernbedienung über die das Personal die Lautstärke regeln konnte oder eine hängende Platte abbrechen konnten.

Diese Funktionen sollten also mit moderner Technik nachgebaut werden.

Zunächst galt es einen geeignetes Speichermedium für 100 Musikstücke zu finden.
Hier fällt heute natürlich die Wahl auf digitale Formate.
Die Audioqualität soll mindestens der der Schallplatte entsprechen oder besser sein.
MP3 mit ausreichend hoher Bitrate erfüllt das spielend.
Selbst wenn man im Durchschnitt 10 MB je Musikstück unterstellt, kommen bei 100 Liedern gerade einmal 1 GB Speicherbedarf zusammen.

Das nächste Problem: ein steuerbarer MP3 Player!

Kommerzielle Player, die sich fernsteuern lassen und ausreichend Speicherplatz bieten, sind recht teuer.
Eine wichtige Anforderung ist, dass mindestens 100 Dateien selektiert werden können.
Die preiswerteste Lösung schien für lange Zeit ein I-Pod, der sich mittels eines speziellen Adapters fernsteuern lässt.

Einen brauchbaren MP3 Player selbst zu entwickeln ist nicht ganz trivial.
Man muss sich zunächst um das Dateisystem des Speichermediums kümmern und dann um die MP3 Decodierung.
Die Decodierung benötigt viel Rechenleistung, weshalb hier ein Decoderchip angeraten ist, der den Controller entlastet.
Dieser bekommt vom Mikrocontroller lediglich die Daten zugeführt und kümmert sich eigenständig um die Decodierung.
Da das alles nicht mal eben so zu entwickeln ist, lag dieses Projekt lange "auf Eis".

Zwischenzeitlich hatte ich als Player einen PC eingesetzt.
Die Impulse hatte ich mit einem AVR Controller decodiert und via RS232 an den PC gesendet.
Auf dem PC lief ein minimalistisches Linux mit der Software mpg123 und einem kleinen Perl Script, welches die RS232 Kommandos entgegen nahm.
Falls es jemand nachbauen möchte, hier das Perl-Script: DOWNLOAD

Das Programm ist nie über das Teststadium herausgekommen, da die ganze Sache doch zu umständlich war.

Irgendwann wurde in der Elektronikzeitschrift ELV der MSM3 MP3 Player vorgestellt.
Der Player ist unglaublich universell!
Er kann via UART und I2C gesteuert werden.
Er besitzt noch diverse weitere Ein- und Ausgänge.
Es kann eine große Anzahl von Dateien entweder direkt! oder via Playlisten angesprochen werden.
Als Speichermedium kommt eine Micro SD Karte zum Einsatz.
Der Bausatz kostet ca. 30€

Damit ist der Player perfekt für dieses Projekt geeignet!

Der Bausatz kann in weniger als einer Stunde zusammengebaut werden, da alle SMD Bauteile bereits bestückt sind.
Lediglich die bedrahteten Bauteile müssen noch bestückt werden.
Dem Bausatz liegt eine Vollständige Befehlsliste bei, womit die Steuerung via UART oder I2C sehr einfach möglich ist.

Was wird also benötigt, um die "Hideaway" Box zu komplettieren?

- Eine Stromversorgung => Transformator mit 2 X 12V Wicklung.
- Eine Ablaufsteuerung, die die den Player steuert => AVR Mikrocontroller.
- Ein Audioverstärker => TDA2050.

Das Blockschaltbild:

Ein Transformator mit 2 X 12 V übernimmt die Spannungsversorgung der gesamten Box.
Da ich massive Probleme mit einer Brummschleife hatte, versorge ich inzwischen den Controller und das MSM3 Modul über einen isolierten DC-DC Wandler.
Die Wallbox wird direkt mit 24V Wechselspannung versorgt.

Der MSM3 Player wird über die serielle UART Schnittstelle mit 9600 Baud angesteuert.
Die Rückmeldung erfolgt ausschließlich über den Ausgang OUT3 des Players.
Wenn eine Datei abgespielt wird, geht dieser auf "low".
Aus diesem Grund ist auch nur der RX Eingang des UART belegt.

Die Funktion des AVR Bascom Programms kurz erklärt:

Das Programm decodiert die Impulskette von der Wallbox und wandelt sie in Steuerbefehle für den MSM3 Player um.

Wie die Impulsfolge aufgebaut ist, kann man nicht direkt den Serviceunterlagen der Wallboxen entnehmen.

Es ist etwas trickreich:
Bei den Buchstaben wird zwischen "geraden" und "ungeraden" Buchstaben unterschieden.
Die Unterscheidung macht ein entweder langer Dauerimpuls oder fortlaufende Einzelimpulse nach den Impulsen für die Ziffern.
Durch eine kurze Pause wird zwischen Ziffern und Buchstaben unterschieden.

Hier ein Auszug aus dem Schaltplan einer 3W100, der auch für andere Wallboxen passen dürfte:

Ich habe alles aus dem Schaltplan entfernt, was zur Impulserzeugung nicht notwendig ist.
Der Rotor überstreicht die Kontakte im Uhrzeigersinn und schaltet sie nach Masse.
Wird eine Zifferntaste gedrückt, werden die davor liegenden Schleifkontakte abgetrennt.
Es werden also weniger Impulse gesendet.

Die decodierte Auswahl wird in ein Array eingelesen, was bei einem ATtiny 2313 die Speicherung von maximal 10 Liedern zulässt.
Wenn der MSM3 Player durch ein High Signal an PORTB.3 "bereit" signalisiert, wird die Auswahl aus dem Array ausgelesen und der Controller sendet den Play Befehl an den Player.
Leider kann das MSM3 Modul die Dateien ausschließlich über Ziffern selektieren.
Die Dateinamen müssen aus mindestens drei Ziffern bestehen. (z.B. 001.mp3 oder 001whatever.mp3)
Ein Problem ist, dass 000.mp3 nicht angesprochen werden kann.
Daher stelle ich immer die "9" voran!
Somit sendet der AVR ein Startbyte, das Befehlsbyte für "Play File", eine "9" und eine der Wahl entsprechende zweistellige Ziffer und das Stoppbyte.

Da meine Wallbox genau 10 Buchstabentasten hat, übersetze ich die Buchstabentasten A-K in die Ziffern 1-0.
Die Auswahl A2 fordert somit die Datei 912.mp3 an.

Die Lautstärkeregelung wird Softwaremäßig umgesetzt.
Je nachdem, ob der Taster "lauter" oder "leiser" gedrückt wird, wird ein entsprechendes Kommando zum MSM3 Modul geschickt.
Der Befehl wird so lange wiederholt, wie die Taste gedrückt gehalten wird.

Wird die "Reject" Taste gedrückt, wird das Kommando zum sofortigen Stopp an den Player geschickt.
Das aktuell laufende Lied wird abgebrochen und der Player signalisiert "bereit" an den Controller.

Damit wäre auch der originale Fernregler anschließbar.
Die Seeburg Boxen hatten ein Lautstärkepotentiometer mit Motorantrieb.
Damit waren Störeinflüsse auf langen Kabeln ausgeschlossen.

Das BASCOM Programm für den Controller kann hier heruntergeladen werden: DOWNLOAD
Ich habe das Programm versucht einigermaßen zu kommentieren.
Auf Schönheit habe ich zugegebener Weise keinen besonderen Wert gelegt, Hauptsache das Programm läuft!
Das Programm sollte auf jedem AVR mit integriertem UART lauffähig sein.
Gegebenenfalls müssen die I/O Ports angepasst werden.

Hier der vollständige Schaltplan:

Der Schaltplan der Verstärker kann dem Datenblatt zu dem TDA2050 entnommen werden.
Soll nur ein Lautsprecher angeschlossen werden, können die beiden Ausgänge des MSM3 zusammengeschaltet werden.
Das ist bei dem MSM3 Modul zulässig, da im Ausgang des MSM3 zwei Widerstände sitzen und so die Ausgänge des MP3 Decoders nicht gegeneinander arbeiten.

Das Gehäuse inklusive Transformator war früher ein lineares Netzteil aus der EDV Technik.
Der Transformator hat entgegen dem Schaltplan 2 X 16V und 2 X 7V Leerlaufspannung.
Die Spannungen brechen auch bei Belastung kaum ein.
Da 30V für die Wallbox etwas viel ist, habe ich eine der 7V Wicklungen gegenläufig in Reihe geschaltet.
Das macht dann genau 25V.

Für den Verstärker stehen nach der Gleichrichtung ca. +- 20V zur Verfügung.

Der mir zur Verfügung stehende DC/DC Wandler benötigt 15V am Eingang, daher der Vorregler mit dem 2N3055, der bereits in dem Gehäuse verbaut war.

Das Gehäuse ist aus 2mm dickem Aluminium und dient als Kühlkörper für die Endstufen.

Ein Miniaturrelais sorgt für die galvanische Trennung zwischen Wallbox und Mikrocontroller.

Der Mikrocontroller läuft mit 8MHz (interne Taktversorgung).
Offenbar ist das zur Erzeugung der Baudrate von 9600 Baud ausreichend genau.

Alle Eingänge haben eingeschaltete Pull-UP Widerstände und werden gegen GND geschaltet.

 

 

 

 

 

 

© klaus(at)taeubl.de