Arduino steuert einen intelligenten Adventskalender

0,00
Aus ELVjournal 06/2014     0 Kommentare
 Arduino steuert einen intelligenten Adventskalender

Inhalt des Fachbeitrags

PDF- / Onlineversion herunterladen

Auch in diesem Jahr wird in vielen Familien in der Adventszeit wieder ein besonderer Kalender die Wohnzimmerwand zieren. Die in diesem Beitrag von unserem Leser Engelbert Wedekind vorgestellte Variante eines Adventskalenders soll Anregung sein für eine Erweiterung seiner ursprünglichen Funktion. Die wichtigste Aufgabe des Kalenders, jeden Tag hinter einem Türchen eine kleine Überraschung zu finden, soll nun auch noch akustisch unterstützt werden. Der Adventskalender soll „musikalisch“ werden.

Wie es begann

Einen Adventskalender wird sicher jeder nach seinen individuellen Bedürfnissen gestalten, wenn er etwas Besonderes sein soll. Für ambitionierte Elektroniker soll hier die Idee für einen „artgerechten“ Adventskalender zum Nachbau vorgestellt werden. Er hat nicht nur die 24 Türchen mit den dahinter versteckten Süßigkeiten zum Inhalt. In diesem Fall soll er durch eine intelligente Steuerung ergänzt werden. Allein die Aufzählungsversuche solcher Lösungen würden den Rahmen dieses Artikels sprengen. Hier soll eine realisierte Variante vorgestellt werden, die genügend Spielraum für eigene Vorstellungen bietet. Hauptanliegen ist es, das Öffnen der (richtigen!) Tür zu überwachen und dann ein Adventslied mit Hilfe des integrierten MP3-Players abzuspielen. Das „richtig“ geöffnete Fach wird noch zusätzlich beleuchtet. Zur Abschreckung allzu Neugieriger löst ein „versehentlich“ falsch geöffnetes Fach einen kurzen Warnton aus. Um die akustische Wiedergabe eines Adventsliedes zum richtigen Zeitpunkt zu ermöglichen, soll jede Tür des Kalenders in ihrer „Nicht-zu–Stellung“ überwacht werden. Wird z. B. am 1. Dezember das Türchen mit der Türnummer 1 geöffnet, wird dies über einen Reflexkoppler CNY70 erkannt und die Freigabe erteilt, automatisch ein Adventslied abzuspielen. Mit dem erzeugten Startbefehl nach Öffnen der Tür wird zunächst die abgespeicherte Titelnummer an einen Arduino per UART gesendet.
Bild 1: Der Arduino Uno mit den ELV-Shields ASA1 und I2C-RTC
Bild 1: Der Arduino Uno mit den ELV-Shields ASA1 und I2C-RTC
Im Programm des Arduino wird die zugehörige Datei, die auf einer SD-Card im MP3-Player abgespeichert ist, geöffnet, die Daten der MP3-Datei eingelesen und an die Audio-Baugruppe ASA1 [1] gesendet. Diese besteht aus einem MP3-Player und dem Stereoverstärker. Es sind nur noch die beiden Lautsprecher für den linken und rechten Kanal anzuschließen. Die Baugruppe ASA1 ist zusammen mit der RTC-Uhr-Baugruppe auf einen Arduino Uno aufgesteckt (Bild 1). In den vergangenen Jahren wurden bereits zwei Vorgängerversionen des Kalenders konstruiert und aufgebaut. Variante 1 ist wie ein Wandkalender aufgebaut. Der Korpus des Kalenders wurde auch hier schon aus naturbelassenen Sperrholzteilen gefertigt.
Er verfügt über ein Display, welches neben aktuellem Datum (interne RTC-Uhr, DS1307) auch Bedienhinweise anzeigt. Der Name des Titels wird angezeigt, wenn die richtige Tür am richtigen Tag geöffnet wird. Bis auf den MP3-Player (hier noch ein SOMO 14D [2]) wurden die Steuerungsteile inklusive Netzteil (5 V und 3,3 VDC) auf Laborkarten aufgebaut. Das geöffnete Fach der „richtig“ geöffneten Tür (Nummer auf der Tür stimmt mit aktuellem Datum überein) wird intern mit einer ultrahellen LED beleuchtet, was bei Kerzenschein im abendlichen Halbdunkel des Dezembers einen sehr effektvollen, scheinwerferähnlichen Lichtkegel im offenen Fach erzeugt. Variante 2 ist ein ebenfalls aus verleimten Sperrholzteilen aufgebautes Modellhaus mit einem Spitzdach und äußerlich farbiger Gestaltung. Dieses sehr viel aufwändigere Modell hat keine Türen, sondern Einschubfächer, die in das Modellhaus eingeschoben werden. Die Größe der Kästen ermöglicht es, außer Süßigkeiten auch kleineres Spielzeug mit zu verschenken. Da kleinere Kinder noch keine Zahlen lesen können, aber selbstständig ihren Kalender öffnen können sollten, wurden die LEDs von Variante 1 dazu benutzt, den aktuell zu ziehenden Einschub zu „markieren“. Als besonderes Highlight wurde hier noch ein Schornstein integriert, in den eine Schornsteinheizung aus der Modellbahntechnik eingebaut wurde. Wird nun das „richtige“ Kästchen (s. o.) gezogen, wird während des Abspielens des Adventsliedes noch ein wenig Qualm (spezielles Verdampferöl) aus dem Schornstein erzeugt. Als MP3-Player wurde hier das MP3-Soundmodul MSM2 von ELV mit nachgeschaltetem Verstärker eingesetzt. Nachteil dieser Baugruppe für den Einsatz im Kalender ist es, dass nur 20 Titel durch Schließen eines Schaltkontaktes ausgewählt werden können. Damit müssen immer 4 Lieder doppelt zugeordnet werden. Um diesen Nachteil auszugleichen, wurde die Baugruppe nach dem ersten Review gegen eine neue, per UART ansteuerbare MP3-Player-Baugruppe ausgetauscht. Die neue Infrarot-Fernbedienungs-Baugruppe IRE8 wurde bei diesem Update der Steuerung ebenfalls nachgerüstet. Nähere Informationen zu den genannten Baugruppen findet man unter [3] und [4]. Die dritte Variante des Kalenders wurde nun so konzipiert, die bisher gesammelten Erfahrungen zu nutzen und zur einfacheren Reproduzierbarkeit geeignete und am Markt verfügbare TWI-Baugruppen einzusetzen. Aufgrund der aktuellen und nahezu weltweiten Verbreitung fiel die Wahl auf Arduino-kompatible und per I2C-Bus koppelbare Baugruppen. Der I2C-Bus wird aus lizenzrechtlichen Gründen auch als TWI-Bus bezeichnet und diese Bezeichnung in den weiteren Erläuterungen mit verwendet. Aktuelle Informationen zum Arduino Uno und der großen Anzahl von Baugruppen der Arduino-Welt finden sich z. B. unter [5].

Schaltungsbeschreibung

Die Steuerung des Adventskalenders (Bild 2 zeigt den Übersichts-Schaltplan) ist in zwei Hauptteile untergliedert.
Bild 2: Das Übersichts-Schaltbild der Adventskalendersteuerung
Bild 2: Das Übersichts-Schaltbild der Adventskalendersteuerung
Aufgrund des Aufbaus aus überwiegend konfektionierten Modulen soll hier im Wesentlichen nur deren Zusammenwirken für die Erfüllung der wichtigsten Aufgaben erklärt werden. Den ersten Teil bilden ein Arduino Uno mit aufgesteckter Audio-Baugruppe ASA1 und einer RTC-Uhr-Baugruppe. Die Verbindung zum zweiten Teil der Steuerung wird nur über die UART-Schnittstelle hergestellt. Nähere technische Informationen zu diesen Baugruppen sind unter [1], [5] und [6] zu finden.
Bild 3: Der Seeeduino 3.0 wird als Steuerung eingesetzt.
Bild 3: Der Seeeduino 3.0 wird als Steuerung eingesetzt.
Als Steuercontroller für die Baugruppen des zweiten Teils der Steuerung wurde ein Seeeduino der Firma Seeed Studio [7] (Bild 3) ausgewählt. Er meldet sich in der Arduino-IDE als Arduino Uno. In der aktuellen Version 3.0 sind die 2 erforderlichen Schnittstellen (I2C und UART) bereits auf separate Steckkontakte herausgeführt. Diese Schnittstellen werden jeweils über ein passend erhältliches Adapterkabel angeschlossen. Links zu Lieferanten für die Baugruppe und die Adapterkabel sind unter [8] und [9] zu finden. Die beiden Schnittstellen werden für die Kommunikation zwischen den peripheren Baugruppen und dem Seeeduino einerseits sowie dem Arduino Uno und dem Seeeduino andererseits benutzt.
Bild 4: Die Ausgangsbaugruppe versorgt auch die Infrarot-Sende-dioden der CNY70-Optokoppler.
Bild 4: Die Ausgangsbaugruppe versorgt auch die Infrarot-Sende-dioden der CNY70-Optokoppler.
Mit Hilfe von zwei Eingangsbaugruppen werden die Schaltzustände der 24 Reflexkoppler CNY70 erfasst und dadurch die Stellung der Türen überwacht. Die Ausgabebaugruppe aus Bild 4 steuert das Auslesen der CNY70, indem die LEDs der Koppler nur zum Zeitpunkt des Auslesens mit Spannung versorgt werden. Damit kann die Gesamtstromaufnahme der Steuerung erheblich gesenkt werden. Sowohl die Größe der Kollektorwiderstände der Fototransistoren der CNY70 als auch die Vorwiderstände für die Einstellung des Stroms durch die Infrarotdiode für einen geeigneten Arbeitspunkt der Koppler wurden anhand der konkreten Reflexionsbedingungen an den Kanten der überwachten Türen am fertigen mechanischen Aufbau experimentell ermittelt.
Sowohl die Eingangsbaugruppen aus Bild 5 und 6 (das Datenblatt für den PCF 8575 findet sich unter [10]) als auch die Ausgangsbaugruppe aus Bild 4 werden über den Anschluss am TWI-Verteiler (Bild 7) mit Spannung versorgt.
Bild 5: Die Eingangsbaugruppe 1 überwacht den Zustand der Optokoppler und der Türen.
Bild 5: Die Eingangsbaugruppe 1 überwacht den Zustand der Optokoppler und der Türen.
Bild 6: Die Infrarot-Fernbedienungs-Baugruppe IRE 8 mit Anschluss an Eingangsbaugruppe 2
Bild 6: Die Infrarot-Fernbedienungs-Baugruppe IRE 8 mit Anschluss an Eingangsbaugruppe 2
Bild 7: Der TWI-Bus-Verteiler sorgt für die Signal- und Spannungsverteilung.
Bild 7: Der TWI-Bus-Verteiler sorgt für die Signal- und Spannungsverteilung.
Über die Eingangsbaugruppe in Bild 6 werden über die 8 nicht für die Koppler verwendeten Eingänge die 8 Steuerbefehle der Infrarot-Fernbedienung eingelesen. Näheres zur Auswahl der Fernbedienung und zur Einstellung der Parameter der Baugruppe ist in [3] nachzulesen. Mit einem akustischen Signalgeber SP1, an die Ausgangsbaugruppe in Bild 4 angeschlossen, wird noch eine Warnung ausgegeben, wenn die „falsche Tür“ – sprich Türnummer und aktueller Tag stimmen nicht überein – geöffnet wird.
Bild 8: Ansicht der Anordnung von 2 Reflexkopplern an den Türkanten eines Doppelfaches
Bild 8: Ansicht der Anordnung von 2 Reflexkopplern an den Türkanten eines Doppelfaches
Bild 8 zeigt, wie zwei Reflexkoppler CNY70 über der Türkante in einem Doppelfach eingebaut sind. Bild 9 zeigt die fertig verdrahtete Fachreihe 1, bestehend aus 3 Doppelfächern. Die hier noch nicht beschalteten Ein- und Ausgänge der montierten Eingangs- und LED-Baugruppe werden dann von den darüber liegenden Fachreihen nach unten verdrahtet.
Bild 9: Ansicht einer fertig verdrahteten Fachreihe
Bild 9: Ansicht einer fertig verdrahteten Fachreihe
Bild 10: Die I2C-LED-Ausgangsbaugruppe
Bild 10: Die I2C-LED-Ausgangsbaugruppe
Die I2C–LED–Ausgangsbaugruppen, wie in Bild 10 zu sehen, übernehmen die Ansteuerung der Beleuchtung des geöffneten Faches durch superhelle LEDs [11]. Diese LEDs werden mittig im Fachteil von oben durch eine 3-mm-Bohrung hindurchgesteckt. Die Beleuchtung des Faches wird aber nur aktiviert, wenn die richtige Tür am richtigen Tag geöffnet wird. Es ist also immer nur eine LED eingeschaltet. Diese LED-Baugruppen werden nur signalmäßig an den TWI-Bus angeschlossen. Die Versorgung mit 9 VDC erfolgt über die Klemmen auf der Baugruppe direkt vom Verteiler des speisenden 9 VDC-Netzgerätes. Der maximal mögliche Ausgangsstrom für die LEDs wird auf der Baugruppe durch einen Widerstand vorgegeben.
Bild 11: Ausgangsbaugruppe 3, Anzeige des Datums und weiterer Meldungen
Bild 11: Ausgangsbaugruppe 3, Anzeige des Datums und weiterer Meldungen
Über die Baugruppe aus Bild 11 werden neben dem aktuellen Tag noch Quittierungen der Steuerung nach Befehlseingaben angezeigt. Informationen zum eingesetzten PCA 9532 finden sich unter [12]. Es ist bei allen Adresseinstellungen der TWI-Baugruppen darauf zu achten, dass es nicht zu Überschneidungen bei der TWI-Adressierung kommt, da mitunter gleiche Adressbereiche von mehreren TWI-ICs benutzt werden. Die im Stromlaufplan angegebenen TWI-Adressen werden an den Eingangsbaugruppen aus Bild 5 und 6 sowie der Transistor-Ausgangsbaugruppe aus Bild 3 und der Anzeigebaugruppe aus Bild 11 fest verdrahtet. Die Adresseinstellung an den I2C-LED-Baugruppen (siehe Bild 9) erfolgt mit Jumpern. Für die Inbetriebnahme oder erste Tests der TWI– Baugruppen des doch umfangreichen Aufbaus noch ohne Controller ist die USB-I²C-Interface-Baugruppe [13] zu empfehlen.
Auf der Oberseite des Kalenders ist ein Drehteller mit aufgesteckten Holzfiguren montiert (Bild 12 und 14). Dieser Drehteller wird mit einem Getriebemotor angetrieben, der während der Wiedergabe eines Adventsliedes mit einer vorgegebenen PWM über ein spezielles Motor-Shield (Bild 13) eingeschaltet wird. Die Geschwindigkeit kann über das PWM–Signal noch „feinjustiert“ werden. Nähere Informationen zum Motor-Shield findet man unter [14].
Bild 12: Getriebemotor mit Drehscheibe und aufgesteckten Pyramidenteilen
Bild 12: Getriebemotor mit Drehscheibe und aufgesteckten Pyramidenteilen
Bild 13: 5-V-Netzteil und Motorantriebsbaugruppe DRV 8835
Bild 13: 5-V-Netzteil und Motorantriebsbaugruppe DRV 8835
In Bild 14 ist die Rückseite des Kalenders mit den montierten Baugruppen zu sehen. Hier sind der TWI-Bus und die Spannungsversorgung schon verdrahtet sowie die Steuerplatine mit dem Arduino-Aufbau, dem Seeeduino und den restlichen Baugruppen zu sehen.
Bild 14: Die Rückseite des Kalenders, rechts die Montage der beiden Controllerboards auf der Steuerplatine und die Ansicht der gesamten Steuerplatine
Bild 14: Die Rückseite des Kalenders, rechts die Montage der beiden Controllerboards auf der Steuerplatine und die Ansicht der gesamten Steuerplatine
Eine genauere Erläuterung des Zusammenwirkens der Baugruppen erfolgt in der steuerungstechnischen Beschreibung des Projekts [15], die komplett über den Artikel-Download im Web-Bereich verfügbar ist. Hier finden sich dann auch Codebeispiele zur Programmierung des Systems.

Erweiterungen

Zum Ende noch ein Ausblick auf mögliche Erweiterungen des vorgestellten musikalischen Adventskalenders. Die Ausgabe von Meldungen und Störungen im Ablauf kann über ein zusätzliches Display erfolgen. Dazu zählen z. B. Informationen wie „keine SD-Card gesteckt“, „Arduino nicht betriebsbereit“, „keine *.mp3–Dateien auf der SD-Card“, „Zum Start nicht alle Türen geschlossen“ oder auch die Ausgabe der Dateinamen aller abgespeicherten MP3-Files. Hier könnten dann auch die mitgezählten „heimlichen und unerlaubten Öffnungsversuche von Neugierigen“ gemeldet werden. Wem ein Zeilen-Display nicht mehr zeitgemäß genug ist, kann der Steuerung auch noch Erweiterungsbaugruppen in Form von Grafik-Displays oder zusätzlichen Schnittstellen aus dem Fundus der Arduino-Welt für weitere Funktionen hinzufügen. Damit können solche Informationen direkt per WLAN oder Bluetooth zum Smartphone oder zum Hausautomationssystem gemeldet werden. Hier kann sich jeder ambitionierte Elektroniker nach seinen Wünschen und Möglichkeiten einbringen. Da viele Aufgaben der Steuerung mit inzwischen vielfältig verfügbaren konfektionierten Baugruppen zu lösen sind, sollte der Nachbau der Steuerung keine größeren Probleme bereiten. Durch den Einsatz weiterer „konfektionierter“ Lösungen können auch die restlichen, hier noch mit diskreter Technik aufgebauten Ansteuerungen nachbausicher vereinfacht werden. Die eigentliche Herausforderung und damit der Spaß am Nachbau des prinzipiellen Gedankens des musikalischen Adventskalenders stellt eindeutig der mechanische Aufbau des Adventskalenders dar. Die hier vorgestellte Variante soll dazu nur eine erste Anregung bieten. So ein musikalischer Kalender wird mit Sicherheit kein „Sonntagnachmittagsprojekt“, aber der Aufwand für eine solch außergewöhnliche Geschenkidee lohnt sich.

Weitere Infos:

[1] www.elv.de - ELV Audio Shield für Arduino ASA1; Best.-Nr. J6-10 59 22
[2] www.4dsystems.com.au - Link zum Hersteller des SOMO 14D
[3] www.elv.de - Infrarot-Fernbedienungs-Baugruppe IRE 8, 8 Kanäle, Best.-Nr. J6-10 46 74
[4] www.elv.de - MP3 Soundmodul MSM 2, Best.-Nr. J6-09 28 53
[5] www.arduino.cc - Homepage des Arduino Uno
[6] www.elv.de - I²C-Realtime-Clock I2C-RTC, Best.-Nr. J6-10 34 13
[7] www.seeedstudio.com - Informationen über den Seeeduino v3.0 über die wiki page
[8] www.watterott.com - Link zum Lieferanten der Eingangsbaugruppe 1 und 2
[9] www.exp-tech.de - Link zum Distributor von Getriebemotor und Motor Driver Carrier DRV8835
[10] www.nxp.com/documents/data_sheet/PCF8575.pdf
[11] www.elv.de - LED-I2C-Steuertreiber, 16 Kanäle, Best.-Nr. J6-09 83 77
[12] www.nxp.com/documents/data_sheet/PCA9532.pdf
[13] www.elv.de - USB-I²C-Interface-Baugruppe; Best.-Nr. J6-08 41 23
[14] www.pololu.com - Link zur Motorsteuerung sowie zum Datasheet vom DRV8835
[15] www.elv.de: Webcode #1334 Link zum Onlinebeitrag

Fachbeitrag als PDF-Download herunterladen

Inhalt

Sie erhalten den Artikel in 1 Version:

pdf  als PDF (6 Seiten)

Sie erhalten folgende Artikel:
  • Arduino steuert einen intelligenten Adventskalender
ProdukteForen
ELV IR-Empfänger 8 Kanäle IRE 8, Komplettbausatz

ELV IR-Empfänger 8 Kanäle IRE 8, Komplettbausatz


EUR 12,95*
sofort versandfertig Lieferzeit:1-2 Werktage2
ELV MP3 Sound-Modul MSM 2, Komplettbausatz

ELV MP3 Sound-Modul MSM 2, Komplettbausatz


EUR 19,95*
sofort versandfertig Lieferzeit:1-2 Werktage2
ELV LED-I2C-Steuertreiber, 16 Kanäle, Komplettbausatz

ELV LED-I2C-Steuertreiber, 16 Kanäle, Komplettbausatz


EUR 12,95*
sofort versandfertig Lieferzeit:1-2 Werktage2


Hinterlassen Sie einen Kommentar:
(Anmeldung erforderlich)
  Name
  E-Mail