How to turn your bike into a moveable screen in the city? This instructables aims to answer how to do that cheap and easy with parts most makers already have lying around.
Before we start on how to build the device I would like to thank Ada and her guide on making a POV display. I have used the code from her guide as inspiration, a stepping stone and a huge part of her code exists in my example.
The biggest difference is that I have made the code work with the popular WiFi microprocesser, ESP8266. I'm using a NodeMCU v2 in my example which required a lot of tweaking. My main reasoning behind choosing an ESP8266 device is that it is a powerful piece of hardware, and you can implement wireless communication to control the image, synchronize multiple units or whatever you can come up with. Another difference is that I have implemented an image stabilizer that should make the screen more readable when riding the bike (there is a lot room for improvement but if you want a finished and professional consumer product buy POV from Monkeylectric). The last difference is that I'm using cheaper parts in my build. The SK9822/APA102 is basically the same hardware as Adafruit Dotstar but way cheaper. You can get a NodeMCU for only $3.95 if you can wait for it to ship. And now to the guide!!
Step 1: Components
For this build you will need
- 1x NodeMcu v2
- 1x APA102 led strip at least 32 pixel
- 1x APA102 booster pixel
- 1x Reed switch
- 1x Magnet
- 1x 10k ohm resistor
- 1x 3 AA battery clip
- 3x AA batteries
- 1x SPST switch
- 1x 1000uf capacitor
As mentioned above, I chose this microprocessor for various reasons. It is fast, cheap, small, and potential for wireless communication.
These LEDs are super fast and great for projects where timing is a critical factor. Compared to another popular choice WS8212/neopixel it got a clock pin to secure that it doesn't go off sync. You can also opt for APA102 clones called SK9822. You can split up the strip and both parts are still functional because each pixel got a driver, so when you buy a meter of LEDs for your POV project, the rest can be used for the other wheel of the bike or another project.
You need a single APA102 pixel (cut it off at the end of your strip) as close to your NodeMCU as possible. The reason is that the NodeMCU only outputs 3.3 volts and the APA102 operates at 5 volts but if you put a pixel close enough, it works as a Logic Level Converter, so the clock and data signal gets converted to 5v to the rest of the pixels. In the code we never send color to the booster pixel as its only function is to amp the signal, so we don't need to have the strip close to the NodeMCU. I would like to give a thank to Elec-tron.org for coming up with the idea.
Reed Switch and magnet:
The reed switch gives a pulse every time it passes the magnet, and I'm using this for stabilizing the image while riding the bike. I don't have a link for where i bought this, because i found it in an old magnetic cat door in an electronics dumpster. We are using the 10k ohm resistor as a pull-down to minimize noise.
The capacitor is preventing voltage drop when the strip goes from no color to (as an example) all white.
The batteries only provides 4.5 volts but it's more than enough to drive the system.
The SPST switch is used to turn the circuit on and off.
PS some APA102 have switched between red and green. I have both, so that's why some of my pictures on github looks weird.
Step 2: The Circuit
I've made the mistake of making long wires from the NodeMCU to the booster pixel in the diagram. It is VERY important to make those wires as short as possible. The distance from booster to the rest of the pixels can be as long as needed. In the diagram and in my version I have placed the capacitor close to the power supply. I would rather place it close to the pixels but both works fine.