Virtual Keyboard
With the alluring range of latest smart phones and tablets, this term sounds quite viable these days. A virtual keyboard is a software component that allows a user to enter characters. Here is a project from the students of Cornell University which featuring a ‘Virtual keyboard’ which is not completely a software component but still is virtual in complete sense. This device replaces a physical keypad with a customizable keyboard printed on a standard A3 size paper whose keystrokes are read and translated to real input.
As mentioned, the physical component is a printed A3 size paper with black background and blue keys. A conventional off-the-shelf laser beam with a line-generating diffractive optical element is used which generates invisible plane of red light hovering a few millimeters over the typing surface. A CMOS camera continuously captures images of the region containing the typing surface for red colour data. It is evident that a laser shining over a human surface produces saturating amounts of red colour data than otherwise. So, whenever the captured image’s red data exceeds a threshold value, a press is detected. The functioning of the camera to take input from it is initiated by the user through the microcontroller unit (ATMega32). The I2C protocol is used to establish a healthy interface between camera and MCU. After the images are captured, they are read from the camera registers at a rate of 6 frames per second for processing. A java applet is used as a simple GUI where the users can enter scan codes of the keys they desire and transmit it to the microcontroller through a standard com port on the PC.
Hence, we can sum up the crucial hardware and software implementations for the system as below:
Hardware:
· Laser module
· Camera and its associated circuitry
· Outer casing for the entire device
Software:
· Implementing the I2C protocol to read and write registers from camera
· Reading values from camera to obtain 6 frames every second
· Processing the images to obtain the pressed key
· Converting the pressed key into a scan code which is then transmitted using the PS/2 protocol
· Sending serial data from a java application to update the array of scan codes in the Mega32
0 comments:
Post a Comment