Hello everyone, and welcome to my Instructable! This instructable will show you how I made the first ever DIY Arduino controlled "LED Kaleidoscope"!
What is an LED kaleidoscope? Well, our traditional kaleidoscopes used 3 mirrors joined as a triangle with stuff like sequins and stolen cake decorations at one end, to create an awesome pattern when seen from the other end. My kaleidoscope uses 4 mirrors - forming a square. But wait, no cake decorations here- that's what the LEDs are for! They blink and fade and flash about to make a pattern at least 20x cooler than the old fashioned k' scopes.
Step 1: Background...
The definition of a kaleidoscope from wikipedia...:
"A kaleidoscope is a cylinder with mirrors containing loose, colored objects such as beads or pebbles and bits of glass. As the viewer looks into one end, light entering the other creates a colorful pattern, due to the reflection off of the mirrors."
Kaleidoscopes are awesome toys, and are always fun to make and play with. But admit it, you'll get bored with it pretty fast. Thats where my idea comes in - why not make a kaleidoscope with LEDs? With so many electronic toys available these days, why is the kaleidoscope lagging behind?
With LEDs you have unlimited possibilities - make customisable patterns, adding interactivity, changing patterns according to readings from sensors and so on...... This isn't just fun to play, it's fun to make and customize it too!
My kaleidoscopes square because making a compatible LED matrix board is simpler and more practical.
Step 2: Materials...
This isn't expensive at all, and materials are easily available.
- An Arduino board ( Mega2560 is the best)..http://www.radioshack.com/product/index.jsp?productId=12272877
- LEDs, any colour. For example, this one...
- General purpose PCB. http://www.radioshack.com/product/index.jsp?productId=12516741
- BC547 transistor- 3 of them.
- Jumper Wire. Here's a pack of hundred
PCB Strip Socket Connector (optional)
- 4 mirrors of dimensions approximately 17 x 3 cm
- Mountboard or cardboard
- Cyanoacrylate glue
- Lots of ice cream sticks
- Battery http://www.radioshack.com/product/index.jsp?productId=4356385
- USB Cable for programming
- Soldering Iron and associated tools and materials Here's a cheap but good one..
- Decent computer.
- Box cutter.
- At least 2 hands.
- Other tools may be required depending on how you plan to make it.
Step 3: How It Works..............
There are 9 LEDs, that are controlled with an Arduino using a technique called multiplexing. This article will make you understand the theory of multiplexing LEDs well. Ignore the circuit part though, it is quite different from this one.
Due to this, I only need 6 pins of the Arduino to control 9 LEDs. These LEDs are soldered on a PCB mounted at the back of the kaleidoscope.
How Kaleidoscope Works.
Mirrors, when put together, form multiple reflections of the same object. This makes the LED pattern awesome and cool. I didn't make a triangular kaleidoscope because making a suitable LED matrix for it is tricky and impractical. Hence the odd (but super cool) square.
I've controlled the LEDs with simple Arduino code (I'm a bit of a newbie), which you can hack.
Ice cream sticks are just there to make the kaleidoscope firmer and better looking.
And this thing is powered by a battery. Just so you know.
Step 4: Making the LED Matrix..
LED matrix is simple to make. The 'Matrix' here has nothing to do with Neo, Agents and Zion. Its just that the LEDs are connected in such a way that we can multiplex them. See the last diagram for the matrix's circuit. It's just like any other matrix. Columns are controlled by arduino via transistors. I used current limiting resistors of 270 ohms.
Soldering requires some experience. Making columns of solder isn't easy. You'll need lots of wires too.
I made the matrix board on such a way that I can use 4 pinned RGB LEDs too. However using this board for single LEDs is fine. You may make the board for either only the single LEDs (diagram 1), or the one compatible with both single and RGB LEDs (diagram 2 - the one I have done).
I didn't solder LEDs and transistors directly, but used the socket. It a good idea- you can modify or troubleshoot later easily. After soldering the sockets, put the LEDs. Remember to cut off a bit of the LED's lead so that it isn't too long. Add the transistors too.
Be sure to test LEDs to make sure connection are good.
Step 5: Making the Kaleidoscope's Body...
You're gonna need 4 mirrors and cardboard for this. Cut 4 strips of cardboard, as long as the mirrors but a little narrower(see pics). Then with the cutter, cut halfway through the cardboard along its length, in a way that it doesn't break apart, but so that it bends easily. You'll need the pics for this.
Now stick mirrors to the cardboard as shown. Wrap everything up to make the square-ish body of the kaleidoscope.
Don't worry if it isn't completely square; your k'scope will still make awesome designs!!!
Step 6: Making the Kaleidoscope Look Good...ish
Now cover up everything with ice cream sticks. You can use any other decorating material as well. Use PVA or cyanoacrylate glue to stick all sticks. Plan the pattern of the sticks so that they look good like I did in pic#2.
Then follow the pictures to see how I stuck sticks for the 'eyepiece' .
Step 7: Adding the LED Diffuser...
Normally LEDs are quite bright, and at close range, can hurt your eyes. Therefore I used a small piece of paper to diffuse the light, to make it softer and less bright, while making it more beautiful.
How do I make it?
If you have bright LEDs:
First, make a cube with the paper, as shown above. The dimensions must be a little less than the breadth of the mirrors, i.e. about 2.5cm cube. Stick it to the back of the kaleidoscope, on the opposite side of the eyepiece, with sellotape. Use insulation tape to block light from outside, so that the inside of the kaleidoscope is a bit dark.
If you have diffused LEDs:
Normal paper is a little too opaque, so for diffused LEDs I used tissue paper, stuck to the end of the kaleidoscope as in the pictures...
Step 8: Programming the Arduino...
Code is in the attachment below. Remember, change the 'ledpins' if pins 2,3, or 4 aren't PWM compatible; these pins are PWM compatible on the mega...
This code is only for one LED pattern... I'll upload more code for more patterns, and also code for taking input from sensors!
Step 9: Connections and Final Touches...
Connect each transistor base to each selected columnpin (8,9,10 in my code), and the led pins to well, the pins 2,3,4 or ledpins...Glue a base to hold the Arduino and matrix board. I put rubber bands to hold the Arduino in place. Fit the leds into the back of the kaleidoscope, connect power, upload the code, and voila, your kalediscope is ready!!!