:: spoke n' light ::

overview | sketches | prototype-I | prototype-II | prototype-III

Rotating LED Display

The idea is to create a "screen" made of just one line of LEDs rotating at a high speed. The complete circuit (LEDs, microprocessor, power supply etc.) will be placed on a rotating wheel (bicycle, car, fan). A magnetic switch will "tick" the microprocessor every time the wheel has completed a circle, so that the rotation speed (and "zero" location) can be determined.

A few interesting issues rise when analyzing the way a grid (Cartesian) image can be transformed into a "polar" image which can be displayed on this screen. A small MatLab function I wrote takes a grayscale image and transforms it to a set of vectors representing the intensity of each LED along the circle. The intensity of each LED is the average grayscale value of the original image at the LED's position.

LED Super-resolution. By using two sets of LEDs shifted by 1/2 the diameter of a LED, the dark areas between two adjacent LEDs can be filled.

Intensity Correction. The closer the LED is to the center of the circle, the less area it has to cover during a single round. Thus, if all LEDs were to be turned on in the same intensity, the outer LEDs would seem to be much dimmer. This must be corrected by multiplying the intensity of the LED by the area ratio, as shown in the image. This intensity calculation can be done either in software (e.g. using PWM) or in hardware (using resistors, as the ratio is constant and not affected by rotation speed).

Simulation. The original grid grayscale image (left), and its simulated polar representation (right) are shown below. The latter was generated using a couple of MatLab functions I wrote: grid2polar.m takes a regular grayscale image and generates its polar representation; simulate.m takes the polar vectors and simulates the result of sending those vectors to the rotating LED display.

Continue to Prototype I >>