Stecker Löten

Kinder MP3-Player (Teil 2)

Die Entwicklung geht voran. Eigentlich wollte ich ein hübsches Video zur weiteren Arbeit veröffentlichen, aber schon beim Einlöten der Kontakte auf das Arduino-Shield versagte die Aufnahme. Also fürs Erste weiter in Textform.

Stecker LötenWie schon erwähnt habe ich die mitgelieferten Steckerleisten und zusätzlich einige von Steve geschnorrte Buchsenleisten (um weiter von oben Zugriff die GPIOs zu haben) auf das Arduino-Audio-Shield gelötet. Dabei auch gleich der erste Anfängerfehler: Lötet man das ‚frei Hand‘, wird es kaum exakt rechtwinklig zum Board und passt dann nicht in die Buchsen des Arduino. Nächstes mal stecke ich die Stiftleisten vorher schon in die Arduinobuchsen und löte dann.

Beim Löten übersehen wurden die 3 Löt-Jumper, die auf dem Shield die serielle Schnittstelle von den normalen GPIOs zu den neuen Extra-Pins des Leonardo umschaltet. Das hat das Ausprobieren noch ein paar Tage verzögert.

Die Lautsprecher wurden erst einmal ‚fliegend‘ an den Verstärkerausgang gekabelt. Als Stromversorgung diente nur der USB-Port des PCs, es stehen also nur 500mA und damit bei 5V keine 2x3Watt Ausgangsleistung zur Verfügung.

Einige Probe-MP3s wurden auf die SD-Karte gespielt. Laut Anleitung des Audio-Shields werden nur 8+3 Zeichen lange Dateinamen unterstützt. Ob dies eine SW- oder HW-Einschränkung ist, weiss ich noch nicht. Zur Probe wurden sowohl lange als auch kurze Dateinamen verwendet.

Grob wurde dem Tutorial des Herstellers gefolgt, um dem Gerät erste Töne zu entlocken. Die Arduino Entwicklungsumgebung macht es einem aber extrem leicht. Die nötige Bibliothek kann über den Bibliotheksmanager direkt gesucht (nach „VS1053“, dem Audio-Chipnamen, suchen), heruntergeladen und installiert werden. Mit dabei sind Example-Programme, die bei richtig benannten Dateien auf dem Stick schon direkt Musik spielen.

Noch habe ich keine Buttons angeschlossen, der Test wurde also über die serielle Konsole (in der Arduino Entwicklungsumgebung) gesteuert. Eine Besonderheit des Leonardo ist, dass er sich bei jedem Reset neu als USB-Gerät anmeldet. Bis die serielle Konsole wieder Kontakt hat, hat man unter Umständen schon die ersten Loggings verpasst. Eine eingestreute Warteschleife auf die verbundene Konsole hilft hier. Es empfiehlt sich ein Timeout, damit das Gerät trotzdem auch stand-alone ohne PC funktioniert.

Serial.begin(9600);
while (!Serial)
    if (millis() > 5000)
        break;

Mit langen Dateinamen kommt das System dahingehend zurecht, als dass es die Daten trotzdem liest und abspielt. Beim Listing werden sie aber verkürzt z.B. als LANG~001.mp3 dargestellt. Damit kann ich leben.

Unglücklicherweise sind sowohl die SD-Bibliothek als auch die Audioplayer-Bibliothek eher rudimentär und nicht gut aufeinander abgestimmt. Die eine liefert Filehandles, die andere erwartet Dateinamen. Um mir zusätzliche Abfragen und String-Handling in C (brrrrr!) zu ersparen, habe ich kurzerhand die Player-Bibliothek ein wenig erweitert, um auch Filehandles zu unterstützen.

Nächster Schritt ist die Erweiterung der Software über den Beispielstand hinaus und der Anschluss der Buttons und Regler.

Ronnie Soak

Ronnie Soak

Hat viel zu wenig Zeit für 3D Druck, Python- und C++ Programmierung, Openstreetmap und amateurhaftes Elektronikgefrickel.
Ist dafür jetzt nach erfolgreichem fork ein Elternprozess.
Ronnie Soak

Ein Gedanke zu „Kinder MP3-Player (Teil 2)“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.