Suncatcher - Projecting Rainbows by Spinning Dichroic Glass in Front of a Light

by adkeswani in Circuits > Art

45 Views, 1 Favorites, 0 Comments

Suncatcher - Projecting Rainbows by Spinning Dichroic Glass in Front of a Light

Screenshot_20260509-174214.png
  1. Inspired by: DEVIATION by @studiosvensauer.
  2. Uses a motor to spin dichroic glass in front of a flashlight, causing it to project rainbows.
  3. Includes an ultrasonic sensor that reverses the motor and spins faster when someone walks in front of it. Just for some minimal interactivity.
  4. This Instructable will be less of a step-by-step, and more an explanation of the parts, because I think people might use the concepts rather than trying to duplicate this project exactly.

Supplies

  1. Ultrasonic sensor (e.g. https://www.amazon.com/dp/B01COSN7O6)
  2. Stepper motor (e.g. https://www.amazon.com/dp/B01CP18J4A)
  3. Light (e.g. https://www.amazon.com/dp/B0DCB2P32H, see Step 1 below)
  4. Dichroic glass (e.g. https://www.amazon.com/dp/B0BHHVVWR7)
  5. An MCU (e.g. https://www.amazon.com/dp/B0CL6GGT7Q, though it's probably overkill)
  6. 3D printer and ideally white filament (to reflect the colors better)
  7. Zip ties
  8. Small bolts (e.g. https://www.amazon.com/dp/B0FG2CC91J)
  9. USB cables for light and MCU (depends on how you are powering them)

The Light

  1. Initially, I tried to use a USB spotlight, but it did not work. Whatever light you use (e.g. the one in the Supplies list) must meet 2 requirements:
  2. High CRI (Color Rendering Index): This (novice paraphrasing) means that it emits light energy evenly across the entire spectrum, which is necessary if you want to split the light up into a rainbow.
  3. Collimated beam (e.g. a flashlight with a TIR lens, like the one in the Supplies list): Without this, the light is scattered (which creates multiple colors that overlap and muddy each other) and spills (drowning out the rainbow)

The Crystal (Dichroic Glass) Holder

crystalHolder.png
  1. Initially, I tried to make the part that holds the dichroic glass by matching its shape (a cuboctahedron), but getting a precise fit was difficult
  2. Instead, I just went with a "platform" that fits onto the motor shaft, and then has holes through which I threaded zip ties that hold the glass down onto the platform. Attached image is upside down, the way it was 3D printed.

The Flashlight Holder

flashlightHolder.png
  1. Cylindrical holder with gaps for the power button and USB socket
  2. Has 2 arms to attach it to the projection surface. It's not the most structurally sound, given that the projection surface only has 2 or 3 layer thick walls and the flashlight is heavy, but it worked.
  3. The holder also blocks most of the flashlight's beam, leaving only a small hole for light to pass through. This is to prevent light from spilling out around the dichroic glass and flooding out the rainbow.
  4. The flashlight has a clip the holds it inside the holder, and the USB cable also blocks it from sliding out.

The Projection Surface

projectionSurface.png
  1. 4-piece conical projection surface. Went with a 45 degree angle so that it could print without much infill. I used the Lightning infill pattern, since the projection surface doesn't need to support much weight, but it does still need a top surface, so vase mode wasn't appropriate.
  2. Initially tried to make a spherical projection surface, but that would have required more infill due to the shallow angles at the bottom of the sphere.

The Motor Mounts

motorHolder.png
  1. The motor has holes that allow it to be mounted with bolts, so I 3D printed a couple of mounts
  2. The mounts are bolted onto the arms of Flashlight Holder such that the dichroic glass is positioned just in front of the flashlight
  3. Instead of being a single hole, the mounts have "rails" to allow the position of the motor (and glass) to be adjusted
  4. I'd probably redesign these to be smaller because they block the rainbow a bit

The Code

  1. Note: I did use AI to write this code, so it is a bit spaghetti-ish
  2. The code does the following:
  3. When the ultrasonic sensor detects nothing, the motor spins in one direction for a while, then switches directions
  4. When the ultrasonic sensor detects something within a certain distance, the motor switches directions and speeds up while it still detects it
  5. The motor does "bounce" a bit when someone is near the edge of the detection range

Downloads

Assembly

  1. I used tape to hold together the pieces of the Projection Surface. This is fine, since there isn't much load being supported, but I'd probably use bolts or some sort of joint in future.
  2. Bolts are used to secure the Flashlight Holder to the Projection Surface without nuts. Again, this is fine since there isn't much load, but it's not ideal given how thin the top surface of the Projection Surface is.
  3. Zip ties are used to secure the USB and stepper motor cables onto the Flashlight Holder's arms