I designed and built an infrared-based multitouch system based on the open source monome project. It uses a technique called Laser Light Plane to generate a thin plane of IR light over the surface of glass. When an object, like a finger, breaks this plane by touching the glass surface, IR light is scattered down into an array of IR phototransistors below. An Arduino Uno scans the phototransistor array and determines the coordinates of the point(s) of contact. The Arduino also controls an array of white LEDs, which can be programmed for various forms of visual feedback. Currently, this device is connected to a computer via USB and used as a multipurpose controller for monome applications written in MaxMSP. Full documentation is up on Instructables.
There are many ways to do DIY multitouch - my design criteria for this project were that it should be inexpensive, modular, scalable, and thin.
Most IR-sensing multitouch uses a camera to track the position of "blobs" (points where your fingers make contact with the surface of the screen), but these techniques require that the camera be positioned far away so that it can "see" the entire surface. My system uses an array of IR phototransistors positioned directly under the screen to minimize the amount of depth needed. This prototype has a depth of about 4 inches, but the phototransistor density could be scaled to make the total depth of the device well under an inch.
I built this system using inexpensive and easily sourced components: the electronics involved include IR phototransistors, white LEDs, shift registers, small IR lasers, and an Arduino Uno. Each "pixel" is comprised of the same modular unit (one IR phototransistor and one white LED). This means the microcontroller code could be easily extended to fit a larger or denser array. Four lasers (one mounted on each corner of the screen) create a plane of laser light above the surface with minimal occlusions.
Array of 64 white LEDs and IR phototransistors below the surface of the glass. Black anodized aluminum partitions isolate each LED/phototransistor pair from each other.
This device relies on IR sensing and does not function well around direct sunlight, but I serendipitously found that it does some interesting things while the intensity of sunlight is changing rapidly (sunrise/sunset). Here are some experiments transforming seemingly random noise from the inputs into sound/lights. Filmed at the Claremont Colleges in Claremont, CA. This MaxMSP patch is called straw, it was written by Stretta. Best with headphones, more info here.
Filmed at the Claremont Colleges in in Claremont, CA.
Filmed on a train in Oregon.