Inspiriert vom TonUINO habe ich ein ähnliches Radio gebaut. Da ich schon einmal eine Soundbox mit 16 Knöpfen gebaut habe, wollte ich hier ähnliche teile verwenden.
Aufbau
Auf der Rückseite ist der Hauptschalter, der die Spannungsversorgung mit dem Board verbindet. Oben sind drei Knöpfe um die aktuelle Geschichte anzuhalten oder das vorherige und nächste Kapitel zu wählen. An der Front ist noch ein Display und ein Drehknopf zum Einstellen der Lautstärke. Oben unter der großen Fläche ist der RFID Leser.
Das Gehäuse habe ich mit Fusion360 erstellt und mit meinem 3D Drucker in FlexPLA ausgedruckt. Zuvor habe ich einige Testdrucke gemacht, um zu sehen ob das Display oder die Box passt.
Elektronik
Open Smart MP3 Player
Dieses Kit kommt direkt mit einer kleinen Box die ausreichend ist. Man kann diese auch direkt anschließen und braucht keinen Verstärker. Programmiert wird der Player via UART. Leider ist hier das Handbuch sehr dürftig. Befehle sind sehr einfach zu senden. Leider gibt es kaum Rückmeldung vom Player selbst. So kann man z.B. nur den Status (PLAYING, STOP, PAUSE) abrufen. Spielzeit oder Dateiname kann man leider nicht abrufen.
Die Audio-Dateien werden auf einer microSD Karte abgelegt und müssen eine Struktur einhalten.
Ordnernamen: 01-99
Dateinamen: 001_audio.mp3
Die Dateien werden dann über die Nummern des Ordners und der Datei ausgewählt.
Laderegler
Damit das Radio portabel ist, habe ich 18650 LiPo Batterien eingesetzt. Diese sind ohne Schutzschaltung. Hier ist Vorsicht geboten. Der TP4056 Laderegler hat diese integriert und schaltet OUT- weg, wenn die Spannung in der Batterie zu niedrig ist. Der Ladevorgang wird angehalten, wenn die Spannung in der Batterie erreicht ist und zeigt dies mit einer LED an.
Zudem hat der Laderegler einen microUSB Anschluss. Damit lässt sich das Gerät sehr gut mit jedem 5V Ladegerät laden.
Es gibt das Board auch mit USB-C Anschluss.
Arduino Pro Mini auf EasyPCB
Das Board ist für MySensors gedacht. Jedoch benutze ich es auch für andere Projekte ohne Funkmodul. Hier ist der Arduino sehr einfach zu verlöten und kann mit verschieden Varianten als Spannungsquellen versorgt werden. Die Box ist direkt an die Ausgangsspannung des Ladereglers verbunden. Als “Booster” habe ist ein StepUp-StepDown Regler auf 3.3V verbaut.
Mini 2In1 DC Step-Down Step-Up Converter 1.8-5V to 3.3V
Lautstärke
Rotary Encoder
Die Lautstärke wird mit einem Encoder eingestellt. Die Drehung stell die Lautstärke ein. Mit der Taste kann ein Einstellungsmenü für eine RFID-Karte gestartet werden.
Display
0.96’’ OLED Display mit I2C
Als Display verwende ich ein einfaches 0.96 OLED Display mit I2C Verbindung. Das ist ganz wichtig, da für SPI nicht genügend PINs am Arudino Verfügbar wären. Als Grafik Bibliothek verwende ich u2g8.
RFID
Der RFID RC522 kann Karten mit 13.56MHz lesen. Dabei verwende ich nur die ID und schreibe nichts auf die Karte selbst. Die Reichweite ist mehr als ausreichend und man kann die Karte gut einen cm über dem Deckel halte und kann dennoch gelesen werden.
Software
Die Software bis auf die Bibliotheken habe ich selbst erstellt und basieren teilweise auf der Idee des tonUINO. Wird eine neue Karten auf den Deckel gehalten, kann diese über das Menü einem Ordner zugeordnet werden.
Ein Hörspiel muss in einem Ordner liegen und kann mehrere Dateien haben.
Version 1 mit EEPROM:
Die ID der RFID und der zugeordnete Ordner werden im EEPROM des Arduino abgelegt. Jede Karte braucht 12Byte. Bei maximaler Auslastung können 85 Karten gespeichert werden.
Version 2 Daten auf RFID
Für das Radio habe ich zwei arten von Karten gekauft. Mifare und Mifare Ultralight. Beide haben neben der UID noch Speicherplatz für Daten. Auf den normalen Mifare Karten müssen die Daten verschlüsselt abgelegt werden. Hier verwende ich den Standardschlüssel. Die Ultralight müssen nicht mit crypto beschrieben oder gelesen werden.
Nun wird der Ordner und die UID in den Nutzdatenbereich geschrieben. Auf diese Weise sind sehr viel mehr Ordner möglich und man ist nicht auf die Schreibzyklen des EEPROM angewiesen.
Damit diese Variante genutzt werden muss savetocard in main.cpp definiert sein.
#define SAVETOCARD
Bedienung
Abspielmodus
Im diesem Modus können die RFID Karten zum Abspielen genutzt werden. Vorher das Gerät auf der Rückseite einschalten und die RFID Karte auf den Deckel legen. Das Abspielen beginnt. Mit der roten Taste kann man die aktuelle Datei pausieren. Mit der gelben Taste wird der nächste Titel in diesem Ordner abgespielt. Mit dem blauen der vorherige. Der Drehknopf an der Front ist zur justieren der Lautstärke.
Programmiermodus
Um in diesen Modus zu kommen muss der Drehknopf gedrückt und gehalten werden, während eine RFID-Karte eingelesen wird. Dann kann man mit der gelben und blauen Taste der Ordner gewählt werden. Die erste Datei wird dabei immer abgespielt. Ist die gewünschte Datei ausgewählt wird diese mit dem roten Taster auf der Karte oder dem EEPROM gespeichert. Quellcode
Der Quellcode ist hier einzusehen: Geschichtenradio