Update:

4/11/2008 - This project was featured on Hack a Day. It's a first for me, so I'm kinda excited!

Title:

Design of a Laser Controlled Mouse Using OpenCV

Abstract:

Since the desktop computer first became popular decades ago, the mouse/keyboard combination has become the defacto standard for human/computer interfacing. Both the mouse and keyboard are, by design, single user devices, and as such, have worked quite well for the standard single user machine. However, as large display devices such a LCD projectors become increasingly popular, the desire for a multi-user collaborative environment has grown accordingly. In such an environment the standard mouse/keyboard interface becomes somewhat of an impediment to true multi-user group collaboration.

It is the goal of this project to create a method of interfacing with a large projected computer screen (or set of screens) that is both intuitive, and expandable to the multi-user environment. To accomplish this task, the usage patterns of large, projection-based screens will be studied, leading to a study of not only the Human-Computer Interface patterns of such screens, but the Software Engineering patterns that emerged from the design of the target interface.

Videos:

Lag Note: the lag is due to the use of VNC to relay mouse coordinates...I am using a separate PC (linux) PC to process the images and relay the resulting coordinates via VNC to the host PC. This makes the whole system cross-platform compatible, but also has the disadvantage of slowing down the transmission.
Inaccuracy Note: the slight inaccuracy is because I am using 1 camera for two screens...ideally there is one camera per screen...also, the two screens, although very close, are not in the exact same plane, which introduces further inaccuracy.

Writing across two screens

Writing across two projector screens (same desktop).
Note: Sometimes it looks like the system isn't responding (ex. exclamation mark). This is again due to vnc...at this point, I don't have a mouse-click mechanism worked in, so I am using the mouse physically attached to the PC for button clicks only. The VNC server running on the PC has a built-in delay when switching from a local mouse to a VNC mouse, which becomes evident when I press and release the mouse button.

Grappa Orange

Playing around with Grappa Orange web app...

Grappa Blue

Same as above, but using Grappa Blue instead...