Few months ago I bought, as a present, an mp3 player for children called hörbert. It is really well made and the sound quality is pretty good. I really suggest as a product. The only problem is that it is quite expensive, so I thought that it would be a nice and easy project for a Christmas present for my daughter.
It was already clear since the beginning that the project would be powered by an arduino uno.
So I started looking around in order to find a good way to play mp3 files with arduino and I found the Freaduino MP3 Music Shield.
It is the cheapest mp3 board I found.
The board contains an sd card slot, decodes "MP3,WAV,MIDI,Ogg Vorbis" and, they wrote, has an "Excellent sound quality with ±1dB Frequency Response". Also the board is well documented on the wiki. They provide even a source code example for a very basic player. The only doubt I had was that there was almost no other resources in internet about it, specially if compared to other boards.
Than was the time to choose a mono audio amp (I didn't want to spent time to build one my selfe).
I ordered two amps, one from China(left) and one from Sparkfun(right).
The Chinese version is a stereo amp, really cheap, but the sound was really full of noise.
The Spark fun version has a good sound quality and has all the necessary holes for solder in order to be easily integrate in you project.
The feature I really appreciate of the Sparkfun board is the possibility to really easily change the gain resistors, see Mono Audio Amplifier Quickstart Guide. I opted for two 10K resistors, so it does not come too loud when my 2 years daughter is playing with it.
The keypad is also a product from Sparkfun.
For the battery I chose a 2600mAh power bank, with two usb connectors, one for charging and one for power source.
All components are placed into a wood box I friend made for me and a piece of an old climbing rope is used as grab.
In the back I also added an usb port to easily charge the power bank.
Here the inside of the MBox:
The MBox is supporting SD card FAT 16 or 32.
The SD card contains 12 directories named starting from 0 to 12.
Every button of the keypad is associated to a directory.
A directory represents a play list and contains files (mp3 or wav) name with number, example: 1.mp3.
MBox plays cyclic trough the play list by simple increase a counter and search for a file with that name. Any time a button is pressed, if MBox is playing a different play list it simple switch to the associated play list and start playing file number 0 else simply play next file in order. The way how button work is not mine idea, is the way how the hörbert works.
My daughter is really happy and she is using quite a lot. I was really impressed to see how quick she was able to learn how to select the track she wants to play, Thanks hörbert.
Bill of materials:
- arduino uno
- Freaduino MP3 Music Shield
- Mono Audio Amp Breakout - TPA2005D1
- 2 - 10KΩ resitors
- Loudspeaker: Visaton FR 10 HM 8 Ω
- 2KΩ potentiometer
- Switch on/off
- USB power bank
- piece of an old climbing rope