Result, conclusion

So, did it work? See for yourself:

As you can see, my test was fairly succesful. The technique has its drawbacks, though: for instance, the touchscreen only works in the bit of screen where the white window is: touch an area around it and either your finger only casts a shadow from one led, making it impossible to locate its position, or the shadow falls out of reach of the CCD (which is shorter than the width of the screen). This can be solved by using more LEDs, perhaps positioned further away from the screen, and a larger or multiple line-CCDs.

The software itself isn't perfect either: it doesn't act as a driver, meaning it can't relay any of the touches to the underlying OS. It also sees every frame as a separate entity: if a finger moves to the other side of the screen and back in 1/50th of a second because of a detection glitch, the software won't filter that out in any way.

So, am I gonna improve on these points? I don't think so. While it's nice to play around with a multitouch touchscreen and the math around it was an interesting problem to solve, I still like my keyboard and trackball better. If someone wants to improve on my setup, they can be my guest: both the software for the PC and the firmware for the ATMega are downloadable and released under the GNU GPLv3. If you manage to make it do something interesting, as always, I'd appreciate it if you'd drop me a note.

« Prev 5 


Roger wrote at 19 Jan 2016, 14.34:

Hi, Could you tell me how to port this hw/sw to work for Arduino? Tks a lot.

Daniel Bathke wrote at 9 Dec 2014, 15.11:

Hi! Really cool! Some questions.. I have trying to do the same. What's the exacly part number of your CCD? In mine's datasheet doesn't mention that the clock must not stop at any moment. Can that be the problem? Already dismantled it, but reconsidering to reassembly it just for this test.

James wrote at 21 Dec 2012, 3.00:

This is incredible! Any chance you could show some more info about how you are doing the calibration?

nasser shaban wrote at 9 Sep 2012, 6.57:

hello sir ., its very good job ... would you pls send me full { atmega88} pcb ,? and i can send you the moeny or pls at least show me where xan i find the compleat pcb and how to program it ? thanks sir nasser shaban catv.egypt@yahoo.com

Sprite_tm wrote at 31 Aug 2011, 14.51:

Audun: I did that, but my X at the time wasn't capable of doing much with multitouch, which kinda was the whole point of the excersize.

Audun wrote at 31 Aug 2011, 11.11:

If you are using linux, have a look at uinput, it's a way to make input drivers in user space (mice, tablets, joysticks, keyboards, anything hid...) It might not be practical or efficient, but at least it will be able to provide mouse input to Xorg :)

Mr.Zulus wrote at 15 Apr 2011, 15.50:

Its great idea to use scanner sensor. (I'm going to make a something like door sensor (for counting persons going in and out). BTW as far I could see it is not a CCD, it is a CIS sensor (Contact Image Sensor).

wladston wrote at 30 Mar 2011, 0.11:

Amazing as always!!! That was really cool :D You should own a device factory someday to make us those cool stuff!

Amos (again...) wrote at 26 Mar 2011, 4.11:

Oops, forgot to mention that I saw it in Popular Science Magazine some time in the 1990's (probably early to mid).

Amos wrote at 26 Mar 2011, 4.09:

I've wanted to make something like this since I saw something about one the (US) gov't made for controls in some military vehicle or other. Then, I learned about FTIR touch panels, and I wondered if this technique could be adapted. If you have time to try it, it would make a great follow-up article! Even without that, you've definitely given me a shove toward finally doing one, so thanks!

Kevin de Vries wrote at 23 Mar 2011, 16.51:

Really COOL Want to create one as well and hopefully I am able to write the mouse driver for it as I can surely use the practice doing so :) Thanks for the motivation and ingenuity !

Damic wrote at 23 Mar 2011, 16.27:

Hey Sprite; Kun je je ccd iet aan de zijkant zetten evenals de leds, soms is de zijkant kleiner (hoogte) dan de lengte, waardoor je dus ineens veel meer schermen kunt gebruiken.

bert wrote at 22 Mar 2011, 20.24:

Brilliant !

Mike Anthony wrote at 22 Mar 2011, 5.07:

Nice work! :) definitely given me some ideas

siggi wrote at 21 Mar 2011, 22.45:

very nice idea and work

TC wrote at 21 Mar 2011, 19.50:

Very cool! Thanks for the writeup!

johannes wrote at 21 Mar 2011, 19.05:

very interesting use of spareparts! thanks for sharing and inspire me for my own projects ;)

maurizio wrote at 21 Mar 2011, 16.02:

as an infrared filter you could use an exposed and developed photografic film. I used it to replace the IR (blocking) filter in a cheap webcam with an IR passing filter to transform it in an IR camera

frederick wrote at 20 Mar 2011, 23.34:

that is an ingenious reuse!

Leave a comment:

Your name:

What does this picture say?
Sorry, this is a captcha

Your comment:

© 2006-2016 Sprite_tm - Contact