Die Seite ist in Bearbeitung!
DIY Musikbox von Thorsen Voß
Nachdem ich das Projekt in meinem Blog bereits vorgestellt habe, möchte ich hier näher ins Detail gehen.
Anfang 2023 stolperte ich über meine alten Schuldokumente. Sie behandeln das Thema Informatik mit Fokus auf den 16-bit Microprozessor Intel 8086 und der maschinenorientierten Programmiersprache Assembler. Schnell hat mich das Schulfach wieder gefangen und da in 2023 Assembler und speziell der Intel 8086 nicht mehr aktuell waren, konzentrierte ich mich auf die bereits etablierte Entwicklerumgebung Arduino UNO R3 mit dem ATmega328P und der hauseigenen Arduino Programming Language . Da Assembler unr im entferntesten Sinne mit der Arduino Programming Language verwand ist, musste ich mich auf eine neue Programmiersprache stützen. Da diese aber einfach zu erlernen ist, war der Grundstein für das Projekt gelegt und ich fing mit Arduino UNO R3 an zu experimentieren.
Eines Tages bekam ich das MP3 DFPlayer Mini Modul in die Hände. Dieses wollte ich unbedingt in einen DIY MP3 Player verbauen und als Vorbild dafür diente die frisch angeschaffte Toniebox für meinen Sohn. Meiner Meinung nach die perfekte Musikbox auf dem Markt für Kinder. Ich habe mich natürlich davor auch nach Alternativen erkundigt, doch das ansprechende Design und die ausgeklügelte, intuitive Handhabung sind einfach toll. Sogar mein 1 1/2 jähriger Sohn hat es schnell verstanden die Figuren auf die Box zu stellen und ein Öhrchen zu drücken um seine Lieblingslieder hören zu können. Das zeigt einfach wie durchdacht dieses System ist. Mir war klar, das mein Kontrukt nicht ansatzweise diese Qualität erreichen wird, doch war die Begeisterung groß sich programmiertechnisch und elektronisch auszutoben und meinem Sohn ein individuelles Gerät zu bauen.
Schnell wurde ich aber in meine Schranken verwiesen und ich bemerkte schmerzlich wie wenig Kenntnisse ich im Programmieren besitze. Die Arduino Programmiersprache basiert auf C/ C++ ist aber einfacher gehalten, dennoch war es mir damit nicht möglich meine Ideen detailgenau umzusetzen. Dies führte dazu, dass ich viele Einschnitte in meinen Wünschen zu verschmerzen hatte. Einschnitte die das fertige Produkt nicht kindsgerecht erschienen ließen und die Sinnhaftigkeit in Frage stellten. Damit ich dennoch meinem Hobby fröhnen konnte, beschloss ich mich nach einem fertigem Arduino Sketch (so werden die Programme genannt) umzusehen.
Gleich als Erstes wurde die TonUINO DIY Musikbox von Thorsten Voß in den Suchergebnissen angezeigt. Es erstaunte mich, wie groß die Community um das Projekt herum war und wie professionell es umgesetzt wurde. Es gab ein offizielles Git Repository auf Github, Foren, die offizielle Homepage und den dazugehörigen Shop. Es gab speziell für den TonUINO angefertigte Platinen, die den Zusammenbau erleichtern sollten oder von Drittanbietern zusammengestellte Sets von Komponenten. Fans haben auf Youtube und eigenen Seiten Ihre Projekte begleitet und das Forum quillte über von Nachbauten und begeisterten Makern. Außerdem gab es noch Forks und alternative Projekte die auf TonUINO basieren.
Da ich das Funktionsprinzip so einfach, aber den Zusammenbau so vielseitig wie möglich halten wollte, entschied ich mich zuerst für einen Prototypen mit drei Tasten und dem Standardsketch Classic als Versuchsobjekt. Ich wollte nicht alles auf eine Karte setzen, sondern mich langsam an das Projekt heranwagen. Deswegen war auch nur ein einfaches Netzteil als Stromquelle geplant, anstatt einer Ladeschaltung oder eines Powerbank Umbaus. Meine Überlegung war, dass wenn ich ein lauffägies System zusammenbauen kann, das auch in der Umsetzung meinen Wünschen entspricht, könnte ich dieses ja mit zusätzlichen Funktionen erweitern.
Das Ziel war nun gesteckt. Es sollte eine TonUINO Musikbox in einem kleinen robusten Gehäuse, mit drei Tasten werden. Doch was beinhaltet nun dieser Plan? Welche Teile werden benötigt? Wie soll der Zusammenbau erfolgen und welche Funktionen sollen enthalten sein? Um diese Frage zu klären, folgte ich der Anleitung auf TonUINO.de. Hier wurde alles detailliert erklärt.
Zuerst benötige ich nur die Grundmodule um einen Protoypen aufbauen zu können und um die Funktionen zu testen.
Ein originaler Arduino Uno R3 bzw. Arduino Nano basierend auf einem ATmega328P oder natürlich auch ein Arduino Mega. Wer etwas günstigeres sucht kann den TonUINO auch mit einem Klon der einen LGT8F328P Mikrocontroller besitzt bauen.
Ein passendes Netzteil für den Arduino/Klon (9-12V, max. 1A)
Drei Taster
Ein RFID RC-522 Kartenleser
Dazu passende RFID Chip-Karten oder Chips mit 13,56 MHz Frequenz
1 kOhm Wiederstand
Ein beliebiger Lautsprecher
Eine Micro SD Karte mit maximal 32GB Speicher
Das DFPlayer Mini Modul, aber Vorsicht! Es funktionieren nicht alle Module die auf dem Markt sind. Hier ein Ausschnitt aus dem TonUINO Forum.
YX5200-24SS - Auch bekannt als FN5201-24SS. Es existieren weitere Varianten, z.B. YX6200-16S (welcher aber nach aktuellem Kenntnisstand leider nicht alle Funktionen unterstützt!).
MH-ET LIVE (MH2024K-24SS) - Funktioniert sehr gut.
Achtung: Es kursieren neuerdings Modelle die Probleme mit der Lautstärke haben. Beschriftet sind diese mit MP3-TF-16P V3.0. Workarounds wurden hier gefunden.
DFROBOT LISP3 - Keine Berichte bekannt. Allem Anschein nach das Original.
JL - Meistens keine Probleme. Es gab vereinzelt Berichte, dass Player mit diesem Chip recht träge reagieren z.B. wenn viele Dateien auf der SD-Karte vorhanden sind.
JL AS21CM9R0D - funktioniert nicht
MH-ET LIVE (MH2024K-16SS) - Unterstützt nicht den vollen Funktionsumfang und zeigt teilweise Probleme mit der seriellen Kommunikation. Nicht zu empfehlen.
GD3200B - Unterstützt nicht den vollen Funktionsumfang und zeigt teilweise Probleme mit der seriellen Kommunikation. Nicht zu empfehlen.
Zusätzlich noch ein Steckbrett mit allen verschiedenen Arten von Jumperkabel. - Dies aber auch nur, da ich das Projekt erst auf einem Experimentierboard aufbauen möchte. Alternativ ginge auch Lochrasterplatinen oder eine direkte Verkabelung.
Des weiteren benötigte ich den Sketch TonUINO-TNG vom TonUINO Projekt selbst. Die Software Arduino IDE natürlich um den Sketch zu compilieren und den Verkabelungsplan (siehe Bild oben). Außerdem noch die vorgegebene Ordnerstruktur sowie Musikstücke im MP3 Format für das korrekte Befüllen der Speicherkarte.
Nachdem ich alles zusammen hatte, konnte ich mich an den ersten Versuchsaufbau heranwagen. Dies ging relativ zügig von der Hand, da die Dokumentation sehr übersichtlich und unkompliziert war. Immerhin waren es im Versuchsaufbau nur acht Elemente die verbunden werden mussten.
Vor dem Starten der Arduino IDE und dem Compilen des Sketches müssen aber noch folgende Punkte abgearbeitet werden:
Es ist unbedingt darauf zu achten, das das Verzeichnis in das das Repository gecloned oder heruntergeladen wird (also das Verzeichnis, in dem schließlich auch die TonUINO-TNG.ino zu finden ist, genau so heißt, wie die ino Datei, also in diesem Fall "TonUINO-TNG"!
Bei der classic und AiO HW Variante muss die Datei 'platform.local.txt' in den avr HW Ordner kopiert werden. Dieser Ordner ist gewöhnlich folgender:
Windows:
Classic: C:\Users\<Benutzer>\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6
AiO: C:\Users\<Benutzer>\AppData\Local\Arduino15\packages\LGT8fx Boards\hardware\avr\1.0.7
Linux:
Classic: ~/.arduino15/packages/arduino/hardware/avr/1.8.6
Aio: ~/.arduino15/packages/LGT8fx Boards/hardware/avr/1.0.7
MacOS 13.x:
Classic: ~/Library/Arduino15/packages/arduino/hardware/avr/1.8.6
AiO: ~/Library/Arduino15/packages/LGT8fx Boards/hardware/avr/1.0.7
Man findet den Ordner auch, wenn man die Datei platform.txt sucht.
Für die AiOplus HW Variante sind keine Änderungen notwendig
Die HW Variante (TonUINO_Classic, ALLinONE oder ALLinONE_Plus) sowie die Button Konfiguration (THREEBUTTONS, FIVEBUTTONS oder BUTTONS3X3) muss in der Datei constants.hpp durch Entfernen des entsprechenden Kommentars angegeben werden.
Auch das Programm auf den Arduino zu übertragen verlief problemlos. Wichtig ist hierbei folgende Bibliotheken einzubinden und die zum Softwarestand unterstützten Versionen zu installieren! Die Informationen dazu findet ihr auf TonUINO.de.
jchristensen/JC_Button
miguelbalboa/MFRC522
makuna/DFPlayer Mini Mp3 by Makuna
adafruit/Adafruit NeoPixel (optional, nur bei Feature NEO_RING notwendig)
Zum Schluss noch die SD Karte formatieren und mit dem entpackten Inhalt der SD-Card.zip befüllen, Musik drauf und fertig.
Hier und da noch einen kleinen Steckverbindungsfehler korrigiert und die TonUINO Box erwachte das erste mal zum Leben. Es war ein sehr zufriedenstellender Moment, als das Programm reibungslos ablief. Die Grundaufgabe einer Kindermusikbox zu bauen waren erfüllt. Dennoch gab es noch kleine Kritikpunkte, die ich in der finalen Version korrigieren wollte.
Nachdem nun der Aufbau geglückt ist, ging es in die nächste Phase. Es musste ein Gehäuse her, das einerseits kindsgerecht ist, robust, eine gute Klangqualität bietet und genügen Platz für die Technik hat. Natürlich sollte auch das Innere zugänglich sein, deswegen war auch die Möglichkeit diese mit einem Deckel verschrauben zu können wichtig. Da ich keine Lautsprecher im Haushalt über hatte, war meine erste Idee einfache quadratische Plastikgehäuse für elektronische Experimente zu nutzen. Diese verwarf ich aber schnell, da ich kein ansprechendes und passendes Modell fand. Danach überlegte ich entweder andere Lautsprecher zweckzuentfremden oder Tücherboxen herzunehmen. Diese gefielen mir aber ebensowenig. Am Ende fand ich gebrauchte Lautsprecher in schlichten schwarz. Optisch nicht unbedingt eine Farbe für Kinder, doch habe ich bereits Ideen diese durch eine "farbige Tasche" kindsgerechter zu gestalten.
Doch durch den Einbau in ein Gehäuse entstehen neue Probleme. Es kam die Frage auf, ob Anschlüsse nach außen gelegt werden müssen.
Da ich den Arduino Uno R3 erst einmal mit einem Netzteil betreiben wollte, entschied ich mich einfach dafür, die komplette Arduinofront herauszuführen. Somit musste ich in das Gehäuse nur für den 2 poligen DC Power Jack und den USB A Anschluss Durchführungen bohren.
Nachdem ich nun den Arduino im Gehäuse mit dem Netzteil verbinden konnte, mussten nun die weiteren Komponenten vom Steckbrett fest eingebaut werden. Die Idee war nun nachdem ich das Gehäuse betrachtet hatte, alles kompakt und ohne viel Verkabelung zusammen einzubauen. Das Problem war, wenn die Teile gesteckt sind, sich diese lösen konnten und danach kaum mehr zu verbinden waren, da das GEhäuse einfach zu kompakt war.
Zuerst aber kümmerte ich mich um weitere Durchführungen um am Ende eine einfache Montage zu ermöglichen. Diese sollten auch wohl überlegt und positioniert sein, da nachträgliche Korrekturen nicht mehr möglich waren. Natürlich müssen auch neue Taster her, da die Steckbrett-Taster nur eine Übergangslösung waren und nun funktionelle und ansprechende Taster für das Gehäuse benötigt werden. Da ich kein 3D Drucker für ein Komplett selbstgebautes Gehäuse besitze und ich die mikrotaster nicht mit passeden Tastenabdeckungen versehen kann, müssen einfache, von hinten gegen zu schraubende modelle her. Somit benötigte ich für meine drei Taster und die Kabel für den RFID Kartenleser noch vier weitere Bohrungen. Da der Kartenleser vorne zum Lautsprechera sein sollte musste die Tasten nach hinten rücken. Genau im Gegensatz zur Toniebox meines sohnes. Dies war einfach nötig um vorne bei der Wartungsöffnung genügend Platz für Arbeiten zu haben. Eine andere Möglichkeit blieb mir nicht übrig, da die Lautsprecherbox so fest verklebt war und eine alternative Wartungsöffnung nicht möglich war.
Als letztes musste ich nun überlegen, wie der DFPlayer Mini, der Wiederstand und der Arduino eingebaut werden sollten. Natürlich wollte ich sowenig Kabel wie nötig verlegen und dachte erst an ein Shield-System, mit dem ich den DFPlayer Mini auf den Arduino stecken konnte. DA kein Shield zur Hand war entschied ich mich mit einem Stück Lochrasterplatine zu begnügen. Auf diese Art und Weise zerschoss ich wohl ausversehen meinen DFPlayer und ich musste mir neue bestellen. Leider war das kein Einzelfall und ich frittierte in einem weiteren Bauabschnitt meinen Arduino Uno R3 Klon und dazu noch einen weiteren DFPlayer indem ich ein externe Powerbank teestweise angeschlossen habe. Nur gut, dass ich vorgesorgt hatte und noch welche als Ersatz auf Lager hatte. Schließlich konnte ich das Projekt wiie gewünscht beenden.
In dem Video kann man erkennen wie ich den Arduino nutzen konnte. Während ich die Musikbox so betrachtete war ich sehr zufrieden, konnte aber Problempunkte erkennen, die in der finalen Version hinderlich sein können.
Nachdem ich die Bestellliste der finalen Version zusammengestellt habe, war mir klar, dass ich ein Platzproblem im Lautsprechergehäuse habe. Ich musste weitere Platinen und vorallem einen LiFePo Akku in das Gehäuse einbauen. Deswegen habe ich die "Shield"-Variante wieder in betracht gezogen. Leider ist auf einem Shield nicht genügend Platz für den DFPlayer, den POLOLU Switch, etc und diese auch noch zu verbinden und so spiele ich mit dem Gedanken insgesamt zwei Shields zu stacken. Hierbei entsteht aber das Problem, dass die angeschlossenen Platinen, die ich sicherheitshalber nur "stecken" möchte ein weiteren Shield blockieren. Meine vorzeitige und noch nicht umgesetzte Lösung wäre, den ersten Shield nur mit dem DFPlayer zu bestücken und beim zweiten die Stelle an der der DFPLayer ist auszuschneiden. Um alles vorher genau durchzuplanen habe ich natürlich alles haargenau ausgemessen und in einer Skizze festgehalten. In der Theorie sollte das so funktionieren.
Coming Soon in 2024
Stay Tuned
Sie möchten mehr über das Projekt erfahren? Dann besuchen Sie die offizielle TonUINO Homepage.