Mein Tonuino

unser Tonuino

Bei der Suche nach einer Alternative zur Tonibox bin ich auf das Open Source Projekt Tonuino gestoßen. Hier werden alle Titel auf einer SD-Karte abgespeichert und mittels vorkonfigurierter NFC Karten abgerufen.

Auf der Homepage https://www.tonuino.de/ findet man alle nötigen Informationen und kann sogar die benötigte Hardware erwerben sofern man diese nicht schon herumliegen hat.

Ich habe die Hardware für meine Zwecke etwas abgeändert, da ich eine Kopfhörerbuchse und eine echtes Potentiometer für die Lautstärkeeinstellung haben wollte. Die elektronische Einstellung der Lautstärke ist im niedrigsten Level noch zu hoch. Einschlafen ist damit schwierig.

Weiterhin wollte ich Stereosound und das bedarf eines zusätzlichen Endverstärkers. Im originalen Tonuino wird der Monoverstärker auf der DF-Player Platine benutzt.

Für das Gehäuse habe ich einen Bluetoothlautsprecher von Bennett & Ross aus dem Schnäppchenangebot für 20€ geschlachtet. Mit der Tonuino Hardware hat der Lautsprecher einen erstaunlich guten Klang.

Die originale Tonuino Software habe ich etwas umgeändert. Normalerweise schickt der Arduino durch den Standby Timer, welchen man frei wählen kann, alle Komponenten und dann sich selbst in den sleep mode. Das Gerät ist dabei nicht richtig aus. Es schläft quasi nur. Um es aufzuwecken, muss man es aus und wieder einschalten. Im Original hat der Tonuino einen richtigen Schalter. Ich verwende einen Taster. Die Akkuladeplatine welche ich hier benutze bietet die Möglichkeit die gesamte Stromzufuhr auszuschalten. Hierfür muss am Eingang KEY der Akkuladeplatine zweimal kurz hintereinander Masse anliegen. Um die Stromzufuhr einzuschalten genügt eine kurze Verbindung nach Masse. Hier kommt der zusätzliche Transistor im Schaltplan ins Spiel. Er wird vom Arduino zweimal kurz auf HIGH und LOW geschaltet und ist invertierend. Somit schaltet sich das Gerät quasi selbst aus.

Der Arduino Code muss hierfür angepasst werden. Der Transistor hängt an Pin D7. Der Pin D7 wird beim Start des Arduino im Setup auf LOW geschaltet und bleibt bis zum Standby so.

Die LEDs an Pin 5 und Pin 6 sind zur allgemeinen Verwendung. Ich wollte eine Funktionsanzeige für An/Aus und gleichzeitig für den Akkustand. Darum ist es auch eine zweifarbige LED mit gemeinsamer Kathode. Bisher habe ich nur die Funktionsanzeige umgesetzt. Die Ermittlung des Akkuladestandes soll irgendwann mal über den analogen Eingang A6 stattfinden. Das steht noch aus. Verdrahtet ist alles schon.

Auf der Arduino Platine habe ich die Diode für die USB Spannungsversorgung entfernt, damit der Arduino nicht mehr über die USB Buchse mit Strom versorgt wird. Die Versorgung des Arduino erfolgt nun ausschließlich über das Akku-Lademodul und Arduino Vin. Dafür befindet sich auf meiner Platine ein Lötpad. Hier wird mit einem Kabel eine Verbindung vom Lötpad auf der Arduinoplatine wo vorher die Diode angelötet war (richtiges Pad benutzen, das mit 5V bei eingestecktem USB Anschluss!) und dem 5V-Vin des Akkulademoduls hergestellt.

Die Platine

Die Platine habe ich mit EASYEDA erstellt und auch gleich bestellt. Diese Platinen machen einen hochwertigen Eindruck und werden recht schnell aus China geliefert.

Schaltplan

unbestückte Platine

Bestückte Platine

erster Funktionstest noch ohne Tasten

mit Tasten

Bedienfeld noch ohne Tasten

Ein paar Bilder

Infos zum Nachbauen

Bluetoothlautsprecher gibts hier

Schaltplan und Platine gibts hier

Tonuino Hardware gibt es hier

Akku Ladeplatine gibt es hier

original Tonuino Seite

Die magische Muschel

„Es liegt am Strand und redet unverständliches Zeug?

                                                       Eine Nuschel!“

Dieser kleine Witz hat mich am Ende dazu bewogen ein Projekt mit einem Arduino aufzubauen. Die Kinder haben jede Menge Spaß damit nur nicht meine Frau, die kann es nicht mehr sehen und hören, da ich viele Stunden damit verbracht habe der Muschel das Sprechen beizubringen.

Am Anfang stand das Audio-Shield von ELV. (Link zum Audio-Shield)

Das Audio-Shield ASA1 kann WAVE und MP3 Dateien von einer Micro SD Karte abspielen. Eine Library für die Arduino IDE gibt’s gratis dazu. Das Shield kostet 19,95€.

Eine weitere Alternative könnte das Audioshield JQ650-28P sein, welches es bei Ebay für ca. 7€ gibt. Ich habe es mitlerweile vorliegen und es scheint wesentlich weniger resourcenhungrig zu sein als das ELV Shield. Der Funktionsumfang ist ähnlich, obwohl viel weniger Arduino Pins beschaltet werden müssen. Es bleiben also mehr Möglichkeiten für das Projekt.

Konzept

Das Ganze sollte wie eine Art Jahrmarkt Attraktion ausgeführt sein, die sich mit dem Einwurf einer Münze aktivieren lässt. Die Muschel sollte dabei in einer geschlossenen Box „wohnen“ und beim Einwurf einer Münze wird der Deckel geöffnet während eine magische Melodie spielt und dann spricht die Muschel eine von momentan noch 30 lustigen Lebensweisheiten (wird noch erweitert!).

Ausführung der Mechanik

Die passende Holzkiste wurde schnell auf Ebay.de gefunden. Darin wurden alle Halterungen untergebracht, welche zur Befestigung der Baugruppen benötigt werden.

Holzkiste mit Halterungen

Holzkiste mit Halterungen

Holzkiste mit allen Komponenten

Holzkiste mit allen Komponenten

servo-sprechen

2x Servo für Sprechen und Öffnen des Deckels

baugruppe_muschel

Baugruppe Grundplatte mit Muschel und Servo von unten gesehen

muenzschalter_aussen

Münzeinwurf von außen

muenzschalter_innen

Münzeinwurf von innen

3D-Ansicht des Münzschalters

3D-Ansicht des Münzschalters

muenzschalter_3d_002

3D-Ansicht des Münzschalters

Der Aufbau des Münzeinwurfes ist recht einfach. Mir ging es nur darum dass es in etwa wie bei einem Spielautomaten ist. Eine genaue Münzerfassung findet hier nicht statt. es wird lediglich ein kleiner Hebel bewegt welcher einen Mikroschalter betätigt. Es funktioniert mit 1€, 2€ und 50Cent Stücken oder, wie die Kinder schnell herausgefunden haben, auch mit einem Löffel, Lineal oder ähnlich flachen Gegenstand.

Die für die Mechanik verwendeten Servos sind standard Modellbau Servos von Futaba. Diese haben ausreichen Drehmoment und sind auch schnell genug was vor allem beim Sprechen der Muschel wichtig ist. Ich finde aber, dass sie ziemlich laut sind. Da besteht noch Optimierungspotential. Fals jemand einen Tip hat, immer her damit solange es sich im Kostenrahmen bewegt.

Futaba S3003

Ausführung Elektronik

Beim Einwerfen der Münze schließt der Mikroschalter und überbrückt einen Transistor welcher sonst ein Relais betätigt (siehe Schaltplan!). Das Relais schließt, der Arduino wird mit Strom versorgt und liefert, wenn das Programm läuft, an einem Digitalausgang ein High Signal. Damit wird der Transistor durchgeschaltet und die Schaltung hält sich selbst nachdem der Kontakt am Münzschalter wieder öffnet und versorgt sich weiterhin mit Strom. Diese Anordnung lässt sich sehr gut über die Software wieder ausschalten. Somit geht die sprechende Muschel nach Ablauf Sequenz selbstständig und vollständig aus.

Ich habe zwei verschiedene Arduinos probiert und musste feststellen, dass das Programm auf dem originalen Arduino gefühlt sofort startet. Ein Arduino Clone verhält sich da unvorteilhafter. Der Mikroschalter zum Starten muss sehr lange betätigt werden, bevor das Programm startet. Es funktionierte nicht einfach eine Münze einzuwerfen. Kann sein, dass das mit dem Bootloader zusammenhängt, keine Ahnung.

Ein weiterer Digitalausgang steuert über einen weiteren Transistor ein zweites Relais. Dieses wird zeitverzögert eingeschaltet und versorgt die Servos mit Strom, da sich gezeigt hat, dass diese unkontrolliert verfahren solange sie kein Positionssignal vom Arduino bekommen. Somit lässt sich sehr gut das unkontrollierte Zucken der Servos verhindern.

 Schaltplan

(Auf das Bild klicken um zum PDF zu kommen!)

schaltplan_v001

Schaltplan für Zusatzplatine mit Relais und Eingangsbeschaltung für ADC

Eingangsbeschaltung für ADC:

Der analoge Eingang kann Spannungen von 0 – 5V messen. Das Audiosignal eines Lautsprecherausgangs bewegt sich aber von -x Volt bis +x Volt abhängig von der Ausgangsspannung des Verstärkers. Um den negativen Anteil des Audiosignals zu entfernen wird die Eingangsspannung mit einem Spannungsteiler um 2,5V angehoben. Nun swingt das Eingangssignal um den Wert von 2,5V.

Im Falle der Endstufe des ELV Audio-Shield verhält es sich etwas anders. Hier ist ein symmetrischer Ausgang. Das heißt, es befindet sich auf jeder Lautsprecherleitung ein zur anderen Leitung inverses Signal. Auf dem Oszilloskop sieht das folgendermaßen aus.

audio_ohne_opv_001

Audiosignal vom Verstärkerausgang (nur eine Lautsprecherleitung!)

Hier kann man sehr schön sehen, dass das Audiosignal ca. 2V beträgt und bereits um 2,5V in den positiven Bereich verschoben ist. Somit hätte ich mir die zusätzliche Eingangsbeschaltung sparen können, naja.

Ein Versuch mit einem Operationsverstärker erbrachte folgende Signal.

opv

zusätzlicher Operationsverstärker

audio_mit_opv_001

Audiosignal mit zusätzlichem Operationsverstärker (nur eine Lautsprecherleitung!)

Wenn man die Verstärkung vergrößert stellt sich das ganze so dar:

audio_mit_opv_002

höher verstärktes Audiosignal (nur eine Lautsprecherleitung!)

Hier sieht man sehr schön, dass die maximale Ausgangsspannung 5V beträgt. Das ist leicht zu erklären, da der Operationsverstärker mit 5V betrieben wird.

Einen Vorteil bei der Auswertung des Audiosignals mit dem Arduino konnte ich nicht wirklich feststellen. Daher habe ich mich entschieden den Operationsverstärker weg zu lassen.

In der Software wird der analoge Eingang 12 mal  eingelesen. Ist der Wert höher als der zuletzt eingelesene Wert wird dieser Wert angenommen. Wenn die 12 Messungen beendet sind wird das Ergebnis auf die Winkelposition des Servos gemappt. Jetzt „spricht“ die Muschel.

Arduino Code

Code kann hier herunter geladen werden!

Die Schatzkiste

IMG_4836

Die Schatzkiste

Mein Arbeitskollege hat sein altes Wählscheibentelefon von 1984 im Elektroschrottkontainer entsorgt. Als ich die Wählscheibe sah, kam mir die Idee mit einem Arduino eine Schatzkiste mit Codeeingabe über Wählscheibe für meinen Sohn zu bauen.

Für die Schatzkiste habe ich mich für eine dekorative Holzkiste entschieden. Mein Sohn hat diese dann nach seinen Vorstellungen personalisiert. So kann man gleich erkennen, wer hier überhaupt Zugriff hat und wer nicht. Clever!

Wenn man die Kiste öffnet, offenbart sich ein zweiter Deckel ,welcher verriegelt ist, und die Wählscheibe, gleichzeitig wird über einen Microschalter die Stromversorgung für den Arduino hergestellt. Gibt man nun über die Wählscheibe die dreistellige Codenummer ein, wird der kleine Aluminiumhaken (unterhalb der LEDs) mittels Elektromagnet entriegelt und man kann diesen zur Seite klappen und so den Deckel freigeben und öffnen. Sollte der Code falsch sein wird dies über das Blinken der blauen LED signalisiert. Die geschieht aber erst, wenn mindestens drei Zahlen eingegeben wurden. Ist der Code richtig beginnt die blaue LED dauerhaft für 5 Sekunden zu leuchten. Solange hat man Zeit den Deckel zu öffnen. Das ganze wird mit einem 9V Block betrieben.

Schatzkiste mit Wählscheibe

Schatzkiste mit geöffnetem Deckel

Schatzkiste mit Wählscheibe

richtiger Code wurde eingegeben, die blaue LED leuchtet

Schatzkiste mit Wählscheibe

geöffnete Schatzkiste

Wie man schön sehen kann, geht Sicherheit vor. Doppelt hält halt besser.

Falls jemand auch eine alte Wählscheibe mit einem Arduino benutzen will, hier mein Arduino Code.

Arduino Code für Wählscheibe

Die Verdrahtung werde ich auch noch hier posten.

Fortsetzung folgt!