Audio (WAV) Player mit Arduino

Hallo,

ich möchte mit einem Arduino Uno bzw. ProMini einen einfachen Audio (WAV) Player verwirklichen.

Ich möchte gerne auf einer SD Karte einige Audio Files ablegen. Ob jetzt im WAV oder ein anderes Format ist egal solange es ein einfaches Tool gibt um die Dateien am PC passend zu konvertieren. Als Qualität reicht bessere Telefonqualität, 8kHz/8bit Mono ist Minimum, 16kHz/16bit Mono wäre schon perfekt.

Letztendlich geht es darum bei bestimten Ereignisen (z.B. Taste gedrückt) das passende File abzuspielen, für einen Versuchsaufbau z.B. 5 Tasten an entsprechenden Digital Pins und 5 Files auf der Karte.

Google & Co findet diverse Projekte und Librarys zu diesem Thema. Die Frage ist nun, hat hier jemand konkrete Erfahrung in dieser Richtug und kann einen Tipp abgeben was gut und stabil ist?

Christian

Wie möchtest Du denn die Amplitudenwerte in Spannungen für den Lautsprecher umwandeln?

elektron_:
Google & Co findet diverse Projekte und Librarys zu diesem Thema. Die Frage ist nun, hat hier jemand konkrete Erfahrung in dieser Richtug und kann einen Tipp abgeben was gut und stabil ist?

Wenn Du nur kurze Soundschnipsel bis maximal 3 Sekunden Dauer abspielen möchtest (ggf. auch in Endlosschleife), brauchst Du nicht mal eine SD-Karte: Dann kannst Du 8kHz/8bit Mono auch aus dem PROGMEM-Speicher abspielen, also direkt aus Datenzeilen im Programm. 3 Sekunden = 3*8000 Bytes gehen auch aus einem UNO heraus.

Darüber hinaus benötigst Du eine SD-Karte. Die im Internet dazu kursierenden Projekte dürften alle mehr oder weniger funktionieren, da sie quasi allesamt Modifikationen davon sind:
http://elm-chan.org/works/sd8p/report.html
Das erste Projekt, das den Atmega-Code zu einer Arduino-Library gemacht hat und von dem es seitdem immer mal wieder Updates gibt, dürfte SimpleSdAudio sein:
http://www.hackerspace-ffm.de/wiki/index.php?title=SimpleSDAudio
Ich glaube, die Version 1.01 habe ich selbst mal getestet.

Ansonsten erfreut sich aber wohl auch diese Library einer großen Beliebtheit:
https://github.com/TMRh20/TMRpcm
Allerdings habe ich diese noch nie selbst getestet.

Das Problem beim “direkten Abspielen” ist allerdings (neben der bescheidenen Klangqualität): Damit ist der Arduino dann bereits fast ausgelastet. Also gedrückte Buttons abfragen, geht natürlich noch, aber da gleichzeitig noch viele andere zeitkritische Dinge im Hintergrund laufen zu haben, dürfte Probleme machen, insbesondere wenn diese interruptgesteuert ablaufen (z.B. Servoansteuerung).

Ansonsten brauchst Du ein Sound-Playermodul mit SD-Karte, von denen es viele verschiedene gibt: Mit Kopfhörerausgang (problematisch als Eingang bei manchen Power-Verstärkern), mit Line-Out Ausgang, mit Verstärker von 1 bis 3 Watt, mit unterschiedlicher Ansteuerung (I2C, SPI, Pinaktivierung, Seriell). Da müßtest Du Dir je nach Deinen Anforderungen und Geldbeutel etwas aussuchen.

Auch ich rate zu einem Audio-modul das das Audiofile wiedergibt und vom Arduino gesteuert wird. Grüße Uwe

Ich verwende sowas: WT5001M02-28P Funktioniert prima, macht das was Du willst, treibt direkt Lautsprecher - was will man mehr?

Hallo,

danke für die Infos, SimpleSdAudio scheint eine einfachste Lösung zu sein; Der Aufwand für einen Versuchsaufbau ist ja sehr übersichtlich... mal sehen ob es reicht.

Ein eigenes Modul gefällt mir auch gut wobei ich aber hier die Kosten so gering wie möglich halten möchte.

Christian

elektron_: danke für die Infos, SimpleSdAudio scheint eine einfachste Lösung zu sein; Der Aufwand für einen Versuchsaufbau ist ja sehr übersichtlich... mal sehen ob es reicht.

Ja, einen kleinen Piezo-Lautsprecher kann man sogar direkt über einen Arduino-Pin ansteuern, ohne dass man eine Verstärkerschaltung benötigt.

Aber beim SD-Kartenmodul würde ich lieber darauf achten, dass Du ein "SD-Modul mit Pegelwandler" kaufst, die kosten kaum mehr als die "LC Studio" SD-Module, bei denen Du als Pegelwandler mindestens diese Widerstands-Pegelwandlerschaltung brauchst, um die SD-Karte zum Laufen zu bekommen: http://www.hackerspace-ffm.de/wiki/index.php?title=Datei:SD_Card_Connection.png