• Internet-Enabled Light Painting Machine
  • Description: The Automated Light Painting Machine is a creation that allows me (and you) to replicate our favorite works of art in a new, digitally inspired fashion. At its most basic, it is a robotic device that moves RGB LEDs back and forth across a camera’s field of vision to create a light painting. The most interesting features of this machine are its Internet-controllability, smooth motion, and that it can be scripted for repetitive tasks, such as animations. These features allow it to be used by anyone in the world with Internet!

    Originally, I set out with the goal of wanting to give as many people as possible the ability to create light paintings, since not everyone has the tools to do so. The Automated Light Painting Machine became a project because it allowed me to continue exploring my artistic goals with photography as well as (hopefully) expose more people to light painting. Here is a quick description of how it works:

    -You submit an image file to the interactive webpage
    -The website saves your submitted photo
    -Your photo travels through the Interwebs to the Light Painting Machine in my house
    -The brains of the machine, a microcontroller called the Parallax Propeller (similar to Arduino), receives information about the photo
    -The Propeller then choreographs motor movement, DSLR camera triggering, and LED pattern timing in just the right way for the photo to be captured
    -A light-painted photo of your submitted image is then uploaded back to the website, and delivered back to you for you to enjoy!

    The particular LEDs used were Adafruit's 60-strip of RGB LED NeoPixels which were affixed to a vertical shaft mounted atop a sliding carriage. This carriage was part of a linear motion system that consisted of two copper poles as rails and some linear bearings to facilitate the smooth motion. This carriage is moved by a chain and sprocket system hacked together from recycled bike chains and old skateboard trucks. A Pololu DC motor with position encoder was used to power the motion and was controlled by the Parallax Propeller microcontroller. The Propeller also controlled the LED strip and was responsible for the precise timing and color patterns required to replicate the user-submitted images. Additionally, the Propeller toggled the camera's shutter remotely through a hacked Nikon IR trigger. The IR remote was connected to one of the Propeller's I/O pins so that it could dictate precisely how long the shutter should remain open to optimally capture the image.

    A Nikon D40 was used to capture the light paintings and the open source camera tethering software, digiCamControl, was used to upload the images from the camera to my desktop computer. Once the images were on the computer, a PHP script running locally would grab the new image from the computer and upload it to my website's server. Once uploaded, another PHP script on my website would provide a link to the user so they could see their light painting images created from across the world!
  • Detailed Instructions: Instructions:
    To replicate this project, you are going to need moderate hardware and software skills, and roughly $300 in materials. The materials cost may vary considerably depending on what components you already have, and what quality of materials you want to use. For instance, the camera is a pretty big cost that I’m not accounting for. Additionally, I encourage you to recycle and hack together whatever you have laying around for building the mechanical sliding system!

    In order to make your photos appear more “picture-esque,” you are going to want some method of moving the LED strip smoothly back and forth. As mentioned above, this was accomplished with a DIY version of a “supported rail” linear motion system. One thing you will want to consider is the framing of your photo. If you plan to sweep a large area, then you’ll want a sliding system that can match those capabilities.

    There are two main software components you will need for this project: computer/website code and microcontroller code.

    The computer/website code is responsible for getting image information to and from your website, and contains two elements- user image submission and light painting image upload. The former of these involves saving a user selected image to your website, and resizing it to match the dimensions of your light painting machine. The latter requires the freshly created light painting images to be uploaded to a local computer, recognized as being new by a script, and then appended to your website. Additionally, a report to the user where their image can be found is always helpful, so that they can enjoy their custom-made light painting!

    The microcontroller code is responsible for aspects of the image creation that require precise timing, i.e. shutter release, motor actuation, and strip patterning, in that order of events. Shutter release is carried out by using a microcontroller’s general I/O pin to supply a 5V pulse to the Nikon IR remote. Next, a signal is sent from the microcontroller to the motor to control its speed and duration of travel. Finally, the microcontroller sends information to the LED strip to individually address each pixel. Because of the support offered by the Arduino community, we recommend using one of their products for this project if you are new to the realm of microcontrollers.

    If you need some sample code to help get you going, check out the resources from my website below: