Bastelprojekt: Sprechender Adventskalender   Vor kurzem aktualisiert!


Was ist das?

Sprechender Adventskalender

Eine Holzkiste die elektronisch verriegelt ist aber mit dem richtigen RFID Schlüssel geöffnet werden kann und zu unterschiedlichen Tagen und Uhrzeiten etwas sagt. Diese Kiste ist ein Adventskalender für meine Freundin.

Statt 24 Fächern hat mein Adventskalender nur ein Fach, das jeden Tag von mir neu mit Schokolade gefüllt wird. Das Fach lässt sich von meiner Freundin erst am nächsten Tag mit ihrem RFID-Chip öffnen. Das der Kalender neu gefüllt wurde wird ab Mitternacht durch eine LED angezeigt, statt eines Displays gibt es einen Lautsprecher, der einige Texte wiedergibt.

Die Holzkiste ist auf einem 3D gedruckten Untersatz geschraubt. In diesem Gehäuse befindet sich die Elektronik, die Stromversorgung und ein Servo, der die Truhe von innen ver- und entriegelt.

Komponenten

Der eingesetzte Mikrocontroller ist ein alter Arduino Duemilanove mit 5V Logik. Die Eingänge erkennen aber auch die 3,3V Signale vom RFID Leser ohne Probleme. Der RFID Leser muss dabei natürlich an den zusätzlich zur 5V bereits vorhandenen 3,3V Ausgang angeschlossen werden. Es ist kein Level-Shifting zwischen dem RFID Leser und dem Arduino nötig. Die Echtzeituhr hat eine Knopfzelle und einmal gestellt gibt sie die Uhrzeit und das Datum auch nach Jahren genau aus. Die Tonausgabe wird von einer Audio Platine übernommen, die einen eigenen Speicher für viele separate Tondateien hat. Ein kleiner separater Verstärker steuert einen Lautsprecher an. Der kleine Modellbau-Servo hat eine eigene Stromversorgung bekommen.

Adventskalender Testaufbau

Eine LED mit einem 220 Ω Vorwiderstand signalisiert die gefüllte Truhe und ein Taster am Deckel erkennt, das der Servo den Riegel schließen kann. 

LED mit 220 Ω Vorwiderstand und Steckbrettsteckern

An allen Komponenten sind Stecker passend für die Arduino Anschlüsse angebracht. Anfangs hatte ich bei meinen Tests Probleme als ich den Motor direkt vom Arduino mit Strom versorgt hatte. Das Batteriefach für 4 AA Batterien habe ich mit einer Servobuchse versehen. Die Masse des Batteriefachs muss mit der Masse des Arduino verbunden werden und die Steuerleitung des Servos geht ebenfalls an den Arduino.

Separate Stromversorgung für den Modellbauservo

Zuerst hatte ich alle Komponenten lose mit Steckkabeln verbunden, habe dann aber ein Arduino Shield mit kleinem Steckbrett eingesetzt. Dies vereinfacht die Verkabelung, gibt den Komponenten Halt und reduziert das Kabelgewirr etwas.

Steckbrett mit Drahtbrücken

Das Audio FX Board passt umgedreht auf das Mini Breadboard und das RTC Modul senkrecht unten daneben.

Mini Breadboard auf Prototyping Shield

Neben dem Batteriefach für den Servo kommt noch eine kleine Powerbank für den Arduino und alle daran angeschlossenen Bauteile zum Einsatz. Die Powerbank hat eine praktische Füllstandsanzeige und die 5600 mAh reichen für einen Tag. Die Holzkiste habe ich im Bastelgeschäft gefunden, sie ist 14,8 cm breit, 9,6 cm tief und 8,5cm hoch.

Holzkiste 14,8 x 9,6 cm
  • Arduino Duemilanove
  • RFID Reader
  • Sparkfun RTC
  • Adafruit AudioFX Board mit 16MB Speicher
  • Adafruit 2,5W Verstärker
  • Adafruit 3W 4Ω Lautsprecher
  • Modelcraft Y-3009 Servo
  • Batteriefach für 4 AA Baterien
  • USB Powerbank mit 5600 mAh (von Lifetrons)
  • LED mit 220Ω Widerstand
  • Schalter
  • Mehrere Jumper Kabel (Female-Male) und etwas farbiger Steckbrückendraht
  • Eine Servokabel-Verlängerung
  • Arduino Shield mit aufgeklebtem Mini Breadboard
  • Büroklammer
  • 4 M3x12 Schrauben mit Muttern

Die Idee

Ich habe absichtlich einen Termin gewählt zu dem dieses Projekt unbedingt von mir fertig gestellt werden musste. Dieser zeitliche Druck hilft mir bei manchen Projekten, bei denen ich mich sonst verzetteln kann. Zum Schluss hatte ich nicht mehr genügend Zeit um ausführlich genug zu testen, aber ich bin gerade noch am 1. Dezember fertig geworden.

Eine zweite große Motivation war für mich, das ich wusste das meine Freundin sich über einen selbstgerechten Kalender und über die Sprachausgaben freuen würde.

Meine praktischen Kenntnisse über Transistoren oder Kondensatoren sind nur gering, mit Digitalelektronik kann ich aber umgehen. Meine Komponenten sind alle mit standardisierten Schnittstellen ausgestattet, die man praktisch nur zusammenstecken muss.

Da ich einige Elektronik-Komponenten später in anderen Projekten weiter einsetzen wollte habe ich überall Steckverbindungen eingesetzt.

Ich wollte einige bereits vorhandene Elektronik-Komponenten ausprobieren um diese besser kennenzulernen. Ausserdem wollte ich eine Sprachausgabe als Benutzerführung ausprobieren.

Bei der Programmierung bin ich darauf angewiesen, das es zu jeder Komponente Bibliotheken gibt, die ich nutzen kann. Die Programmierung des Ablaufs ist kein Problem für mich.

Zum Schluss sollte dieses Projekt und die Beschreibung dazu mir als eine Vorlage dienen für weitere Projekte die ich noch durchführen und ebenso dokumentieren möchte.

Elektronik

An die meisten Komponenten mussten von mir erst Steckkontakte gelötet werden. Auch an die LED, den Schalter und das Batteriefach habe ich Kabel gelötet und mit Schrumpfschlauch isoliert.

Adventskalender Verdrahtung (Fritzing Diagramm)
 Adventskalender Verdrahtung

Das Schaltungsdiagramm habe ich mit der freien Software Fritzing gezeichnet. Dafür gibt es praktisch alle Komponenten die Bastler so einsetzen als Zeichenbausteine.

Code

Zuerst habe ich alle Bauteile einzeln getestet. Dazu gibt es mit den jeweiligen Bibliotheken fast immer auch Test-Sketches. Dann habe ich in meinem eigenen Sketch alle Bibliotheken hinzugefügt und eine sehr einfachen Ablauf zusammenkopiert. Es ging mir darum, früh zu erkennen, ob es Konflikte zwischen den Bibliotheken gibt, ob die Pins ausreichen, ob die 3,3V und die 5V Komponenten tatsächlich nebeneinander funktionieren und ob es Interrupt bzw. Timing Probleme gibt.

Den Ablauf habe ich als Zustandsautomaten modelliert. Nach dem Start befindet sich die Kiste in einem von 8 Zuständen. Aus dem Diagramm erkennt man welche Bedingungen erfüllt sein müssen, damit der nächste Zustand am Ende eines Pfeils erreicht wird. Neben dem Wechsel des Zustands sind am Pfeil hinter dem Schrägstrich weiter Aktionen abzulesen, die beim Zutreffen der Bedingung ausgeführt werden. Das sind das Abspielen einer Ansage, der Wechsel der LED Signalisieren, das Öffnen oder Schliessen der Kiste oder das Setzen von Hilfsvariablen.

Zustandsautomat des sprechenden Adventskalenders

Die Überführung des Automaten in Arduino Code ist danach sehr einfach.

Audio Aufnahmen

Da die Kiste kein Display aber einen Lautsprecher hat, erfolgt die Benutzerführung akustisch. Dazu gibt es über 40 verschiedene Ansagen die auf dem AudioFX Board gespeichert wurden. Neben den 16 Ansagen aus dem Zustandsdiagramm gibt es 24 individuelle Ansagen für jeden Tag bis Weihnachten. Ausserdem gibt es noch 3 unterschiedliche Begrüßungen die vor der Tagesansage abgespielt werden.

Modell

Das Gehäuse für die Elektronik habe ich aus Holzfilament gedruckt. Die Verriegelungsmechanik habe ich ebenfalls selber gedruckt, sie ist mit einer kleinen Metallstange mit dem Servo verbunden. Hierzu konnte ich eine Büroklammer so verbiegen, das sie passt. Den Original-Verschluß der Holzkiste habe ich abgeschraubt und in den Boden habe ich 4 Löcher für Befestigungsschrauben gebohrt. Ein fünftes Loch ist für das Gestänge vom Servo aus dem Sockel zur Schließmechanik in der Kiste.

Fusion 360 Modell mit Einbauten

Modelliert habe ich mit Fusion360. Dabei habe ich auch die Kiste und die Elektronikbauteile vereinfacht modelliert, um zu sehen wie die Komponenten in das Gehäuse hinein passen.

Ausgedruckt habe ich alle Plastikteile auf meinem HyperCube Evolution 3D Drucker. Für das Holzfilament nutze ich eine gehärtete 0,6 mm Düse, für die PLA Teile eine 0,4 mm Düse.

Zusammenbau

Es hat tatsächlich fast alles so gepasst wie geplant. Die Abstandshalter im Deckel musste ich mit einem Bastelmesser entfernen, da der Platz mit den Kabeln doch begrenzter war als geplant. Der Arduino wird aber auch so in Position gehalten.

Enge Kiste

Zum fest schrauben des Bodens habe ich Einpresshülsen verwendet. Dies sind kleine Hülsen aus Metall mit einem Innengewinde. Man presst sie unter Hitzeeinwirkung in ein kleines, passendes Loch und durch ihre Riffelung and der Aussenseite und dem kurzzeitigen abschmelzen des Filaments werden diese Metallhülsen quasi mit dem Modell verklebt. Man erhält damit ein Metallgewinde das man sonst nicht einfach mit dem 3D Drucker herstellen könnte. Ich presse die Hülsen vorsichtig und langsam mit einem heissen Lötkolben in das fertige Modell. Dabei habe ich Löcher im Modell vorgesehen, die etwas tiefer sind als eine Hülse und etwas enger als ihr Aussendurchmesser.

Ich habe aber immer zwei Probleme mit diesen Hülsen: Mit dem Lötkolben gelingt es mir oft nicht, die Hülse genau senkrecht zu versenken. Das zweite Problem besteht darin, dass beim einpressen etwas erhitztes Filament unten in das Gewinde quillt. Zudem kommt dazu, dass Holzfilament etwas spröder ist als normales PLA und meine Halterungen für die Hülsen gerissen sind. Ich konnte das mit Klebstoff wieder verbinden, aber insgesamt habe ich diese Verbindungstechnik noch nicht gut im Griff.

Merkpunkte

Der zeitliche Druck, den ich mir selber auferlegt habe hat mir geholfen das Projekt fertig zu bekommen.

Am zweiten Dezember hat sich die Kiste nicht wie geplant geöffnet. In der Abfrage, ob schon ein neuer Tag angebrochen hat gab es einen Fehler. Ich habe die Werte „Day“ und „Date“ der Bibliothek für die Echtzeituhr verwechselt. Statt des Datums habe ich auf den Wochentag getestet. Hier hätte ich natürlich besser Testen müssen, durch die knappe Zeit habe ich das vernachlässigt. Bei einem Bastelprojekt scheint das ja auch erstmal O.K. zu sein, doch meine Freundin hat etwas gemeckert. Bei einem Projekt für sich selbst schaut man leichter über Unzulänglichkeiten hinweg, für andere muss man höhere Qualitätsstandards ansetzen.

Mit den Einpresshülsen muss ich entweder nochmal eine Testreihe mit unterschiedlich Tiefen und dicken Löchern machen oder mit Muttern arbeiten, die in Taschen gesteckt werden.

Weitere Ideen

Diese Holzkiste lässt sich natürlich nicht nur in der Adventszeit nutzen. Man kann unterschiedliche Authentifizierungsmöglichkeiten einbauen ein Display nachrüsten und die Kiste ins WLAN bringen. Ein Reed-Kontakt an einer geheimen Stelle wäre eine einfachere Möglichkeit, den Verschluss zu betätigen. Auch eine Audio-Ausgabe ist nicht notwendig.

Dateien

Der Arduino code, die Zeichnung des endlichen Automaten und die Fritzing Datei zur Verdrahtung liegen auf GitHub hier: https://github.com/SuperEugen/talking-treasure-chest

Das 3d Modell habe ich mit Autodesk Fusion 360 erstellt. Die Datei ist hier freigegeben: https://a360.co/2QBVHye Man kann sich die Datei von dort auch in mehrere unterschiedliche Formate umwandeln.

Ein kurzes Video ist auf meinem Kanal bei YouTube zu sehen: https://youtu.be/FtdsV8D-JqU

Schreibe einen Kommentar

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