Hand tools and fabrication machines
The idea was to create a kid friendly music player that is tactile, intuitive to use and looks nice. It was meant to hang on the wall in my son's bedroom for him to play his music and audio books. This is the result:
Start playing one of five playlists by attaching the antenna of the flying saucer to one of the blue circles. Disconnect it for the music to stop.
Press the planet on the left to skip to the previous track, planet on the right for the next track.
Move the zipper slider up or down to adjust the volume.
The heart of the project is the LilyPad MP3 Player, which already contains an Arduino ATmega 328p microcontroller, MP3 audio decoder chip, micro-SD card socket and a stereo audio amplifier.
The default software wasn't what I needed, so I wrote my own. It can be found further down under 'code' and be uploaded using the Arduino IDE.
The mp3 files are read from a micro SD card.
The two planets are simple push buttons made with conductive fabric. The volume fader and the playlist selector are realised using voltage ladder circuits to reduce the number of inputs needed. The LilyPad MP3 board has only five inputs which wouldn't have been enough otherwise.
Like this, the project needs two digital inputs for the push buttons and two analog inputs for the voltage ladder circuits.
To enable trigger 2 and 3 as analog inputs, the solder jumpers SJ1 and SJ2 on the board need to be cut!
Furthermore, two speakers as well as a battery holder are mounted to the backing of the picture frame.
Here is a full list of the items I used:
- 1x Arduino LilyPad Mp3 Player
- 1x LilyPad FDTI Breakout Board (to be able to connect the MP3 board to a computer via mini usb cable and upload code)
- 1x Mini-USB Cable
- 1x Conductive thread
- 1x Conductive fabric
- 5x Small ring magnets
- 10x Resistors 1.5k Ohm
- 1x Pack of alligator cables (only needed while building and testing, but very useful)
- 2x Visaton Speaker Driver, 4W nom, 10W max, 8Ω (Other speakers would do as well as long as they fit between frame and wall!)
- 1x Ikea Ribba picture frame, 70x50cm (Again, other frames would do as well of course, but they have to be deep enough to take the speakers!)
- 1x 3M Command picture hanging strips (to mount the frame to the wall)
- 1x Battery holder for four AA batteries
- 1x JST Jumper wire to connect the battery holder to the LilyPad MP3 Player
- 4x AA Batteries. Preferably rechargeable of course.
- 1x Zipper with metal slider and plastic teeth
- 1x Velcro strip, sew-on. Length depends on size of frame as it goes around the edge to secure the fabric to the rear of the frame. For a 70x50 frame, at least 2.40m are required. A bit more is better, as it's also used behind the zipper to hold the fabric and prevent it from getting too stretched when the zipper is used.
- 1x Sheet of craft felt. The Colour doesn’t matter, this goes into the big push buttons.
- 1x Micro SD card. The mp3 files go onto that card and the LilyPad MP3 board reads and plays the files.
- 1x Coin that is attracted by magnets (not all coins are!)
Also: Fabric, thread, super glue, crimp terminals, blue tack, nuts, bolts, washers and a "Quickachips cooking mesh" from Poundland to protect the speakers ;-)
And a bunch of tools:
Hand-sewing needle, needle threader, sewing machine, drill, pliers, screw driver, soldering iron, digital multimeter, SD card reader, embroidery hoop, crimping tool.
The previous and next track buttons have two layers of conductive fabric on the inside with a small tab each as connectors. I accidentally cut one the tabs a bit short, as seen in the picture. It's actually easier to later sew the conductive thread on when they are sticking out a little. To keep them separate and thus from conducting electricity all the time, two layers of felt with a hole in the middle are between the layers of conductive fabric. The circuit is closed by pressing the middle of the button.
The volume control is basically a voltage ladder circuit and was inspired by this zipper potentiometer:
The fabric underneath the zipper is secured to the backing of the frame with a piece of velcro. This is to prevent the fabric from getting too stretched when the zipper slider is being dragged.
The flying saucer is using a voltage ladder circuit as well. Inside the antenna runs a piece of conductive thread. One end of the antenna is connected to an analog input of the Lilypad board. The value at this input changes depending on the switch that is closed with the other end of the antenna. There are five switches, one for each playlist. The loose end of the antenna is made of conductive fabric that wraps around a coin. This gets attracted to the small magnet rings which are sewn onto the fabric with conductive thread. The circuit is closed when the conductive fabric around the coin touches the conductive thread around the magnet ring.
The LilyPad board is powered by 4 rechargeable AA batteries.
It's programmed to go into sleep mode after 20 seconds if no song has been playing and there has not been any interaction. It wakes up when it detects a change of state on any pin. The most reliable way for this to happen is to press one of the planets. Changing the volume or selecting a new playlist might work as well, but it depends on whether the value on the pin has changed enough to be recognised as a change of state.
All files are stored on the micro SD card. Each playlist goes into one directory, whose name has to start with its number (1 to 5). One playlist can take a maximum of 20 mp3 files. The filenames don't matter as such, but as they are read in alphabetical order, it may make sense to give them a number prefix.
This was my first Arduino project and it was super good fun. I'm glad it's working and found its place in our house. That said, although it's very easy to use, it's not particularly sturdy. That's okay for us, as my four year old is generally rather gentle and understands he has to be a bit careful when using it. For a lot of younger kids it would probably not be that suitable though...I could see bits coming off or the frame getting crushed easily.