Intro: Active Music Party LED Lantern & Bluetooth Speaker With Glow in the Dark PLA
Hello, and thank you for tuning into my Instructable!
Every year I do an interesting project with my son who is now 14. We have built a Quadcopter, Swimming Pace Clock (which is an Instructable as well), a CNC enclosure bench, and Fidget Spinners.
With winter upon us, and a couple camping trips coming up, we thought it would be fun to make a fun camping lantern, but we wanted to take it to the next level, so decided to add a couple extra's. A Bluetooth Speaker for music, as well as a few different party light modes. It also has a USB charging port for your phone :)
It is pretty large at 14" tall, 5" wide, and has 90 LED's in the lantern lamp section. Most of the weight is in the bottom so it sits well, and the handle on top makes it easy to carry around. The Glow in the Dark PLA top also is a nice touch.
The Lantern has 6 modes and the cool part is you can also program your own. If you come up with something cool, let me know so we can incorporate it into ours!
There are two videos attached, the first one is just me whistling to show the reactive lights, It looks much cooler with actual music playing but for copyright reasons I cant show it with music... The other video shows the color cycling mode, and video doesn't do it justice either.
If you like this instructable please vote for it in the contests we entered!
Here are the different modes we created for our Lantern:
- 100% RGB light
- 50% RGB light
- 25% RGB light
- Color cycling
- Active Party Mode 1- Ramps colors with 3 level changes of colors (Blue at low volume, Green at mid, and Red at high)
- Active Party Mode 2 - Ramps colors based on amplitude of audio.
- A bluetooth Speaker that you can take apart. Ours was won as a prize from the Instructables Microcontroller contest. It is a 3W Mono Bluetooth speaker and includes a USB Charger port. Here is a link to the website where you can purchase one but they are pretty expensive. On the plus size if you use it it will fit perfectly in the build. The sound quality isn't that great and that is why we decided to use it. If we ruined it we wouldn't be upset, take it apart with care, first remove all the screws, then carefully use a dremel tool to cut the electronics from the remainder of the case. https://www.promotionalspeakers.com/evrybox
- Waterproof 5050 LED Light strip: https://www.amazon.com/gp/product/B0085IXEYS
- Arduino Uno: https://www.amazon.com/gp/product/B01AR7YJ3O
- Adafruit Electret Microphone Amplifier: https://www.amazon.com/gp/product/B00K9M6S1O
- High Capacity 3S 4000mAh 11.1v Battery: https://www.amazon.com/gp/product/B0087Y7V3U You will also need a charger for it... The original use for the battery was in the Quadcopter we built a couple years ago.
- 3 MOSFET Transistors: https://www.amazon.com/gp/product/B0087Y7V3U
- 20 Screws: https://www.amazon.com/gp/product/B01CTEF4YG
- LED Power Switch: https://www.amazon.com/gp/product/B0187WJWKG
- 2 Momentary Switches: https://www.amazon.com/gp/product/B01MRP025V
- Glow in the Dark PLA: https://www.amazon.com/HATCHBOX-3D-PLA-1KG1-75-GL...
- Bullet connectors for battery
- 1k resister
- Breadboard, and Jumpers for testing
- 3D Printer & PLA filiment
- Philips head screwdriver (small with long shaft)
- Soldering iron and Solder
- Dremel tool
- Super glue
- Drill with large drill bit
Step 1: 3D Print the Case
We printed the case components in PLA with 2 different spools of material. Red PLA for the bottom and middle layers, and for the lantern inner, outter, top and handle pieces we used glow in the dark PLA. The lights infuse the glow in the dark material with a lot of light so it glows nicely after we shut the lights off.
There are 7 major components to print, the lower base, upper base, battery drawer, light base, light insert, light top, and the handle. One minor piece, which are the switch clips to hold the 2 switches in the light base. We used super glue on them without gumming up the switch which was a problem when we just tried to glue the switch in place without the clips.
Step 2: Assemble the Lower Base Electronics
Some of the components need to be assembled within the case and wired through so everything fits and is isolated.
In the bottom layer we put the Bluetooth speaker the Arduino/Lighting LED power switch, and the microphone. You will need long wires and a switch that you will solder onto the main switch on the bluetooth speaker so it can be run up to the light base. The wires to the power switch will be run up to the upper base so they can connect to the battery and Arduino. There also need to be 2 wires run down from the Arduino to the microphone.
Note that the next three steps are somewhat intertwined. Just make sure the wires get where they need to be before you solder everything together :)
With the pins of the power switch towards the top of the switch and pin numbers from left to right starting at 1 and ending with 5. Note: I don't have a picture of the final switch wiring, the blue and white wires in the picture were temporary before we actually properly color coded them and finalized the switch.
With the above in mind, here is how we wired up the LED Power Switch:
- 1 Battery - & Arduino -
- 2 & 5 Arduino +
- 3 Battery +
Now you can take some small screws and fasten the microphone to the side or bottom of the base. We also used super glue to fasten the battery to the bottom of the base so it does not move around.
Step 3: Assemble the Lantern Top
In this step we will attach the lights to the inner lantern case, then attach the outer case and solder the light wires to the MOSFETs and test things out. We tested the Arduino wiring before this step and you can too if you like. It is always fun to see things light up before assembling everything.
To attach the lights to the light inner base we measured it first by wrapping the lights around, and got 30 segments (90 lights). Then we cut the strip and removed the backing. We started winding the the lights between the struts at the bottom of the base so there was room for the wires and soldering afterwards. Then we just kept winding tightly around in a spiral until we hit the top. You may want to have an extra segment or two just in case and cut it once you get to the top.
After we put it down in that manner, we put super glue on the bottom and top just to ensure it would stay in place because the glue on light strips is notoriously bad. There is not much clearance between the lights and the thin outer shell on purpose to ensure that if the backing glue does fail that the lights will still be properly contained in the lantern.
Now just put the inner shell with the lights inside the outer shell and use screws to connect them together and keep things in place.
Step 4: Assemble the Upper Base Electronics
The upper base contains the Arduino, MOSFETs, and Battery.
We wired the MOSFETs with the heat syncs to the back when laying down with the legs towards us. At first for testing we used a breadboard, then we took them out and just soldered everything together for better durability.
There is space for the breadboard, but it will be a tighter fit than just soldering everything together and then taping it up with electrical tape which is what we did.
Please see some of the attached pictures in which I tried to show how we put things together. The previous lower base step has pictures of the microphone.
Here is how we hooked up the Arduino and wired the connections to the various components:
- Microphone Output to pin A0
- Mode Select Button to pin 12 -> resister -> Ground and Button pin 0
- Red output to pin 3 -> Left pin Red MOSFIT
- Green output to pin 5 -> Left pin Green MOSFIT
- Blue output to pin 6 -> Left pin Blue MOSFIT
- 5 volts to Mode Select button pin 13.3 volts to microphone
- VIN to the 12 volt wire of the lights
- Red MOSFIT Center -> Red Light wire
- Green MOSFIT Center -> Green Light wire
- Blue MOSFIT Center -> Blue Light wire
- Ground to Microphone, and to the MOSFIT right pin (I ran one wire from ground for all 3 and the switch)
- Ground from the power switch to the Microphone ground
We un-soldered the power connector on the Arduino and soldered our wires directly to the circuit board, as you can see in the first and second to last picture here.
Now you can attach the upper base shell to the lower base shell.
The final step is to take some short screws and fasten the Arduino to the side of the shell. There is a flat spot designed just for that purpose!
If you need more help with the wiring, check out these Links:
- Mode button: https://www.maxphi.com/push-button-switch-interfac...
- MOSFET LEDs: https://learn.adafruit.com/rgb-led-strips/usage
- Microphone: https://learn.adafruit.com/adafruit-microphone-am...
Step 5: Program the Arduino
Now comes the easy part of programming the Arduino. Connect the Arduino to your PC using the USB Cable, and make sure you have the Arduino software installed (there are plenty of tutorials on this step so I will skip it here).
Download the lantern.ino from this page, and upload it to the Arduino. Feel free to change it to suit your tastes/needs.
I found one glitch with the microphone, I am sampling at 40mhz and once in a while it would stall out and give no data which would cause a spike since the default min and max values are 0-1023. I filter for this case and just use the last amplitude when it happens which made the party modes much better. Maybe I just got a partially defective mic...
I also left some of the debugging Serial.print statements in (but commented out) so you can move them around if you are playing with changing the code.
Step 6: Enjoy the Final Product!
It works really well and we were pleasantly surprised at how cool it looks. Everyone we have showed it to has been very impressed, and we hope you enjoy yours as much as we do!
Step 7: Learnings...
You will probably want to turn down the gain on the microphone, it gets pretty loud in the base, and we found that if it the audio gets cranked up past about 75% of iPhone max, that the microphone freaks out and reboots the Arduino. If anyone knows why or of an easy fix, I would love to hear about it.
The cabling was somewhat messy, so if we had it to do again, we would have thought more about how to run cables between the layers so they can't interfere with the battery box moving in and out. It works for us but we just need to be careful removing it and putting it back in.
If we had to do it again, we would have also used a better bluetooth speaker and a stereo speaker setup. I ran out of time to program the 2 party modes, and they could do with some more tuning. The effects are hard coded values and with more time I would have sampled the song as it played and adjusted the ranges based upon that songs volume data.
I would also have built in a port or stuck the cable out so programming the Arduino wouldn't require taking it apart
I did the programming with the light top off and no handle and put them side by side with the light top upside down. They matched up well height wise so it was easy to test that way.
The glow in the dark PLA for the top definitely worked out great and I would recommend it to anyone making the project.