Sight is one of our most important senses, and with the creation of digital images, there come a wave of different ways to display beautiful images and videos. Most of these displays uses stationary pixels to show arbitrary images or videos. Because the human eye retains a visual continuation of images with a succession of still frames, the video appears when the images are played by very quickly. The beauty of a persistence of vision (POV) display is that it uses the same optical illusion to display images. Much like how stationary displays use the optical illusion to display videos by playing multiple still frames rapidly, the POV display uses the same illusion to display an image by rendering each “row” of pixels individually very rapidly. The design of this multifunction display is based on the concept of persistence of vision with the utility of a fan. More importantly, the novelty of this POV display makes it a good conversation starter that can easily be assembled and customized. Using a single strip of mechanically rotating LEDs mounted on a fan blade, the display is able to give an illusion of an image to simulate an array of LEDs. As a result, a user is able to display anything from an analog clock to an image or short animation on the POV display.

The rationale behind this multifunction POV display stems from the desire to create a unique and eye-catching display. We got a lot of inspiration from watching mesmerizing YouTube videos, and were captivated by the way in which a simple strip of LEDs can create so many enticing patterns. One thing we noticed was that many of the POV display microcontroller projects were miniature in size, and required a large number of individual LEDs that were interfaced by directly connecting to the GPIO pins on the microcontroller. The POV displays shown could not truly showcase the illusion to it’s fullest because it would be limited by the physical size of the device as well as the available LED colors.

As a result, we wanted to create a POV display that was much larger in size and could be easily customized to display any image as opposed to just showing a POV analog clock. We began by salvaging a old box fan that was 0.5 meters by 0.5 meters. This would allow us to get a large image. We then cut a piece of plywood and drilled a hole in the middle to fit onto the center of the fan. This was mounted in place securely with 2 screws. The LED strip was then ziptied and taped onto the wood. The hall effect sensor, which we used for dynamically determining where the fan blade was, was mounted at the very tip of the wood. This would face upward. We found an L bracket that we then put two neodymium magnets on which we stuck on the side of the box fan so the hall effect sensor could detect it as the fan swings by. Finally, we put the 9V battery, the PIC32 board, the protoboard with our circuit, and the battery pack onto the center of the fan.

During the development of our project, we balanced tradeoffs between hardware and software. Because the wood board we mounted the LED strips on would fluctuate when the fan is spun, we were reluctant to use the higher setting of the fan. For debugging purposes, we were limited to the lowest setting of the fan. This slowed down how fast our display could refresh. Thus, in software, we used a hack to refresh the display twice as fast, utilizing the fact that we had a full length strip of LED instead of just half length (from center to the edge). Because we custom wrote software that display LEDs on both sides of the strip at the same time, we effectively doubled our refresh rate even with the fan speed staying the same. In addition, because the PIC32 can only achieve a max interrupt speed of less than 4 MHz, we do not have infinite precision in displaying LEDs. This is because the fan is undoubtedly going to skip some amount in space before the hardware timer gets triggered. This makes it so that we cannot compare where the fan is to where we actually want it to be before lighting up. The slight offsets will make it so the fan never lights up. We were able to fix this in software by setting a threshold. If the two values are within the same threshold, then we’ll say they are equivalent. This is even more prominent in the image display since it uses a different method of drawing than the clock that we’ll talk about below.

Finally, we did not run into any legal issues besides an existing patent. This will be talked about further in the conclusion.”

Link