Last Updated on 1. April 2022 by sfambach
Diese Zusatzplatine, für rund 6€, kann eine Vielzahl an Musikformaten abspielen und besitzt neben einem SD Karten Steckplatz auch ein Mikrophon, einen Kopfhörer Anschluss und einen Line In Eingang. Somit macht sie aus dem Arduino einen Vollständigen MP3 Player und ist zum Digitalisieren von Audiosignalen geeignet.
Fakten
- MP3 Chip VS1053 MP3
- Anschluss über SPI interface
- Kopfhörer 3,5 mm Klinkenanschluss
- Line In 3,5 mm Klinkenanschluss
- Microphon
- Power LED
- Spannungsregler AMS-1117 mit bis zu 800mA
- Stronversorgung über +5 VDC
- Christall 12.288 Mhz crystal
- SD Karten Slot
- Decodes formats Ogg Vorbis:
- MP3 = MPEG 1 & 2 audio layer III (CBR+VBR+ABR)
- MP1 & MP2 = MPEG 1 & 2 audio layers I & II optional
- MPEG4 / 2 AAC-LC(+PNS), HE-AAC v2 (Level 3) (SBR + PS)
- WMA4.0/4.1/7/8/9 alle Profile (5-384 kbps)
- FLAC verlustfreies audio über Softwareinterface (upto 24 bits, 48 kHz)
- WAV (PCM + IMA ADPCM)
- General MIDI 1 / SP-MIDI format 0
- Encodes formats Für das Microphon und Line-In Ogg Vorbis mit Software Plugin
- IMA ADPCM
- 16-bit PCM
Beschreibung | Kürzel | Pin |
---|---|---|
Aktivierung des Chips (low Aktiv) | CS | 6 |
Daten Chip Auswahl (low Aktiv) | DCS | 7 |
Data Anfrage Pin (Player fragt nach mehr Daten) | DREQ | 2 |
Reset des MP3 Chips (Low = Reset) | RESET | 8 |
Auswahl Pin für die SD Karte | CS | 9 |
Ausgehende Daten (Master Output Slave Input) | MOSI | 11 |
Eingehende Daten (Master Input Slave Output) | MISO | 12 |
Serieller Takt | SCK | 13 |
Anwendungsbereiche
- MP3 Player
- Audio aufnehmen
- Audio abspielen
- OGG Konvertierung
Ansichten
Programmierung
Es gibt eine Bibliothek von SparkFunk mit Beispielen die meiner Meinung nach ausreicht um die Platine zu testen. Deswegen habe ich an dieser Stelle das Rad nicht neu erfunden, sondern ein bestehendes Beispiel genutzt.
Bibliotheken
Die Bibliothek gibt auf github, leider entspricht sie nicht den Arduino Normen,
https://github.com/madsci1016/Sparkfun-MP3-Player-Shield-Arduino-Library
Datei entzippen und die Ordner SdFat und SFEMP3Shield in den Library Ordner kopieren.
Testprogramm
Als Testprogramm habe ich MP3Shield_Library_Demo verwendet.
Der Player ist über die Tastatur bedienbar h (+ Enter) zeigt das Menü. Ich habe einen Track auf eine SD Karte geladen und diese beim Start schon im Player gehabt dann kann mit f die Datei gestartet werden.
Probleme
Arduino reagiert nicht über Console
Beim Abspielen einer MP3 Datei reagiert der Arduino nur zögerlich oder garnicht.
Der Arduino scheint etwas zu langsam zu sein um das MP3 Board mit Daten zu versorgen. Eine Lösung hierfür habe ich leider nicht.
Sonstiges
Der VS 1053 kann noch einwenig mehr siehe hierzu auch das Datenblatt.
Fazit
Audio Aufnahme, abspielen von MP3s oder andere Audioanwendungen scheinen nun für den schwächsten Arduino kein Problem mehr zu sein. Schade dass der reguläre Arduino Uno ohne Wifi kommt, so ist ein Internetradio nicht ohne zusätzliche Anstrengungen machbar aber auch im Bereich des möglichen. Leider scheint der Arduino auch etwas zu langsam zu sein um mit dem MP3 Datenmengen klar zu kommen und gleichzeitig noch Aktionen zu ermöglichen. Um aber mal mit MP3s und dem arduino spass zu haben ist diese nettes kleines Board und mit seinen rund 6€ seinen Preis mehr als wert.
Verwandte Beiträge
- Arduino Nano 33 BLE
- Arduino Nano 33 IOT
- Preview – Arduino Motor Shield mit L298P
- Preview – Arduino Mega Logger Shield
- Preview – Prototyp Schild für Arduino Mega
- Preview – Arduino Nano Zusatzplatine
- Preview – Arduino Mini ATMEGA328P 328
- Arduino Ethernet Platine W5100
- Daten Logger Shield V 1.0
- NEO-6M GPS Logger Shield V1.0
Quellen
Mein GIT Ordner zur Platine
https://www.geeetech.com/wiki/index.php/Arduino_MP3_shield_board_with_TF_card
https://www.vlsi.fi/en/products/vs1053.html
https://tigoe.github.io/SoundExamples/vs1053-mp3.html
https://github.com/tigoe/SoundExamples
https://www.youtube.com/watch?v=a936wNgtcRA
https://github.com/pschatzmann/arduino-audio-tools
https://github.com/pschatzmann/ESP32-A2DP
https://funduino.de/mp3-shield-tutorial
https://github.com/mpflaga/Arduino_Library-vs1053_for_SdFat
https://www.arduino.cc/reference/en/libraries/sdfat/
https://www.elecrow.com/wiki/index.php?title=VS1053_MP3_Shield
Sparkfun MP3 Shield Arduino Library
https://www.elecrow.com/download/vs1053.pdf
https://draeger-it.blog/arduino-lektion-72-mp3-shield/
https://github.com/madsci1016/Sparkfun-MP3-Player-Shield-Arduino-Library
Die Beschreibung funktioniert nicht.
Schade dass es nicht geklappt hat. Habe es gerade nochmal bei mir probiert und funktionierte. Leider kann ich nicht einschätzen wo bei dir der Fehler liegen könnte.
Die Bibliothek entspricht leider nicht nur den Arduino Normen, sondern auch den Codevorschriften von C++
Man bekommt die Fehlermeldung:
libraries\Arduino_Library-vs1053_for_SdFat-master\src\vs1053_SdFat.cpp:296:34: warning: ISO C++ forbids converting a string constant to ‚char*‘ [-Wwrite-strings]
if(VSLoadUserCode(„patches.053“)) return 6;
Es funktioniert nicht.
Den Fehler habe ich neulich zum ersten mal unter Linux gesehen. Windows war zum Testzeitpunkt nicht so wählerisch. ALlerding habe die sourcen gerade nochmnal unter Linux compiliert und funktionierte. Für den Fehler gibt ne Menge Lösungen im Netz.