Light Painting Bot

by vkhare in Circuits > Art

2189 Views, 21 Favorites, 0 Comments

Light Painting Bot

BOt.jpeg

One paints with a brush, with pigments. And of course with one's imagination. But what about painting with knobs, gloves, and light?

Who says art is only for those who can hold a pencil and wield it with skill? Art, like light, is available to anyone who wishes to embrace it.

The Light Painting Bot enables you to play with light to create a uniquely captured shot, merging painting and photography with technology. The bot translating the inputs from the potentiometers and accelerometer into movement and colour in a manner not entirely predictable, and the product being a collaboration between two people, the painting is spontaneous and unique.

Tools and Materials

DSC02559.JPG
DSC02521.JPG
DSC02527.JPG
DSC02528.JPG
DSC02518.JPG

Electronics

  • At least one RGB LED
  • A variable power supply (depending on the motors specifications; variable because I found it worked smoothly only at a particular voltage)
  • Jumper wire and single stranded wire (loads and long)
  • Breadboard/PCB
  • 2 1k Resistors
  • 2 10k Potentiometers ( the value doesn't really matter here as long as its much bigger than the fixed resistors)
  • 1 Accelerometer (I used adxl345 - https://learn.adafruit.com/adxl345-digital-accele... )

Tools and supplies

Drill

Soldering tools (if using a PCB)

Lathe

Chisel and mallet

Wood screws and screwdrivers (not specifying any size as it doesn't matter as long as they are strong, you will need 7 screws excluding the ones provided with the motor)

Nails and hammer

Wood

Red Cedar (you need to keep everything apart from the base light depending on the servo motors)

Keep in mind the direction of the grain depending on the use of the wood and the direction they are screwed.

  1. Block of 15cm x 15cm x 4cm(height); to be shaped into a cylinder of 14cm diameter
  2. Block of 17cm x 10cm x 4.5cm(height)
  3. Board of 1cm(height) x 16cm x 16cm
  4. Reaper of 1cm(height) x 30cm x 2.5cm ( I used pine as red cedar wasn't available, which is as light)

Photography

Camera (any that allows long exposure shots)

Tripod

Optional

Gloves to attach the accelerometer on.

Woodworking: Cutting, Shaping, Grooving (Part I)

Turret.png
Cylinder.png
DSC02529.JPG
Motor1woodgroove.png
Motor1groove-2.png
DSC02530.JPG
DSC02534.JPG
DSC02531.JPG
DSC02533.JPG
DSC02542.JPG
DSC02568.JPG

On the lathe, shape the 15cm x 15cm x 4cm block into a cylinder with 14cm diameter and 4cm height. To do this you may need to attach a holder onto the wood to be able to hold the block in the lathe. Attach with glue, and let it dry under compression over four to six hours.

After shaping, sand paper the sides to give it a smooth finish, apply polish if you like.

Cut the cylinder diametrically into half. Further cut 1/2 an inch along the diameter (straight edge) of each half. Sand to make even.

Cut only one half horizontally to obtain two 2cm high semicircles.

Now for fitting a servo motor between these two semicircles. To do this make a groove, as shown, that will hold half the motor in each semicircle.

First draw the outline of the motor with the wire (refer to the image) on each semicircle (keep in mind that they go one on top of the other and thus have to be mirror images of each other). Then draw a line on the straight edge to mark the depth of the groove (half the depth of the motor). The fastest way to remove the wood is to drill, so depending on the drill bits available try and cover maximum surface. Keep in mind not to drill the full depth and keep around 2-3mm extra on both the sides and the depth to be safe. (If you do not have small enough drill bits for the slits, you can use a nail as a drill bit; it will be a bit time taking though). Next, you will need to chisel out the rest of the wood. (If you don't have a chisel you can try drilling more, but be very careful and steady as the bit tends to jump about, then sand paper to make even.) It doesn't have to be perfect as long as half the motor fits in snuggly. If the groove becomes too big then you can add some packing. Keep checking for a snug fit with motor.

To join the two semicircles, you will need to screw them together. To do this drill three holes (like shown, making sure the motor doesn't come in the way) in one semicircle through and through of a diameter slightly bigger than that of the screw. Drill a bigger hole (screw head) to counter sink the screw. On the other semicircle, drill a hole half way through (make sure to align the three holes two by two) of a diameter slightly smaller than that of the screw so that the screw self threads the wood. (To be safe try the drill on a waste piece of wood first.) Fit the two pieces together with the motor in between.

Woodworking: Cutting, Shaping, Grooving (Part II)

DSC02546.JPG
Motor2groove.png
Motor2woodgroove.png
DSC02547.JPG
DSC02550.JPG
DSC02549.JPG
DSC02557.JPG
Base.png
DSC02564.JPG
DSC02569.JPG

Similarly the second motor has to be fitted into the base, but instead of concealing the entire motor only the bottom of the body will enter ( as shown in the picture).

Cut the block of wood along the width, 3.5 cm in from the length; sand to make even. Like before, outline the motor on both sides, but this time don't include the 'screw holders' on either sides. Again cover maximum surface with drilling, and continue to chiseling out the wood. Once you make sure that the motor fits in properly, using the screws provided with the motor, screw the motor in, joining the two pieces.

Grind the reaper to make a semicircle on one end with its width as its diameter.

Woodworking: Assembly

DSC02561.JPG
DSC02563.JPG
DSC02569.JPG
DSC02564.JPG
DSC02566.JPG
DSC02570.JPG
DSC02582.JPG
DSC02572.JPG
DSC02579.JPG

Nail one of the horns (either six or four points, provided with the motors) onto the reaper, as shown. Then drill a hole of a diameter slightly bigger than that of the screw HEAD through the reaper for the screw (provided with the motor) that attaches the horn to the motor, so that the whole screw goes through the hole. Be careful not to drill the horn.

Do the same on the board. Nail the horn to the centre of the board and drill a hole for the screw.

Draw a 14cm diameter concentric circle on the board with a pencil. This marks the circle that the two cylinder halves have to cover. Outline their positions on the board, and mark two points where you will drill holes to screw the halves to the board. Mark the points first for the half with the motor keeping in mind that they should not interfere with the motor nor with the previous screws.

On the board drill the four holes through and through of a diameter slightly bigger than that of the screw. Using these holes as a guide, mark points on the halves where you will drill two holes halfway through of a diameter slightly smaller than that of the screw. On the half with the motors, drill the holes on the same side as the other screws so that none of the screws are visible from top (purely for aesthetics).

Screw the board to the motor in the base via the horn.

Next, screw the reaper on to the other motor (fitted in one half of the cylinder) via the horn. Attach it so that the 180 degrees motion of the servo is on the upper half, so that the reaper doesn't go below the horizontal plane.

Then screw the two halves onto the board.

Make sure you have fastened all the screws properly.

Electronics: Wiring and Testing

diagram.jpg

Before wiring the components make sure the Arduino nor the power supply are powered. And before powering the servo motors, measure the power supply output voltage and check that it falls in the specified voltage range; crossing the range risks the motor's functionality.


Use long wires for the connections to the servos and LED as they will be moving around. I would recommend soldering so that the contact is solid.

Because you will be connecting multiple things to the 5V and ground, you might find it useful to use a breadboard/PCB to short multiple pins.

Now for connecting the motors to the Arduino board. Pair up the ground and power pins of both the motors using jumper wires and a breadboard/PCB. Connect the ground pin to the ground of the Arduino which should be connected to the negative of the power supply output. Connect the power pins to the positive of the power supply. Connect the signal pins of the motors to pins D9 and D10 respectively.

Test the motors individually using the sweep example in the servo library in Arduino, don't forget to change the signal pins. Again, before powering the motors check that the power supply is outputting an acceptable voltage. Clear your workspace before testing it as it may rotate violently.

Connect next the RGB LED to the Arduino with the following connections (if soldering make sure none of the legs are shorting):

Anode -> 5v

R -> D3

G -> D5

B -> D6

Test the LED's colours one by one using the fade example and replacing the pins in the code.

To control the motors, you need to use potentiometers as knobs. Connect one end of each potentiometer to the 5V of the board. Then connect both middle pins to an analog pin on the Arduino board (A0 and A1, do not use A4 and A5 as they will be used to read the accelerometer). And connect the other two pins to ground via the resistors. To make it convenient you can superglue them to a piece of wood to look like a small remote control.

Test that the knobs work by using the analogInput example. Take a note of the minimum and maximum values for both the potentiometers; in the final code replace 0 and 1023 (in the map function) with these values respectively.

Connect the accelerometer to the Arduino with the following connections (you can either solder it directly or connect via a breadboard) :

VCC -> 5V

GND -> Ground

SDA -> Analog 4 (or the SDA pin)

SCL -> Analog 5 (or the SCL pin)

For reference - https://learn.adafruit.com/adxl345-digital-acceler...

To test the accelerometer download the two libraries provided, unzip them in the libraries folder of Arduino folder (usually in Documents). Run the sensortest provide under Adafruit ADXL345 Library. Check the values in the serial monitor. (for any problems go through this https://learn.adafruit.com/adxl345-digital-accele... ) Again take a note of the minimum and maximum values for all three axes. If you have never worked with an accelerometer, it might take some time getting used. In the final code replace -1 and 1 (in the map function) with these values respectively.

You can later glue the accelerometer to a glove which you can wear to control the LED, so keep the necessary length of wire.

Verify that your circuit matches with the one provided in the picture above.

Stick the RGB LED to the end of the reaper, with any adhesive.

Programming

These are the following relations between the interface and the bot.

Pot 1 -> Servo 1

Pot 2 -> Servo 2

Accelerometer X-axis -> R of LED

Accelerometer Y-axis -> G of LED

Accelerometer Z-axis -> B of LED

Download the code provided and make the necessary min/max changes.

If there are any problems isolate the components and test them individually to find the fault.

Setup

Place the bot in a darkened setting, so that the only source of light will be the LED. Fasten the camera on to the tripod and make sure that it frames the entire range of motion of the bot. Start your long exposure shot when you're ready.

Unfortunately I do not have any pictures available as of now, once I get them I'll post them up.