I really like the idea of vinyls, cassettes and CD's because a physical thing is tied to a piece of music. I wanted to take this idea into mp3 players and that is how this project came to be. When you slide in an acrylic 'record' on the music player, it turns on, recognizes the record and starts playing the music. Each song lights up the record in a different color.
You can change the code as you want for example, have some relaxing music go with blue light and workout music with red. I made a sleep record as well, which plays white noise and lights up the record in dim red light to act as a night light and acts as an alarm as well. What will you modify this to? An audiobook player, a podcast player, internet radio streamer?
Step 1: Supplies
Limit switches : Cherry DH2CB1PA (10x) I got these for 15 cents a pop at a hardware electronics store
Push buttons (3x)
3mm LEDs (2x: red and green)
WS2812b LED (NeoPixel) breakout boards (10x) you can use LED strips if you snip the LED's off
4Ohm 2W speaker
3mm Acrylic Sheets
Acrylic cement (or Acetone)
Heat Shrink tube
Orbital Sander with 120 grit sandpaper
Clamps and some foam or felt to avoid scratches
Tweezers (super helpful for cable management)
Step 2: Circuit: Overview
The music player works because of the microswitches that the acrylic 'record' sits on. The 'record' can either have a notch or not at the place of a switch. By making each record have a different pattern of notches, each record pushes a different set of switches which lets the player recognize the 'record'. It's a simple binary code. With 9 switches used for identification and the last switch reserved for power. So when the record is placed, it switches on the box as well. Pushing the power button switches on the circuit as well, but since no microswitches are pressed, a recorded message is played instead which describes how to use the music player.
Everything works off of a 3.7V battery without any voltage step up needed. The mp3 player is pretty neat because it not only acts as the audio reader but also amplifier. It communicates with the microcontroller over UART.
Step 3: Laser Cutting
The case is made out of 3mm Acrylic. The top is made of four layers cemented together with the LEDs, micro-switches and buttons sandwiched in the middle. The bottom is a box and the top four layers act as the 'cap' to this box. The bottom box houses the speaker, battery and rest of the electronics. The bottom is also the speaker grill and is made of several small circles cut out of the acrylic.
The file in Corel Draw format is attached, so there isn't much to this step. Except for the speaker grill piece where you will find that the small circles will have the inner pieces still stuck on. Just bang it on the edge of a table a few times and most of the pieces should fall off. The few that won't will have to be pushed out with a sharp tool like the point of a knife.
The two eye glass covers for one of the side panels is made out of clear clear acrylic to let LEDs shine through.
Step 4: Assembly: Overview
The top consists of five layers attached together with LEDs, microswitches and push buttons sandwiched in between. Pay attention to the numbering of pieces in the last photo of the previous step. The two piece 1's are glued together to form a 6mm piece, LEDs will rest in the square cavities of this piece. Piece 2 is glued below this piece and the LEDs will be glued to this piece. Piece 3 will be glued below that and both the push buttons and the microswitches will rest on this piece.
The bottom box has slots for the USB port, and SD card on one side and power switch on the other. The bottom is the speaker grill and because the grill is much larger than the speaker itself, this makes it a open case type of design.
Step 5: Assembly: LEDs Into LEDstrip
Because we need the buttons to come in between the LEDs, a normal LED strip won't do. Attach the LEDs with wires about 2 inches in length keeping in mind that the data out of one LED is connected to data in of the next. You will need 10 such LEDs in a strip
Step 6: Assembly: Prepare the Microswitches
The micro-switches I got had connectors already attached. Since we only need the normally open leads of the switch, remove the normally closed lead and strip the normally open and common leads. If you have just the switches without the connector, solder ~1 inch bare wire to the common and normally open end.
Step 7: Assembly: Top Frame
Using Acrylic cement or acetone join the two piece 1's then add piece 2 and 3 in succession. Make sure that the slots match up. Some error in placement is tolerable.
Step 8: Assembly: Adding Microswitches
Push the microswitches in the rectangular notches with a blunt tool like a flat-head screwdriver. Make sure to get the orientation right so that the 'button' end is in the middle. It's a pretty tight fit and I got the orientation wrong a couple times so I had to cut the wires and push the button back out.
Step 9: Assembly: Soldering Microswitches
Solder wires to the microswitches, following the circuit diagram.
Step 10: Assembly: Preparing Push Buttons
The rectangular acrylic pieces act as guides to stop the buttons from rotating which will rotate the symbol on the top as well.
Step 11: Assembly: Treating the Etched Surfaces
Since we are going to sand the acrylic to a matte finish later on, it would be nice to have the etched parts be glossy to stand out. To do this, just put some acetone in the etched parts and let it evaporate.
Step 12: Assembly: Finishing the Top
Push the LEDs through the slots at the bottom and glue them on. Place the buttons in their position and slide the wires through the small slot. Place the top cover and glue it on.
Step 13: Assembly: Preparing the DFPlayer
Snip off the legs off of the DFplayer
Step 14: Assembly: Bottom Box
Add the 'lenses' to the eye glasses and glue flattened LEDs to the other side. Glue the switch to the slot on the other side. Cement the sides together to make the box. I'm using some scrap metal to hold the sides in place while the cement evaporates.
Step 15: Assembly: Electronics
I'm sorry for not having more photos of this, but mainly you just have to follow the circuit. There are two important deviations though:
*Vusb of teensy has to be disconnected from Vin and connected to Vin of the LiIon charger instead.
*The smd leds of the LiIon charger have to be removed and the leds on the side of the case used instead. This is so that we can see the charge status of the battery.
Step 16: Assembly: Capping Off
Clamp the top and bottom pieces and use generous amount of acrylic cement to attach the two. At this point we're technically done, but I hate the gloss finish, so let's remedy that.
Step 17: Assembly: Matte Finish and Adding the Feet
I hate the gloss finish, so I closed the ports with some felt, hotglue and plastic and sanded everything with an orbital sander and 120 grit sandpaper. The matte finish came out nicely, I think. I did another round of sanding with 180 grit after adding the feet.
Step 18: Assembly: Done!
There, isn't this so much better than the gloss.
Step 19: Records
Now that we have a record player, we just need some records to play. The records are made out of laser etched 3mm clear acrylic. They have notches at the bottom which identify it to the player.
The naming format for the files explained pretty well in the pdf attached.
Each record pushes atleast two microswitches. The power microswitch on the extreme right and atleast one of the numbering microswitches. The folder number for a record is arrived at by converting the 9 digit binary code into decimal. For example, the Pink Floyd record pushes the third numbering microswitch and none of the others so it is 000000100 in binary or 4 in decimal. So Dark Side of the Moon songs go in Folder number 4. Similarly the Panda is number 8 and The beatles number 1.
Step 20: Program
Arduino code attached.
Step 21: Modify
You can make more records, change the behavior of the player for different records or do something I haven't even thought of. Feel free to reach out if you have any questions.