Adventskalender

Hörbuch-Adventskalender


Nach mehreren Jahren des Schoko-Adventskalender-schenkens war ich es leid dem Nachwuchs schon wieder einen Solchen stupide zu schenken.
Daher war ich sehr froh, als ich bei meiner Lektüre auf heise.de auf einen Beitrag über einen Audio-Adventskalender stoß.Als ich den Artikel gelesen hatte, war mir klar, einen ähnlichen Kalender möchte ich auch bauen. Auch schon im Hinblick, dass mein Sohn beginnt sich für mein Elektronik-Gebastel zu interessieren.


Meine Anforderugen waren:

  • Ein Adventskalender der an jedem Tag im Advent eine verschiedene Audiodatei abspielt. Bei mir ist es pro Tag ein Kapitel aus einem Hörbuch.
  • Die Audiodatei wird abgespielt, sobald die Truhe geöffnet wird.
  • Gleichzeitig flackern zwei LED’s wie Kerzen vor sich hin.
  • Die Lautstärke sollte kinderzimmer- bzw. einschlafgerecht sein.
  • Der Kalender sollte später nach der Adventszeit mit zwei Tastern und einem Potentiometer zu einem vollwertigen MP3-Player umgebaut werden.

Dazu habe ich nachfolgend ein kleines Howto zum Nachbauengeschrieben:

Bauteilliste:

Leider war zum Zeitpunkt meines Schaffens das im Beitrag angegebene MP3-Modul JQ6500-28p nicht verfügbar, daher ging ich auf das verfügbare Modul WTV020-SD. Dieses Modul ist zwar auch günstiger aber hat auch ein Paar Mankos: SD-Karten können nur bis 1GB gelesen werden und es können nur 16kbit WAV-Files oder ADPCM (ad4)-files gelesen werden. Also muss jede MP3 erst umgewandelt werden.

Es hatte sich später herausgestellt, dass das Modul auch meine 2-4GB-Karten lesen kann. Also ist das Problem schon einmal umgangen.

Ich habe den Arduino Uno verwendet, da ich ihn schon bei mir herumliegen hatte und weil er direkt eine Spannungsstabilisierung bzw eine Hohlsteckerbuchse, zur Stromversorgung hatte.
Es kann natürlich auch ein Arduino nano oder Micro verwendet werden.

Als ich auf das Projekt kam, hatte ich auch schon direkt eine Idee, was für Audio-Files auf die Truhe gehören. Ich erinnerte mich an eine Spezialfolge der Drei ???, die zum Advent 2012 kostenlos angeboten wurde. Die Geschichte hieß Der 5. Advent und war in genau 24 Kapitel aufgeteilt.

Bei dem Audioformat hatte ich das größte Problem. AD4 oder ADPCM hatte ich bislang noch nie gehört. Daher begann ich mit den 16kHz mono WAV files. Dies wollte aber nicht so richtig funktionieren. Die verschiedenen Anleitungen mit dem Somo tool im Internet habe ich nicht ausprobiert, da dieses Tool spezielle Abhängigkeiten gefordert hat, die mir suspekt vor kamen. Daher habe ich mich weiter nach Umwandler aus offenen Quellen umgeschaut.

Ein Arbeitskollege brachte mich auf das Projekt Hörbert, welches er einmal aufgebaut hatte. Das verwendet auch WAV-Files und zwar 32kbit. mono, signed-iteger PCM. Daher dachte ich mir, das wäre doch ein Versuch wert, zumal dieses Projekt einen Wandler mitliefert. Leider fuinktionierte dieses MP3-Converter-Tool nicht auf meinem PC (Win 10) es wollte meine SD-Karte um’s verrecken nicht annehmen. Daher dachte ich mir, ich schaue mal ob ich an die Konvertier-Routine heran komme. Nach etwas Recherche erfuhr ich, dass die Methode direkt auf deren Website, für Linux-User, stand. Mit diesen Einstellungen funktionierte es dann.

In meiner Version spielt die Truhe jedes Lied genau ein man ab und verstummt dann. Klappt man sie zu und wieder auf so beginnt sie von neuem

Der Schaltplan

Der Schaltplan birgt keinen großen Geheimnisse. Über die Hohlsteckerbuchse wird die gesamte Schaltung mit Strom versorgt. man könnte auch überlegen ob man die Schaltung mit zwei 18650 Li-Po Akkus betreibt und nur eine Buchse zum Laden des Geräts anbringt. Das hätte zusätzlich den Vorteil, dass die Truhe nicht mehr so Kopflastig ist. Ich habe die Option weggelassen, da der erste Dezember dann doch recht schnell auf mich zu raste und ich (wie berichtet) noch einige Probleme hatte.

Das Audio-Modul WTV020 sollte mit einer separaten Spannungsversorgung von 3,3V betrieben werden, damit der Regler des Arduino’s nicht die gesamten, maximalen 4W Leistung des Moduls stemmen muss. Ich habe später zur Stabilisierung noch einen Elko von 1000µF zwischen den Ausgang des Reglers gelötet. Das hemmt etwas die Spannungsspitzen.
Der Mikroschalter – in der Zeichnung nur als Taster ausgeführt – Arbeitet als Öffner. Er ist immer gedrückt, außer die Truhe wird geöffnet. Dann schließt der Kontakt und die Elektronik beginnt ihre Arbeit.

Ein Reed-Kontakt kam hier leider nicht in Frage, da es diese nur als Schließer gibt. Das Schaltsignal also umgekehrt werden müsste, was dauerhaft Strom verbräuchte.
Das Realtimeclock-Modul (RTC) wird nach Einsetzen der Batterie einmal ungefähr Programmiert. Das bedeutet man verwendet einfach die Zeit und das Datum der Kompilierung um die Uhr zu füttern. Dadurch geht sie zwar eine bis mehrere Sekunden nach aber das ist hier vernachlässigbar.
Das RTC-Modul behält sein Datum, bis die Batterie aufgebraucht ist. Was einige Jahre dauern sollte.

Die LED’s sind mit 3V und 20mA angeben, daher ergibt sich bei meinem 7V Netzteil ein Vorwiderstand von 200 Ohm. Aus der E12-Reihe ergibt sich daher ein Widerstand von 220Ω.

 

Der Aufbau

Ich habe zu allererst die beiden Holzplatten, die die Truhe oben bzw. unten verschließen zurechtgesägt und die Öffnungen für Lautsprecher, LED’s und Mikroschalter eingebracht.
Anschließend habe ich die Öffnung für die Hohlsteckerbuchse und die Durchführungen für das Lautsprecherkabel und die Zuleitung für die LED’s in die Truhe gefräst.

Als ich mir sicher war, dass die Schaltung funktionierte habe ich sie ohne Steckbrett , nur mit den Steckbrett-Jumper-Kabeln noch einmal aufgebaut und anschließend die Steck-Verbindungen mit Heißkleber fixiert. Das habe ich deshalb gemacht, da ich die Schaltung später mit meinem Sohn noch erweitern können will.

Den Mikroschalter montierte ich an der Hinteren Wand der Truhe. Um sicher zu sein, dass dieser auch immer betätigt wird, habe ich noch ein Stückchen Metall an den Truhendeckel angebracht.
So kann das Lautsprecher-Brettchen auch etwas mehr versenkt im Truhen Deckel montiert werden.
Die Hohlsteckerbuchse klebte ich auch mit Heißkleber in die Truhe. Es kann sein, dass dies nicht bei jeder Truhenausführung funktioniert, da diese gern geölt sind. Meine war zum Glück nur von außen geölt.

Der Code

Der gesamte Code kann auf Github gefunden werden. Ich werde hier nur die interessanten Stellen beschreiben.

if (! RTC.isrunning())
{
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    RTC.adjust(DateTime(__DATE__, __TIME__));
}

Dieser Teil des Codes wird nur beim ersten Programmieren der Echteituhr benötigt und muss später auskommentiert oder ausgebaut werden.

Die Funktion PlayTrack regelt die Lautstärke und spielt die entsprechende Audiodatei ab. Sie stellt auch sicher, dass jedes File pro öffnen der Truhe, nur einmal abgespielt wird.

if (now.day() < 25 && now.month() == 12)
{
    PlayTrack(now.day());
}

Diese Verzweigung stellt fest ob es sich um einen Tag im Avent handelt.

Leider fehlen in der Implementierung der vorhandenen Bibliotheken für den WTV020 die Lautstärkeregelung. Daher muss auf meine Implementierung auf GitHub zurückgegriffen werden oder auf Anpassung der Lautstärke verzichtet werden.

Audiofiles umwandeln

Für Linux User:

sox --buffer 131072 --multi-threaded --no-glob inputFileName --clobber -r 32000 -b 16 \
-e signed-integer --no-glob outputFilename.WAV remix - gain -n -1.5 bass +1 loudness -1 pad 0 0 dither

Einer der Hörbert-User hat ein Script geschrieben um einen Stapel von MP3’s direkt umzuwandeln liegt hier auf Github.

Quellen:

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.