Light Painting With a Raspberry Pi LED Robot





Introduction: Light Painting With a Raspberry Pi LED Robot

Did you know that you can make light paintings with a long exposure camera? Light painting is a photographic technique in which exposures are made by moving a hand-held light source while taking a long exposure photograph. We take this a step further by finely controlling the light source's movement with a stepper motor driven rover. The results are stunning. The project consists of a Raspberry Pi 3, two stepper motors, and a Neopixel LED matrix. It can easily be recreated with a 3D printer and all of the code is provided.

Step 1: Materials

You will need the following materials for this project:

2× Nema-17 200 steps/rev Stepper Motors

2× Stepper Motor Drivers

1× Raspberry Pi 3

1× Neopixel 8x8 LED Matrix

1× Female Jumper Wires

1× Cell Phone Charging Battery

1× 12v Step Up Chip

2× Might Need a Couple USB Splitters

Step 2: Instructions

We created this step-by-step video about how we built the robot.

(More details about 3d printable parts and the code we used are posted in the next step)

Step 3: Resources

Some resources for this project are provided below:

Find all the 3d printable parts for this project on our page:

All the code can be found on Github:

Raspberry Pi Neopixel library:

Thanks for viewing our instructable!
Aaron @ Hacker House



    • Creative Misuse Contest

      Creative Misuse Contest
    • Water Contest

      Water Contest
    • Clocks Contest

      Clocks Contest

    6 Discussions

    This is such a great idea, one thing isn't quit clear. Are you hardcoding pictures or are you importing them and slicing them up into sections?

    5 replies

    Maybe I will one day try to do this with arduino, if you guys don't mind

    Go for it. Just be wary that the program memory space on an Arduino is really small, so a high resolution image won't fit. I would stick to vector drawings with an Arduino.

    It might be possible to slice the pictures with a computer and then send the individual pieces to an sd card that's connected to the arduino. also i thought it would be possible to make a fixed size and then use it like a cnc machine, with sliders. then you only have to map the locations of the individual squares instead of making it as big as you want.

    That's a good idea. If you have hardware that needs to be controlled by an Arduino, you could also probably send image data from a Pi connected through serial.

    We're slicing them up into sections. You can specify your own picture with the code we wrote.