Introduction: DIY Pixelstick

About: Electrical Engineer and a Maker from India. Engineering is fun once you start applying it!

Recently, I came across a product called PixelStick which cleverly uses a single row of LEDs and the photographic technique of light painting to create some astounding images with the help of shockingly simple electronics. I being a hobbyist playing with electronics as well as an occasional photographer, thoroughly enjoyed working on this project as it turned out to be a perfect fusion of my hobbies.

Combining the art of photography with the captivating technique of light painting creates a mesmerizing fusion of creativity and technical skill. Light painting allows an artist to paint with light beams, adding surreal and magical elements to their images. I am nowhere near to being an "artist", but my wife is. Yes, I got married! Upcoming projects would be having a touch of creativity for sure.

In this Instructables, I will be building a DIY PixelStick using Arduino Mega and WS2812B LED strip, and my wife, on the occasion of India's 77th Independence Day, with the help of the stick and some creativity will try to showcase the proud achievements of this great nation!

Supplies

Step 1: The Plan

The plan is very straightforward this time. Entire build is inspired by Dirl Essl's DIY PixelStick.

The images that we need to display would be stored in bitmap (.BMP) format on an SD card. A bitmap is an array of binary data representing the values of pixels in an image or display.

The data in BMP file is then read by an Arduino using an SD card module.

This pixel data is sent to the appropriate LED of the strip. Each one of the stick's 200 LEDs acts like a pixel on a screen, displaying your image one vertical line at a time as you walk.

Step 2: Electronics

The choice of the LED strip is important here. You need to get the right version with densely packed LEDs which means that the spacing between the adjacent LEDs should be as small as possible. This improves the resolution of the final image being painted. 144 LEDs/meter is the most compact strip available in the market. You need to cut another strip of 56 LEDs and solder them together to form a 200-LED-long strip.

Processing such a scale of information needs a good amount of computing power which can be delivered by using Arduino Mega 2560 Pro.

An OLED display is used to display the menu along with the 5 push buttons to navigate the menu and control the stick.

Make the connections as shown in the attached schematics.

Step 3: Assembling the Stick

I will be mounting the LED strip on a thin wooden stick (1" wide, 10mm thick). The length of the wooden stick would depend on the number of LEDs you plan to use. A strip with 200 LEDs would be approximately 4.5 feet in this case.

Stick the LED strip on one side of the wooden stick.

The other side will hold the controller and power supply. For mounting them to the stick, I modeled clamps/supports in Fusion 360 and 3D printed them. I also made a small handle that will go in the middle to hold the stick. I have attached the STL files in case you want to use them. I will be using an old power bank as a power supply.

Step 4: Preparing Images for Pixelstick

Once you have your image, you need to convert it into proper bitmap format. Follow the steps below:

  • Rotate your image 90 deg clockwise
  • Change image width to 200 pixel (or whatever is your LED strip length). The height of the image will determine the time required for the image to complete playing on the stick. This will in turn affect the shutter speed required to capture the entire image.
  • Click on "Save As"
  • Choose File format: Windows & Depth: 24-bit

I have used Photoshop but the steps should be the same in any case. Once done, transfer your .BMP images on to an SD card.

Note: While choosing images please keep in mind that the black pixel in the image will correspond to an LED being turned OFF.

Step 5: Time for Code

Download the code attached in this step and open it in Arduino IDE.

Download the necessary libraries required for the code.

The only change you need to do is to change the number of LEDs used as shown in the picture.

That's all, compile and upload the code to your Arduino.

Step 6: Enjoy!

Plug in the SD card in the module and fire up the stick.

This surely takes a lot of trail and error but trust me, this is lot of fun once you get all the things right.

There are a lot of parameters which affect the end result. For example, your camera settings (shutter, aperture, ISO) and your walking speed. I recommend using a high f-stop value to make sure that everything remains in focus. You need to practice walking to get the speed right - too fast and the image would be compressed - too slow and the image would be stretched out and may not even fit the frame.

Thank you for sticking to the end. I hope you love this project and I'll see you in the next one!