Auf der Suche nach einem praktikablen Ersatz für ein defektes MP3 CD Radio (MP3- und Radio-Funktion, kinderfreundliche Bedienung, NICHT Cloud-basiert) bin ich Anfang Januar auf das TonUINO-Projekt gestoßen. Vielen Dank @Thorsten für diese geniale Idee und allen anderen Mitgliedern dieser Community für die vielen Inspirationen und den Support (@stephan für die alternative Firmware, @Strandbummler für das Logo)!
Leider waren die Kernkomponenten zu dieser Zeit nicht lieferbar und so hatte ich genügend Zeit, mich hier zu belesen, diverse Anregungen zu holen und zu überlegen, wie das Ganze um eine Radiofunktion ergänzt werden kann, damit weiterhin nur ein Gerät zum Einsatz kommt.
Eines war jedoch sofort klar: “Ich will auch so einen Trichter haben!” Das konnte ich unserem Buben leider nicht mehr ausreden, nachdem wir die Gehäusegalerie gesichtet hatten und auf @HoratiusSteampunk TonUINO gestoßen waren
Anbei ein paar Bilder vom (fast) fertigen Gerät, welches ich heute zur Nutzung freigegeben habe. Vermutlich werde ich es so schnell nicht wieder zurück bekommen um die letzten Feinarbeiten auszuführen (Lautsprechergitter fehlen noch, Button-Beleuchtung sollte anders verkabelt werden, damit auch die Status LED (play/pause, weiß) an-/abgeschaltet werden kann).
@stephan kennt sich aus… das ist korrekt. Die Karte startet den Sendersuchlauf am unteren Ende des Frequenzbandes (87MHz) und stellt den nächst stärksten Sender ein. Beim Wiederauflegen setzt sich das “Spielchen” bis zum Erreichen des oberen Ende des Frequenzbandes (108MHz) fort. Ist auch dieses Limit irgendwann erreicht, startet der Suchlauf beim nächsten Auflegen wieder von vorne.
Das Feature habe ich erst etwas später auf Anregung unseres “Großen” implementiert, deswegen gibt es dafür noch keinen Sticker. Der Einwand, für den “Urlaubs-TonUINO” nicht mit statischen Sender-Karten arbeiten zu müssen ist durchaus berechtigt
Hilft dir die Dokumentation im Source Code, oder benötigst du noch mehr Infos?
FM Radio - TEA5767:
===================
This feature can be enabled by uncommenting the define TEA5767 below.
Connect TEA5767 fm radio module pins as follows:
SLC (radio) => A5 (Arduino)
SDA (radio) => A4 (Arduino)
To identify radio tags, a dedicated magic cookie (first 4 bytes) has to be set accordingly. The version number (fifth byte) has to be set to 0x01.
Frequency is stored in bytes 6 and 7. All other bytes are cleared (set to 0x00).
13 37 70 01 01 5C 02 00 00 00 00 00 00 00 00 00
----------- -- -- --
| | | |
| | | + frequency fractional
| | + frequency integer
| + version (currently always 0x01)
+ magic cookie to recognize that a card belongs to TonUINO
For those who need a short oneliner to convert radio station frequency to RFID data:
echo -n "Radio station frequency in MHz (e.g. 92.2): "; read -r freq; echo -n "Write the following data to your RFID card: "; printf "13 37 70 01 01 %0.2X %0.2X 00 00 00 00 00 00 00 00 00\n" ${freq%.*} ${freq#*.}
To create a special RFID tag that tunes in the next available station (search card), set frequency integer and fractional to 0. Search will start at 87 MHz, end at 108 MHz and wrap around, if the upper band limit is reached.
Die “Programmierung” der RFID tags/cards habe ich mit der Android App MIFARE Classic Tool (MCT) durchgeführt. Hier sollte auf jeden Fall darauf geachtet werden, dass nur der Sektor 1 geschrieben wird. Standardmäßig sind alle Sektoren zum Schreiben ausgewählt, das hat mich 2 Karten gekostet
Benutzerfreundlicher wäre es natürlich, wenn sich die Karten über den TonUINO selbst programmieren ließen. Ist vermutlich gar nicht so schwierig umzusetzen, denn einen Sendersuchlauf gibt es ja schon. Allerdings stellt sich mir die Frage, wie die Information über den gefundenen Sender (z.B. Frequenz und Name) bereitgestellt werden können. Stand heute böte sich dafür natürlich die serielle Konsole an, ggf. könnte zumindest die eingestellte Frequenz auch angesagt werden, ähnlich der Track/Album Nummern.
Hi Michi,
Danke für deine Antwort. Ich schließe daraus, dass an dem Tuner die relevanten PINS mit SLC und SDA benannt sind? und ich diese nur an A4 und A5 anschließen muss?
Ich habe das “Problem”, dass ich einen 5-Tasten Tonuino habe und bis A4 alle PINS belegt sind. Die Software bietet ja die 5-Tasten Option. Kann ich die Belegung in der FM-PINs oder die 5-Tasten Belegung einfach ändern?
das von mir benutzte Modul hat entsprechende Beschriftungen am pinout. Andere Module haben das teilweise auch, anderenfalls hilft das passende Datenblatt hier weiter.
Zur Pin-Belegung: der Arduino Kommuniziert per I2C Interface mit dem Radiomodule, daher kann hier keine Änderung erfolgen, denn die dafür vorgesehenen Pins sind fix, soweit ich das beurteilen kann. Anscheinend haben größere Bords 2 I2C Interfaces (Arduino Duo), damit hätte man dann eine Alternative.
Vermutlich lässt sich also eher die Belegung der Buttons anpassen…
hab mir jetzt einfach mal den Tuner bestellt. Mal schauen, obs was wird…
Achso noch eine Frage: der Verstärker und die Cubiekid Platine haben doch nichts mit dem Tuner zu tun, oder? Geht doch auch alles mit dem Standard und Thorstens Platine?
Naja. Mit der Platine geht es schon. Den Verstärker und den Mixer brauchst du natürlich trotzdem. Irgendwie müssen ja Player und FM Modul gleichzeitig an den Lautsprecher. Michi nutzt dafür von beiden Modulen den line out, geht dann auf einen passiven Mixer, dann auf einen externen Verstärker und dann zum Lautsprecher.
eyeyey, das wird ja doch komplizierter als ich dachte:see_no_evil:
Verstärker ist der PAM8403 wahrscheinlich, aber was ist ein passiver Mixer? Ist der selbst gebaut? Kann man sowas auch kaufen?
Steht so in der Teileliste ja. Der Mixer ist selbstgebaut, ebenfalls ja. Teile dafür sind auch in der Liste. Vielleicht postet @Michi dafür noch den Schaltplan. Alles in allem ist der Umbau schon etwas fortgeschrittener… Firmware ist auch ne andere, Audio Files ebenso. Also fang das bitte erst an, wenn du sicher bist das Ausmaß zu überblicken.