Thursday, June 14, 2018

LightLogo Kaleidoscope Project

I am pleased to offer instructions and material files for making a LightLogo Kaleidoscope! I have been thinking about doing this for many months and finally worked out a design. If you have any improvements on this design please do share!

Update: Please make sure you see the "observations" section at the end for things I learned making this project in different ways.

Cutting the parts

Here are files that can be imported into your vector program of choice (Illustrator, Inkscape, etc) for use with a laser cutter.
  • if you use Illustrator, just use kaleidoscope.ai
  • If you want to import svg files, use those
  • Cut 3 X kaleidoscope_bracket.svg on 1/4 inch mdf
  • Cut 3 X kaleidoscope_sides.svg on 1/8 inch plywood (or from mirrored acrylic)
  • Cut 1 X kaleidoscope_circles.svg on 1/8 inch plywood
  • To be sure the svg is retaining its dimensions, the shape for the sides should be 300mm X 114.31mm
  • If nothing is showing up when you import the svgs select all and they should. I was finding when I tested the import the stroke formatting was lost.
  • I use a Universal laser, which requires red hairline stroke but set yours appropriate to the machine.
  • NB you can use corrugated cardboard for the sides and circles pieces, even double up for the brackets. That's what I did for prototypes. It just won't last as long and it will be harder to make the mylar stay smooth.

Prepare the reflective sides

I am using a roll of mylar to make the reflective sides. If you can get ahold of a sheet of mirrored acrylic that would be the perfect surface, but mylar produces a good effect. Use a side piece of wood as a cutting guide to cut 3 pieces of mylar.

I tried several techniques to affix the mylar to the wood. I found taping with a strip of double sided tape at each end to work best. Unfortunately it comes off the roll with some wrinkles and creases but sometimes you can find a smoother area to cut from.

Glue up

Get some wood glue and glue A and a B together, making sure to line up the slots. 
Spread glue along the inner edges of the B piece and insert the sides.
Set the other B piece over the ends of the sides. Turn the whole structure over and add glue along the seam.
Insert the brackets into the slots in the circle pieces and add a little glue. 

3D printed parts

There are 2 parts to print. You will need the NeoPixel ring Arduino shield to keep the ring stable on the Arduino and its wires plugged in securely. This shield is a remix of one developed by the awesome engineer Tiff Tseng, as an improvement to my own first version. The diffusion cover is optional but I really like it. It provides greater stability for the NeoPixel ring and Arduino assembly and gives a more uniform look to the kaleidoscope on the inside. Clear filament is best for the diffusion cover. I attach the diffusion cover with a dot of hot glue at the corners.

Prepare the Arduino and NeoPixel ring

Solder the cut end of jumper wires into the Data Input, PWR, and GND holes of the NeoPixel ring from underneath the board.
Insert the other ends of the wires into Arduino pin 2 (Data Input), 5V (PWR), and GND (GND) pins going through the holes provided in the 3D printed shield. Press the ring over the shield until it clicks in tight, and press the shield over the Arduino headers so all feels tight. The ring needs a good consistent connection on all 3 wires or weird things happen. 

Get LightLogo working

Download LightLogo (v2e is the most recent as of this time). Unzip and look in the "light docs" folder, and follow the directions in "installation.txt" to install it. Also see the LightLogo Reference pdf for programming documentation.
Here are a couple programs I played with to get things spinning around:
Bands of colors:
to startup
ht
setbrightness 99
loop [
setc yellow
fd 8
setc blue
fd 8
setc white
fd 8
wait 50
fd 1
]
end

A single spinning dot:
to startup
ht
setbrightness 99
setc red
loop [
pd
stamp
wait 50
pe
fd 1
]
end

Affix the ring to the kaleidoscope

Set the ring against the diffusion cover or centered in the triangle opening if you're not using a cover. Orient the USB cord as shown so you can access the Arduino reset button.
Use rubber bands to attach the bottom cover C with the 3 slotted parts.

Watch the show!

It's awesome!

Observations

You can see from the image above that the mylar does not reflect the lights very smoothly. It's impossible to keep the material from rippling and in the end I had to see what it would look like with the perfectly smooth surface of mirrored acrylic.
So here is what that ended up looking like. I would highly recommend going with the acrylic if you can, unless the price is prohibitive. 
Not only can you see the reflections much more clearly but you can also look into the "distance" quite far, an effect that is really engrossing.
Once I saw this I thought the diffusion cover was detracting somewhat from the experience and now I wanted to see the neopixels in all their brilliance. When I tried this something unexpected happened. I turns out the acrylic causes multiple mini-reflections for each neopixel and the end result is a disconcerting diffusion that multiplies at each level of reflection. Here you can see the effect with a little demo:

Another thing you will notice with the acrylic is that the reflections separate in the distance and you start to lose the perfect symmetry of the reflections. This is due to the mirrored surface of the acrylic being at the back of the 3mm piece of plastic. So there is actually a 3mm gap between the two reflective faces at each vertex. So this detail can't be helped.

No comments :