Die ANJOla

Published February 2020 in None


Eine wirklich gute Idee, aber das sollte nicht sein. Damit war der Gedanke an eine "abhörsichere" Alternative als Projekt geboren. Herausgekommen ist die ANJOla. Sie spielt MP3 Dateien, also Lieder oder Sprachaufnahmen ab. Mit unterschiedlichen Objekten wie Spielzeugfiguren, Holzscheiben oder Legosteinen kann das Kind die Dateien auswählen. Sehr beliebt sind natürlich Kinderlieder und mit dem Smartphone aufgenommene eigene Texte und Lieder der Eltern. Die Bedienelemente der ANJOla reduzieren sich neben dem Ein-/Ausschalter auf drei Tasten (Laut, Leise,Pause) und eine Vor-/Zurück-Bewegung. Mit einem Schlüsselschalter kann die ANJOla komplett abgeschaltet werden. Das Gehäuse der ANJOla Elektronik ist frei gestaltbar. In meinem Fall ist es Teil einer Wand mit aufgemaltem Segelschiff und hat die Form eines Rettungsringes.

picA8 Die ANJOla picA7 Rückseite, Deckel abgenommen
Die Hauptkomponenten der ANJOla sind schnell aufgezählt:
  • ESP8266 Wemos D1 mini
  • RFID RC622 (1 , 2 )
  • DF Player Mini (3 )
  • Taster, Schlüsselschalter
  • 5V Powerbank

Micropython (10 ) ist die Programmiersprache.

Das Funktionsprinzip

der ANJOla ist recht einfach. Auf der SD Karte befinden sich Ordner mit Audiodateien. Einem Ordner ist jeweils ein RFID Tag zugeordnet. Wird dieses Tag vom RFID Leser erkannt, ist der Ordner aktiv und die darin enthaltenen Audiodateien werden abgespielt. Sobald das Tag entfernt wird, kommt ein "Warnhinweis". Damit es weitergeht, muss das Tag wieder auf den RFID Leser gelegt werden. Ist kein Tag vorhanden, setzt sich die ANJOla zurück und wartet auf ein neues Tag.

Projektübersicht

Das DF Player Mini Modul bietet alle Funktionen und Bedienelemente, die man von einem MP3 Player erwartet. Allerdings sind Tasten doppelt belegt. Eine Funktion wird durch kurzes oder langes Drücken der Taste bestimmt, z.B. "Lauter" (kurz) und "Nächste Datei" (lang). Dies erschien mir für jüngere Kinder zu schwierig zu sein. Mein Ansatz war daher, eine Bedienung der ANJOla nur über den ESP und damit programmierbar und frei gestaltbar zu machen. Leider sind wegen der I2C Anbindung des RFID Moduls nur noch wenige ESP Ports frei, um diverse Eingabemöglichkeiten zu realisieren. Meine Lösung war, den Analogeingang des ESP für digitale Inputs ( Taster) zu nutzen. Eine Reihenschaltung aus Taster und Widerstand erzeugt eine bestimmte Eingangsspannung, die eindeutig dem Taster zuzuordnen ist. Das gleichzeitige Drücken mehrerer Taster, also einer Parallelschaltung der Widerstände, kann bei geschickter Widerstandsauswahl als nicht zulässiger Wert erkannt werden. Insbesondere die Realisierung aller Funktionen in Software brachte den ESP aber an seine Grenzen. Nur mit dem Laden von Bytecode-Dateien (.mpy) schaffte ich es, Speicherfehler zu vermeiden. Aber, Version 1 lief und wurde begeistert aufgenommen. Mehrere Monate im "Kinderzimmereinsatz" zeigten aber auch, dass eine Tastendoppelbelegung für die Kids keine Hürde ist und ich erstellte die Version 2.

Die Konstruktion

Der von mir gewählte "Rettungsring" als ANJOLA-Gehäuse besteht im Hintergrund aus einer Keksdose aus Blech und einer Holzscheibe als Ring.Der Dosendeckel bildet die Rückwand und ist lösbar verschraubt. Eine Öffnung im Dosenring ist vorhanden, dahinter liegt der USB Ladeanschluß für die Powerbank. Ein Ladekabel kann von außen angeschlossen werden. Die Holzscheibe ist mit passenden Bohrungen und Ausschnitten für Bedienelemente, LED-Anzeigen und Lautsprecher versehen. Das RFID Modul muss direkt hinter der Holzscheibe und mit der Antennenseite nach außen befestigt werden. Die Scheibendicke darf mindestens 15mm betragen, ohne die Lesbarkeit der aufgelegten Tags zu gefährden. Auf der Außenseite sollte eine Freifläche über der RFID Antenne vorhanden sein, die das Objekt mit dem Tag aufnehmen kann. Meine Spielfiguren sind kleine, mit Bildern beklebte oder bemalte Holzscheiben. Auf ihrer Rückseite ist das jeweilige RFID Tag geklebt. Die Scheibchen sind mit einer Bohrung versehen und können auf einen Holzstift aufgehängt werden. Die passenden Abmessungen sorgen dafür, dass das Tag direkt im Lesebereich der RFID Antenne liegt. Größere Gegenstände wie z.B der abgebildete Frosch werden auf die Freifläche gestellt. Dazu muss der Rettungsring natürlich waagerecht liegen und kann nicht an der senkrechten Spielwand befestig sein.

picA1 Innenansicht picA5 RFID Tag

Die Elektronik

Der Schaltplan (13), mit KICAD (14) erstellt, zeigt wie die Module miteinander verdrahtet sind. Sind die Verbindungsbrücken (JP1, JP2) geöffnet, kann die USB Schnittstelle UART(0) des Wemos D1 mini Pro für die PC Anbindung und Programmierung genutzt werden. Verbindet man D4 (Pin 11) als "halbe Schnittstelle" (nur TxT) mit einem TTL/USB Wandler, können Meldungen auf dem PC ausgegeben werden. Das ist insbesondere in der Pogrammentwicklungsphase recht hilfreich. Auf dem Foto und in dem blau eingerahmten Kasten ist noch die Widerstandsanordnung für Version 1 zu sehen. In Version 2 entfällt sie komplett. Als Energiequelle habe ich eine 5V, 2Ah Powerbank eingesetzt. Das RFID Modul muss mit 3,3V versorgt werden. LED D2 sorgt für den entsprechenden Spannungsabfall und dient gleichzeitig als Einschaltanzeige. Auf den Bildern ist die Version 1 mit der Widerstandsreihe für den Analogeingang zu sehen. Diese Reihe wird in Version 2 nicht mehr benötigt.In meinem Fall habe ich sie einfach "abgeklemmt", um die Platine nicht neu erstellen zu müssen.

picA10 Hauptkomponenten picA9 Platine, Version1

Das Programm

Das Programm für die ANJOla ist in Micropython (10 ) geschrieben. Grundlage der Treiberprogramme für das RFID Modul und den DF Player waren diese zwei Bibliotheken (5 , 6 ). Sie wurden leicht überarbeitet und nicht benötigte Funktionen entfernt. Das Hauptprogramm besteht im wesentlichen aus einer Schleife, aus der je nach Status die passenden Funktionen abgearbeitet werden.

Fallstricke

Serielle Schnittstelle

Der DF Player wird mit dem ESP per UART(0) Schnittstelle verbunden. Damit entfiel die von mir standardmäßig genutzte Möglichkeit, den ESP halbwegs komfortablel über die serielle Schnittstelle zu programmieren. Als Tools benutze ich mpfshell-lite (7) und die IDE Geany (8) oder PyCharm (9). Erst nach mehreren Versuchen gelang es mir, den ESP zuverlässig über die WLAN Schnittstelle anzusprechen und Print-Ausgaben über UART(1) auf den Bildschirm zu bringen. Siehe dazu die Einträge in der boot.py Datei, die mpfshell Aufrufe auf der Kommandozeile und die UART(1) Definitionen im Hauptprogramm anjola.py.

Ordnerstruktur und -reihenfolge auf der SD Karte

Die Ordnerstruktur und -benennung auf der SD Karte muss einem strikten Schema folgen. Hier (3) ganz gut erklärt. Problematischer war der wenig nachvollziehbare Zugriff des DF Players auf die einzelnen Ordner. Im Programm müssen die Ordner als absolute Zahl angegeben werden. Deren Zuordnung hängt jedoch von der zeitlichen Reihenfolge, wie sie auf der SD Karte gespeichert wurden, ab und ist in der Dateiverwaltung der Karte ( FAT, File Allocation Table) festgelegt. Sinvoll und nachvollziehbar ist eine numerische Reihenfolge, d.h auf Ordner 001 folgt Ordner 002 usw. Zum Glück ist mit einem Tool wie FATSort (12) die dafür notwendige Umsortierung der FAT in einem Rutsch erledigt. Eine gute Beschreibung zum Verständnis findet man auf der Webseite des Windows Programms FAT-32 Sorter(11)

Download

Micropython:

Ansichten

Nachfolgend einige Objekte, die zu Testzwecken mit einem RFID Tag versehen wurden. Favorit sind die Holzscheibchen, hier mit Max&Moritz Bild beklebt. Passend dazu werden Kinderlieder abgespielt. Das RFID-Tag auf der Scheibenrückseite verweist auf den entsprechenden Ordner der SD Karte.

picA8 Holzscheibe picA4 Frosch picA3 Lego

⇑ Up ⇑

Comments


Leave a Comment
Your input data or your comment will not be published.
Name:

Website:

Comment: