Username:     
Password:     
             

Contest 2013/2014
Contest 2011
Contest 2009
Contest 2008
Wave-POV 1.0
 
Wave-POV is an application using Persistence of Vision to write messages in the air. By using an extension with 7 LEDs and waving the Primer2 around, a custom message is written. Wave-POV automatically adapts to the speed of waving and messages can be read from an SD-card. By illuminating the LEDs shortly while traveling through the air, combined with persistance of vision effect of the eye, the illusion of a full message is created in the mid air.

Code size:22KB Author:lieron
Source files included:yes Version:1.0
Use circleOS:yes (1.7) Creation date:2009-06-25 23:23:41
Hardware modification:yes Modification date:2009-06-25 23:39:03
Based on the STM32 Primer:Primer2
   
Downloads:2321 Views:29201
   
Vote:
Average ratings:0/5 (0 rates)

Download:    Wave-POV-1.0.zip (601 KB)

Description:

Wave-POV is an application using Persistence of Vision to write messages in the air. By using an extension with 7 LEDs and waving the Primer2 around, a custom message is written. Wave-POV automatically adapts to the speed of waving and messages can be read from an SD-card. By illuminating the LEDs shortly while traveling through the air, combined with persistance of vision effect of the eye, the illusion of a full message is created in the mid air.

Wave-POV is a Primer2 CircleOS 3.7 application that allows you to "write" messages in the air. A simple extension board with 7 LEDS is required to write the image.

To install the extension board, simply plug it into the extension header of the Primer2, with the LEDs facing to the front.
See images "Extension Installation 1.jpg" and "Extension Installation 2.jpg".

The schematics of the extension board can be found in "schematics.jpg". The board contains 7 LEDs, 7 current limiting resistors (68 ohm), a 74HC594 8-bit shift register (datasheet attached) and a female header to match the Primer2 extension header.

When Wave-POV is started you can immeadiatly see the purpose of the application. Hold the Primer2 in your hand, facing the display away from you and keep waving the Primer2 from left-to-right and back. The accelerometer will detect the movement, calculate the period/speed of waving and start displaying the message (by default "CircleOS" is displayed). Upon detecting a change of direction Wave-POV will start writing the message. This is done by turning the correct LEDs on/off for a short amount of time. An "image" of 60x7 pixels is displayed while waving. By default the image is shown to be readable for a person watching Wave-POV being used by someone else. For your (and mine) convenience a "mirror" option is available to display the image mirrored. This way you can watch the result of Wave-POV by standing in front of a mirror.
See image "example.jpg" for the result of the default message.

Wave-POV uses 7 standard green LEDs in my prototype. These LEDs are connected to a 74HC594 8-bit shift register that is being controlled by just 3 GPIO pins of the Primer2 extension header. In future version it's easy to create an image with higher resolution by cascading more 74HC594 devices and still only use the same 3 GPIO pins. A column of 7 pixels was chosen to be able to write 10 characters in a 7x5 font. Each column of the 60x7 (10 characters of 7 pixels heigh and 5 pixels wide plus 1 space column) image is displayed for a short time, after which the LEDs start displaying the next column. Due to the persistance of vision effect of the eye, this image will appear complete when waving fast enough. The effect of Wave-POV is easier to see in a darker environment.

To maximize the visibility of the message the backlight of the display is turned off when you start waving the Primer2. The backlight will turn on again automatically when the device is not waved for more then 2 seconds.

Features:
 - Display a 10 character message in mid air by waving the Primer2.
 - Display the message in normal mode or mirrored. To change the mode, press the joystick to open the menu and select the "Mirror" menu item. The main display will show the current status of the setting.
 - Customize the message using files stored on the SD-card. Simply add a text file containing up to 10 characters (the rest is ignored) on an SD-card and put it in the Primer2. Press the joystick to open the menu and select the "Browse Message" menu item. You will now be able to select a file on the SD-card. Once selected, the file is opened and the first 10 characters are read. The current message can be seen on the main display. Characters in the ascii range of 0x20 (space) to 0x7E ('~') are supported.
 - To quit the application, press the joystick and select the "Quit" menu option.

Some technical details:
 - To maximize the real time behavior of the application all CircleOS handlers are turned off when waving as well as the CPU speed is set to maximum. The handlers and CPU speed are restored when not waving (so when the backlight is turned on).
 - Original attempts to use the display instead of LEDs were proven unfeasible due to the slow response rate of the display. Also the brightness of the display is too dim to create an effect in anything else then complete darkness.

Created by: Ronald Vanschoren - 25 June 2009.