Forum: Mikrocontroller und Digitale Elektronik Mp3 mit mikrocontroller abspielen


von Fabian F. (fabiii9)


Lesenswert?

Hallo zusammen,
ich möchte ein Projekt starten.

Projektbeschreibung:
Wenn ich auf einen Taster drücke soll ein kleines MP3 File von einer SD 
Karte abgespielt werden und über ein Kopfhörer-Ausgang ausgegeben 
werden.

Die Files sind nur ganz kurz. Sind nur Soundtracks mit 5 sec. Länge.

Wie mach ich das?

Als Mikrocontroller würde ich gerne einen Atmega8 verwenden.

Wie mach ich jetzt, dass das File abgespielt wird von der SD- Karte.

Habe schon etwas über Decoder gelesen.

Vielen Dank für eure Bemühungen
Gruß
Fabi

von Eumel (Gast)


Lesenswert?

1. Direkt Mp3 geht nicht, das schafft der Atmega nicht.
2. Wenn es auch wav Dateinen sein können schau mal hier:
http://elm-chan.org/works/sd8p/report.html

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Der Atmega8 ist in 2 Sachen unbrauchbar:
-zu wenig RAM, es müssen von der SD karte IMMER 512byte Blöcke gelesen 
werden
das wird mit den internen 1024bxyte schon etwas knapp
-MP3 Decoding lastet selbst einen 66MHz ARM aus, der Atmega is zu lahm

Lösung: Atmega324 nehmen und einen externen Decoder.

Als externen Decoder zB einen VS1011 oder VS1053b
-> http://www.fritzler-avr.de/HP/Librarys/VS1053_his.php

Fertig sieht das so aus:
http://www.fritzler-avr.de/HP/soundm.php

von Justus S. (jussa)


Lesenswert?


von Falk B. (falk)


Lesenswert?

@ Fabian Müller (fabiii9)

>Wenn ich auf einen Taster drücke soll ein kleines MP3 File von einer SD
>Karte abgespielt werden und über ein Kopfhörer-Ausgang ausgegeben
>werden.

>Die Files sind nur ganz kurz. Sind nur Soundtracks mit 5 sec. Länge.

>Wie mach ich das?

Fertig kaufen.

http://www.elv.de/mp3-sound-modul-msm-2-komplettbausatz.html

>Als Mikrocontroller würde ich gerne einen Atmega8 verwenden.

>Wie mach ich jetzt, dass das File abgespielt wird von der SD- Karte.

Kann man machen, ist aber schon einiges an Aufwand. Man braucht ein 
Software, die das Filesystem verwaltet.

http://elm-chan.org/fsw/ff/00index_p.html

>Habe schon etwas über Decoder gelesen.

VS1011 ist der Klassiker.

http://www.vlsi.fi/en/products/vs1011.html

Daten von SD-Karte lesen und in den VS1011 schieben, alles per SPI.

von Stephan B. (matrixstorm)


Lesenswert?

Fabian Müller schrieb:
> Die Files sind nur ganz kurz. Sind nur Soundtracks mit 5 sec. Länge.
>
> Wie mach ich das?

Vielleicht gar nicht als MP3 - sondern als WAV ??

8 bzw. 12 kHz 8Bit Mono PCM kann man ueber PWM ausgeben, und braucht 
dann nichteinmal einen DAC...

...Stereo geht ggf. auch...

...auf jedenfall sollte die SD reichen, Speicherplatzprobleme gibt es da 
bestimmt keine.

Auf Wunsch stell ich Beispielcode bereit.

MfG

von Fabian F. (fabiii9)


Lesenswert?

HAllo zusammen,
vielen  Dank für eure ganzen Antworten.

WEnn wav einfacher ginge, würde ich das nehmen.

Diese Tracks liegen in .wav und in .mp3 vor.

Ist es einfacher ?

Gruß
Fabi

von Stephan B. (matrixstorm)


Lesenswert?

Fabian Müller schrieb:
> Ist es einfacher ?


Wesentlich - und du kannst deinen ATmega8 nehmen.

Code folgt...

von Stephan B. (matrixstorm)


Lesenswert?

Hier der Code aus meinen frueheren Beitrag.

Beitrag "Re: AVR und großer Speicher"

Der Vorteil: Man braucht kein Dateisystem indem man von der SD direkt 
liest und spart enorm Flashspeicher.
Basiert aber auf dem Artikel 
http://www.mikrocontroller.net/articles/AVR_FAT32

MfG

von Stephan B. (matrixstorm)


Lesenswert?

Fabian Müller schrieb:
> Diese Tracks liegen in .wav und in .mp3 vor.

Aber ReSampling nicht vergessen.

Mein Code ist fuer F_CPU=16000000ULL und scheint derzeit 16kHz 8Bit Mono 
zu spielen...

...umwandeln mach ich bequem mit Audacity und speichere dann im unsigned 
PCM RAW (ohne WAV header)

von Frank K. (fchk)


Lesenswert?

Fabian Müller schrieb:
> Hallo zusammen,
> ich möchte ein Projekt starten.
>
> Projektbeschreibung:
> Wenn ich auf einen Taster drücke soll ein kleines MP3 File von einer SD
> Karte abgespielt werden und über ein Kopfhörer-Ausgang ausgegeben
> werden.

Gehe hier hin:

http://www.egnite.de/egnite-shop/vs1000-audio-module/vs1000-audio-module.html

Nimm Dir so ein Modul und spiele Deine Audio-Dateien als .ogg (.mp3 geht 
wegen Patenten hier nicht) auf eine Micro-SD-Karte. Du kannst das Modul 
über UART steuern, oder Tasten direkt anschließen.

fchk

von billigergehtimmer (Gast)


Lesenswert?

Bin ich gestern durch Zufall drüber gestolpert :

http://dx.com/p/mp3-player-module-w-micro-sd-card-slot-mini-usb-3-5mm-jack-156001

Mit ein wenig Glück könnte man vielleicht an die Kontakte unter den 
Knackfröschen Kabel anlöten.
Allerdings ist das Teil mit seinen 3.6 cm x 2.8 cm x 0.6 cm ein wenig 
Unhandlich, ansonsten hätte das Ding alles was gefordert ist.

von Leffe (Gast)


Lesenswert?

Hi die VLSI-Produkte kann ich nur empfehlen!
Habe selber mit einem VS1063 gearbeitet und eine Applikation, die 
Aufnehmen(Enkodieren) und Abspielen(Dekodieren) kann, entwickelt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.