• Hallo Zusammen, Aufgrund der aktuellen Situation setzten wir die Möglichkeit aus, sich mit Gmail zu registrieren. Wir bitten um Verständnis Das RCMP Team

Arduino Soundgenerator oder wie ein Projekt etwas ausgeartet ist

bernd-das-brot

Mitglied
Hallöchen,

Beim herumstöbern in Youtube bin ich über dieses Video gestolpert:


Das hat den Basteltrieb erweckt und da ich für meinen Springer Tug auch einen Soundgenerator haben wollte, wurde mal eine kleine Bestandsaufnahme gemacht. Ich hatte fast alles hier herumliegen, also hab ich mir den fehlenden SD-Kartenleser bestellt bestellt, bei github die Daten besorgt und das Teil nach Plan aufgebaut.

Alles hat auf Anhieb funktioniert, als unpraktisch habe ich allerdings das Aktivieren der zusätzlichen Klänge durch das auf Masse ziehen von Eingängen empfunden, was aber, wegen der Beschränkung der Prozessorleistung beim Einlesen von mehreren RC-Kanälen, wie ich mit der Zeit gelernt und gelesen habe, mit nur einem Mikrocontroller nicht anders zu lösen war. Preislich wäre ein zweiter Arduino keine übermäßige Mehrausgabe, das Modul wäre aber auch größer ausfallen. Um die Kontakte anzusteuern wird auch zusätzliche Hardware, in Form von Kanalschaltern benötigt, es erfolgte also wieder ein Griff in die Grabbelkiste und so wurde ein zweiter Arduino als Kanalschalter verwendet. Die Signalübertragung erfolgte erst, klassisch, über Relais, die später als vollkommen unnötig empfunden und wegrationalisiert wurden. Die Betätigung erfolgte dann durch die direkte Verbindung von Aus- und Eingängen über 1k Widerstände.

Das hat dann zwar alles funktioniert, allerdings kam die Problematik mit dem leistungsschwachen Prozessor und der Auswertung von RC-Kanälen doch wieder durch. Obwohl nur der Gas-Kanal ausgewertet wurde, kam es hin und wieder zu Aussetzern in der Tonwiedergabe, vor allem bei schnelleren Gaswechseln. Den Gas-Kanal auch auf den zweiten Arduino auszulagern erforderte aber ein Umdenken bei der Datenübermittlung und so wurden beide Arduinos mittels I2C gekoppelt. Um nicht dauernd sinnlos Daten zu übertragen, erfolgt eine Filterung und nur Änderungen werden übergeben. Das Ergebnis ist eine deutlich flüssigere Wiedergabe und die Erkenntnis, das jetzt ganz einfach noch zusätzliche Sounds abgespielt werden können, da zur Aktivierung ja keine zusätzlichen Eingänge in Hardware gekoppelt werden müssen.

Meine Steuerung hat sechs Kanäle und so wurde der ursprüngliche Sketch um weitere Sounds erweitert, da später mal ein Popeye den Kahn steuern soll, wurde auch der Titelsong verwendet. Das hat wiederum dazu führte, daß ich einen festen Sound durch die Zufallswiedergabe verschiedener, maritimer Lieder ersetzte, denn warum nur ein Lied abspielen, wenn die SD-Karte Platz für viele Lieder hat!

Durch Quählen meines Sohnes hat sich herausgestellt, daß das Abspielen der kompletten Lieder zu lange dauert und dadurch viel vom Gag verloren gegangen ist, ca. 30 Sekunden Abspieldauer haben sich als ausreichende Länge erwiesen. Somit war das Projekt für etwa 24 Stunden als fertiggestellt definiert worden.

rps20210417_034355.jpg

Eine Sache hat mich dann doch noch gestört: Beim Abspielen von Sounds ist die Wiedergabe des Motorengeräusch unterbrochen worden, da der Arduino kann nur eine Datei abspielen kann. Die Lösung dafür habe ich gestern umgesetzt und kam durch die Antwort auf die Frage: Warum nur zwei Arduinos mit einem Kartenleser verwenden, wenn man auch drei Arduinos mit 2 Kartenlesern nutzen kann? ;) Ich habe im Tug zum Glück keine Mangel an Platz, wenn man die kleineren Pro Mini nimmt, mehr stapelt und alles fest zusammenlötet, wird es noch kompakter, ich habs ausladend aufgebaut.

20210509_010020.jpg

Das einzige Teil, das ich beim ersten Aufbau fest verlötet hatte, war der Verstärker, der hat das Auslöten, trotz aller Vorsicht, irgendwie nicht überlebt und muß ersetzt werden. An sonsten bin ich jetzt zufrieden und trotz dem exzessiven Einsatz von Hardware ist "dem Gerät" immernoch unter 20€ Materialwert.
 
Eine Sache hat mich dann doch noch gestört: Beim Abspielen von Sounds ist die Wiedergabe des Motorengeräusch unterbrochen worden
Interessanter Ansatz mit den 3 Arduinos. :thumbsup:
Mein ESP32 Sound und Lichtcontroller kann das problemlos. Es ist auch keine SD Karte nötig. Es kann total bis ca. 50s Sound auf dem ESP32 gespeichert werden. Nebenbei steuert er noch die komplette Beleuchtung, Servos und den ESC.
 

bernd-das-brot

Mitglied
@TheDIYGuy999

Dein Projekt kenne ich natürlich auch, es ist für meine Zwecke aber zu sehr überfrachtet, es ist etwas für den Truck, nicht für's Schiffchen. Sicher, ein potenter ESP32 wäre nett, aber um deinen Code soweit zu verstehen, daß ich alles herauswerfen kann, was ich nicht brauche, vergehen noch ein paar Totensonntage! :ROFLMAO: Dann werden ja noch zusätzliche Bauteile benötigt, da der ESP mit 3,3V arbeitet, mit dem 5V Arduino ist das viel einfacher zusammengelötet.

Mit der Umwandlung der Sounds ins Header-Format habe ich mich auch schon beschäftigt, ich habe aktuell noch 11 Stück 30 Sekunden Schnipsel von Seemannslieder drauf, die zufällig abgespielt werden können, umgewandelt kommen da auch schon etliche MByte zusammen. Ganz ohne zusätzlichen Speicher würde ich wohl auch nicht auskommen.
 
Top Bottom