WORK IN PROGRESS!

Thanks especially to the marvelous #linux.cz@IRCnet people for all the electrotechnics advice.

Building a multi-touch screen

Jeff Han inveted a marvelously cool multi-touch screen interface. The moment I have seen the video, I have decided that I want it. So - I started building it. And I'm actually making some progress now.

Essential reading

Current state

The horrible setup Camera snapshot

Currently I have a simple IR LED powered by 5V from a standard computer PSU (so it shouldn't be a problem to power it from USB later) illuminating a tiny piece of acrylate and an IR camera capturing that.

The issue is that I haven't been able to reproduce the actual jhun's setup - the light is not coming through the desk but only around. It actually reflects from the fingers and most other objects closely behind the screen, but it probably won't work on larger distances from the edge, and it doesn't detect the area of contact, only the bottom edge. And there is a problem with shadows when you touch at multiple points in line with the leds.

Two problems: First, the LED is too far away from the acrylate; I will yet have to devise a staging where I can adjust the vertical distance. Second, the acrylate material - I wanted to experiment with a dim material and the ray is simply not coming through; I will try other acrylate materials, but it would be nice to have at least one surface dim so that I could do the rear projection directly on the acrylate (else I don't know what to use for the rear projection yet); not sure how will it affect the total reflection, though.

Still, the current setup probably gives relatively good approximation of how will the final camera input look like, so now I will work on the computer part for a while - implementing the points of touch detection and some simple SDL extension and trivial example application.

How to build it?

I'm not even an amateur in electrotechnics (or optics or anything else; I'm a pure computer geek), so it's all a huge awful hack.

Prices are in CZK; the approximate conversion rate is 1EUR == 28CZK, 1USD == 24CZK. But prices of these things might get quite country-specific. *shrug*

The problem falls to four parts:

So, this maps my progress:

IR cam shots from three different acrylate samples I've get:

Sample A - white acrylate, too little opaque.

Sample B - slightly different white acrylate, unusable.

Sample C - much more opaque acrylate but also a lot thinner, 2mm only.

Tomorrow, I will try to get more samples, and also try with clear transparent acrylate.

Using the sample C, few shots I'll use for detecting the points of touch (not very useful now since there was a lot of light in the room; when it's dark it's enough to use the shots as they are and no substraction is required):

Hovering finger

A video of how it looks like after a bit of postprocessing...

(c) Petr Baudis <pasky@ucw.cz>