Strobe Animated Art - Desktop Edition

by Morency in Workshop > 3D Printing

976 Views, 5 Favorites, 0 Comments

Strobe Animated Art - Desktop Edition

IMG_2872.JPG

This instructable was created in fulfillment of the project requirement of the Makecourse at the University of South Florida (www.makecourse.com)

Components

Parts used:

1 - Arduino Uno

1 - Unique Goods - 6V 12V 24V 6A DC Motor Speed Governor Adjustable Reversible Switch PWM 200W

Variable Speed Control reversing - CCM6N.

1 - 12V DC 6000RPM Torque Magnetic Mini Electric Motor

1 - NPN 2N2904 Transistor

1 - 3W White Star LED

1- 50k Pot

1 - 12V Power Supply ~1.5A Max

1 - Black Fixture Box

Find Your Art Piece

For this project I was able to find some pre-made designs from websites that host 3D printing files. A good one is https://www.thingiverse.com

The spinning object design is very important for this project to successfully create the illusion that it is moving. Try to choose an object that is circular and has a repeating pattern that is shifted either down or across the surface with each degree. Some keywords can be: flower petal and torus, bloom.

Attached is the bloom file that I used. It was originally made by a guy named John Edmark. He made an Intractable on how to make the art pieces that he was able to make.

Object Size

Decide what size you would like the object to be. This will be an important factor in choosing, the motor, LED, fixture size and printing size(if you decide to 3D print).

Ex) The bigger the object the stronger the motor and brighter the LED needs to be.

Motor Controller

The object will be placed on the shaft of a motor and will be spun. The motor would need to have enough torque in order to be able to properly spin the object at a various speeds and maintain the speed. The motor that I chose is able to reach 6000 RPM but this is overkill. For my project, the effect was able to happen when the motor speed was around 10%. So having a high speed motor is not needed. A rotation of 1000 RPM max would be perfect.

Motor
http://www.amazon.com/gp/product/B008595SC8?psc=1&...

I used a pre-made motor controller circuit. This made it easy to adjust the speed and direction of the motor.

Motor Controller

http://www.amazon.com/gp/product/B0100KN9IY?psc=1&...

LED

Using 3mm or 5mm LEDs or any small LEDs would would for this project but the effect would not be too prominent. Think about using a 1W LED or higher. I have seen some ways other people have done this project and they can even use up to 10W LEDs. Keep in mind that the brighter the LED, the more heat reduction that needs to happen, via heat sinks and fans. Else, the LED will be sure to burn itself out within minutes.

I ended up using a 3W White LED Star. I ordered these from eBay and shipped from Hong-Kong.

In order to create this effect the LED can be hung above your object to illuminate your object from the top or you can have the LED facing the from of the object. Either way, the effect will still be able to work.

For my version, I created a open-faced shadow box that would be able to block out surrounding light and the LED was hot-glued to the ceiling of the box, shining down onto the object. This method seemed to work well. I drew up the box in Inventor AutoCad and had the box 3D-printed. An easier way would be to just buy foam poster board or use particle board of some sort.

Hooking Up LED to Arduino

IMG_2868.JPG

Now that you have chosen your components, its time to start putting the puzzle pieces together!

In order to control the LEDs strobe frequency we will be utilizing the Arduino microcontroller to handle this. I used a potentiometer to send a variable voltage to the analog input pin on the Arduino. From here the Arduino will be able to send another voltage output from a pin ranging from 0-5Volts. This output range will be connected to the base of a NPN transistor. This transistor will be used to turn on and off the LED at different frequencies.

I used the on-board 5V output supply from the Arduino to power the potentiometer. The middle pin (wiper) is connected to the Arduino pin A0.

I used a separate 12V 1.5A power supply that I found in my garage. I cut the barrel jack off of the wire and attached the positive lead (white striped) to the collector of the transistor and the negative lead to the ground on the Arduino.

The Arduino is powered by the 12V 1.5A power supply.

Arduino Code

Arduino Code_LED Strobe Control.png

The Arduino is handling the controlling of the LEDs strobing frequency. It utilizes the analog pin A0 and the PWM Pin 12 in order to do this.

This program does not use an libraries, so it is a pretty simple code to mess around with.

In the code, I was able to print the 8-bit value (0-1023) that A0 is reading by using the "Serial.println();" function. This is handy to verify that the Arduino is indeed receiving a voltage at the "input" or A0.

The "output" of the Arduino is PWM Pin 12 and this pin is set to show 5V (HIGH) and also 0V (LOW) at different instances in the code. The value from 0-1023 will be stored in a variable called "sensorValue". This variable can then be used as a value place holder within the "delay()" function. This will create a timed (from 0-1023ms) delay between the OFF and ON times of the LED every time the code loops. I found that "delay(5);" seemed to be a great delay between the ON to OFF of the LED.

CODE:

int sensorPin = A0; // select the input pin for the potentiometer
int ledPin = 12; // select the pin for the base of the transistor that will control the 3W led.

int sensorValue = 0; // variable to store the value coming from the sensor

void setup() { // declare the ledPin as an OUTPUT:

pinMode(ledPin, OUTPUT); // assign the ledPin as an output

Serial.begin(9600); // set baud rate at 9600 for serial port }

void loop() {

sensorValue = analogRead(sensorPin); // read the value from the sensor:

Serial.println(sensorValue); // print the sensor value to the serial port screen to verify that the ADC is

working

digitalWrite(ledPin, HIGH); // turn the ledPin on, this will be connect to the base of the NPN transistor

delay(5); // stop the program for milliseconds: This creates the frequency variations when turning the

pot

digitalWrite(ledPin, LOW); // turn the ledPin off:

delay(sensorValue); // stop the program for for milliseconds: }

Putting It All Together

Make_Breadboarded Circuit.png
Screen Shot 2015-12-10 at 6.01.21 PM.png
Screen Shot 2015-12-10 at 6.02.12 PM.png
Screen Shot 2015-10-01 at 12.10.09 PM.png
IMG_2871.JPG
IMG_2872.JPG
IMG_2873.JPG

So now that you have all your objects picked, hopefully have your structures dimensioned out and your components breadboarded and circuit properly working. Its time to start building!

TIPS: A hot glue gun is your best friend.

For my project my object did not have a base to allow it to be attached to the shaft of the motor. So I used a jigsaw and cut a circle the size of the base of the object and secured it with hot glue. Be sure to make sure you have the object centered on the motor shaft. Next, connect the motor to the motor controller and verify that the object can spin with minimal to zero wobble. Next, wire up your Arduino and LED. I mounted the LED potentiometer to the front of the box. This box will hold all circuits, micro controller, motor and motor controller.

I hot glued my shadow box to the top side of the black box and hot glued the led light to the ceiling.

You will see two potentiometers on the front of my box: the left is for the motor speed (this pot is included already with the motor controller) and the right is for the LED circuitry with the Arduino.

I ended up making a custom Arduino shield using a blank perf board that was the width of the arduino and using my own male pins. This is a very easy way to hook up and take apart the Arduino at any time.

Other than that, be sure to mess around with the motor speed and strobe frequency and have fun!