Tuesday, May 19, 2009

Follow-up: Webcam touch screen

As a follow-up on the Making A Touch Sensitive Sidepanel post from a while back, I can gladly report that it is actually feasible to make the entire screen touch sensitive. In a feat of hobo engineering1, I've crafted flaps out of cardboard to mount the webcams 20 centimeters (8-ish inches) away from the screen, thereby making it possible to cover the entire surface of the screen within the field of view. When I have the time, I'll make a proper mount for the webcams out of something sturdier than cardboard.

I actually have come up with the designs for a more elaborate version, but an actual assembly will have to wait until I have more time and resources (hopefully in a month or so). It requires a webcam, a light source (LED:s? perhaps infrared if your webcam can see those), a two panes of glass (without scratches), and a box. The idea is to mount the glass at a 45 degree angle inside the box, and then the screen, upside down, at the top of the box. The box is painted black on the inside, and a row of LED:s are mounted on the top of the viewing side. When you look into the box, the glass will reflect the screen (which neatly enough will appear to hover in the air inside) so that it's viewable from the viewing hole. The LED:s on top of the hole will illuminate anything close to the surface (e.g. your finger touching the surface), making it possible to track such objects with a webcam on the far end of it. It's also probably a good idea to add a fan somewhere. Here's a diagram:

Note that this design means that the aspect ration of the viewing area will change by a factor 1/sin(45o) = √2, so what was a 4:3 screen will be a 36:19 screen. ... yeah.

[1] It's even beyond redneck engineering. Even their mechanical shenanigans don't reach this level. Everything is made out of expectations, cardboard, surgical tape. Nothing stays where it should for more than a few minutes. All that's missing is a burning barrel, a shopping cart, and some gloves with no fingertips, and the experience would be complete.


  1. niceeeeeeeeeeee :D though all of this requires an adequate knowledge of linux, eh?

    ...or any noob can do this?

    anyways I have become your newest fan! take care.

    PS: I will try to implement some of the stuff, however I doubt I'd be successful, though I believe it's worth trying.

    Thank you,

  2. I think it could be done on almost any platform, though the hardware-related code would have to be re-written for that platform, which is pretty hard.

  3. Good guidance here...do you really thing this is possible.Thanks for the lovely update.

  4. I haven't actually gotten around to testing it with a prototype. So it may or may not work.

    There may be an issue with parallax. Since you're not actually touching the screen surface, but a screen in front of the surface, the relative position of your finger and the surface will vary slightly with viewing angle. I'm not sure how big an issue this will be though.

  5. Your style of presentation is very impressive. The meaningful contribution of your mind reflects on those people who are looking for webcam touch screen. I would like to tweet on it and keep spying at every moment you blogging.