Seeing so many persistence of vision ideas on the web was too tempting not to try one. After considering several different motors to drive a display, a ceiling fan seemed to run at just the right speed, is out of the way, and very quiet compared with alternatives. With a micro controller based on the Arduino, this project provided plenty of both software and hardware learning and besides, the kids were involved throughout...
Step 1: Design
Since one of the primary goals was leaving the fan unharmed, I decided to make new fan blades out of some 1/4" plywood. The new blades were simple rectangles and are shorter than the originals. I made them smaller in an attempt to keep the assembled weight low, so as not to stress the supports when spinning. Early circuit considerations were to not interfere with the mounting hardware, scalability and one design to fit all different needs in the project. The circuit was based on the Arduino platform which provides so much support and the programming environment.
Step 2: Creating the Circuit Boards
The boards were designed using ExpressPCB. I choose to buy some single sided copper clad and etch them myself. There are plenty of how-to's for making boards but, I found the toner transfer method worked well for me. After a little experimenting with the clothes iron, overhead projector sheets printed in an old fax machine worked best. A black permanent marker or finger nail polish are good for touch ups of gaps where the toner does not adhere well to the copper. Also, the boards cut easily with a table saw since I don't have access to a shear. Muriatic acid and hydrogen peroxide was the mixture of choice to etch the boards. If you don't want to deal with the acid, you could always order the boards right through the ExpressPCB program.
Step 3: Drill and Solder
A small hobby drill index provided all the bits I needed to drill the holes. The board with the micro controller has somewhere near 200 holes. It doesn't take too long with a Dremel though. The LEDs were soldered on the copper side of the board. Since the board is single sided, I used a small plug as a spacer to keep the height uniform as they were installed.
Step 4: The Assembly Line
The fan has 5 blades and I settled on 32 lights per, so 10 boards were needed. I made up some jumper wires so I could test the boards as they were built. A few LEDs out of the bunch were bad. I choose to use the Atmel ATMEGA328 for the extra memory and 74HC595 shift registers to drive the LEDs. Each board also has its own voltage regulator. Only six more to go...
Step 5: Mounting the Boards
After a quick trip to the table saw to cut the new blades, it was time to mount some boards. I used one of the mounting holes as a guide to line up the circuit boards as consistently as possible from blade to blade.
Step 6: Almost Ready to Run
A small wiring harness was made to connect the boards. A single micro controller and battery run all five blades. Eventually I intend to power it with a collector ring assembly or a battery on each blade. A hall effect switch is used to trigger the timing which passes across a magnet once per rotation.
Step 7: Bottom View
Bottom view shows how the boards extend toward the center of the fan. A few zip ties were also used to prevent the wiring harness from snagging.
Step 8: Phils?
Don't forget to unplug the laptop after uploading. Shameless Philly fan photo. No pun intended.
Step 9: Programming Images
I used a spread sheet with a LOT of check boxes to easily convert images. Each check box represents the control point around the circle for a light. The spread sheet does a quick job of putting the code together to cut and paste into the fan program.
Step 10: One Last Image
Now the kids get their turn at some images. So far I've had about a dozen images loaded with plenty of memory to spare. Maybe a .GIF like animation is next. Hmmn...
Step 11: Another Image, and Code
Another image, Arduino sketch, board layout and image spread sheet. Once a picture is inserted into the SS, size, move and send it to the background. As the boxes are checked off, the image code changes below it. Copy and paste into the sketch and upload!
Step 12: Video
Camera frame rate makes it look chopped up. I think animated images are up next...