TonUINO bekommt Bluetooth

Hallo NoBI, klasse Lösung! Ich bin ganz ähnlich vorgegangen. Cool, dass ich hier noch Tips finde. Vielleicht kann ich ja trotzdem noch ein paar hilfreiche Details Beitragen.

Ich wollte eigentlich eine Logik in den Tonuino-Code einbauen, die das KCX-BT-Modul über die serielle Schnittstelle ansteuert, so dass man mit einem zusätzlichen Taster das BT-Modul ein- und den Verstärker des DFPlayer Mini ausschaltet. Das hätte den Vorteil, dass man das BT-Modul abschalten kann und den Stromverbrauch entsprechend reduzieren kann. Außerdem wird die Bedienung für die Kids einfacher, weil man mit einem einfachen Taster à la Flip-Flop zwischen BT und Lautsprecher umschalten kann. Zusätzlich könnte man über Long-Press oder Doppelklick des Tasters weitere Funktionen über die serielle Schnittstelle steuern, z. B. Koppeln mit anderen Geräten.

Die serielle Schnittstelle des KCX-BT-Moduls bietet einen Befehl zum Ausschalten (s. z. B. hier), eingeschaltet wird das Modul dann wieder, wenn am Pin 11 des BT-Moduls Masse anlegt. Mit der Nutzung von ein paar zusätzlichen Pins auf dem Arduino wäre solch eine Software-basierte Lösung grundsätzlich möglich. Ich habe allerdings in Kombination mit der von mir verwendeten CubieKid-Platine keine Möglichkeit gefunden, einen weiteren seriellen Port für das BT-Modul zu öffnen (Hardware Serial wird schon für Logging genutzt, SoftwareSerial für die Ansteuerung des DFPlayerMini, AltSoftSerial nutzt die bei CubieKid schon belegten Pins 8 und 9 des Nano, NeoSWSerial geht auf dem Nano nicht). Falls hier jemand einen Hinweis hat, dass das doch geht, bitte gerne melden!

Aktuell lasse ich das BT-Modul einfach dauerhaft eingeschaltet, der Stromverbrauch liegt ohne Kopplung bei ca. 45 mA. Vielleicht baue ich später noch einen Hardware-Schalter ein, der die Stromversorgung des BT-Moduls trennt, mal sehen. Eine LED zum Anzeigen des Koppelzustandes wäre ebenfalls nett.

Ich habe zum Experimentieren einen Nano mit zusätzlichen langen Headern nach „oben“ verlötet, so dass ich dort einfach Kabel mit Steckerleiste aufstecken kann. Für die Stromversorgung nutze ich die 5V- und GND-Pins des Arduino. Ich habe diesem Thread folgend eine Entkoppelung der Stromversorgung mit einem B0505S-1WR3 eingebaut, keine Ahnung, ob das wirklich notwendig war, bei Dir scheint es ja auch ohne zu gehen.

Das Audio-Signal hole ich ebenfalls über verlängerte Pins vom DFPlayer.

Für die Abschaltung des Verstärkers auf dem DFPlayer Mini habe ich die von Dir schon angerissene und hier oder hier beschriebene Lösung gewählt. Dazu habe ich den entsprechenden Widerstand auf dem DFPlayer Mini entlötet und eine Litze angelötet. Wenn an der Litze „high“ anliegt, schaltet sich der Verstärker ab. Das erschien mir aus Stromspargründen eleganter als den Verstärker dauerhaft laufen zu lassen und das Lautsprecher-Signal mechanisch zu trennen [edit: Nach nochmaligem Nachdenken bin ich mir gar nicht mehr sicher, ob das viel Strom spart, denn wenn das Lautsprecherkabel getrennt ist, wird ja kaum Leistung vom Verstärker abgerufen, oder?]. Das High-Signal kann man entweder über einen digitalen Ausgang am Arduino erzeugen, oder noch einfacher wie von Dir beschrieben über das Link-Signal auf dem BT-Modul.

Bei meinem KCX-Modul war es im Testaufbau notwendig, AGND und DGND zu verbinden, ansonsten wurde ein Störsignal auf dem BT-Audio-Ausgang erzeugt. Ob das beim Einbau im Tonuino noch notwendig ist, kann ich nicht sagen.

1 „Gefällt mir“