Go Down

### Topic: DIY Touch Screen from a simple Glass? (Read 20270 times)previous topic - next topic

#### WilliamK Govinda

##### Jul 21, 2012, 05:04 pm
I was wondering if there's some way to create a DIY touch-screen using a simple glass and some ICs? I saw the Quantum ICs that handles things, but no idea if that's the way to go. I was hoping there was some sort of IC that would detect touching but also how near it was, and combining multiples ICs I could triangulate where the touch happened? Or I'm just dreaming? ;-)

Here's an interesting IC: Quantum QT100-ISG QPROX Near-Proximity Touch Sensor

Thanks, WilliamK

#### JavaMan

#1
##### Jul 21, 2012, 08:30 pm
Cool idea!  In theory, you could put a force sensor under each corner of a piece of glass and calculate the touch location by analysing the four sensor readings.  The calculation would be like finding the center of gravity.  These calculations may not be exactly right, but I think they are a good starting point.

x position = W*(combined readings of 2 sensors on right / combined readings of 2 sensors on left)
y position = H*(combined readings of 2 sensors at bottom/ combined readings of 2 sensors at top)
where W is the width(x direction) of the glass and H is the height(y direction) of the glass.

The only way to find out if it works is to try it!  It sounds like a fun project - I would be trying it right now if I had the sensors.

#### cr0sh

#2
##### Jul 21, 2012, 08:48 pm

Or I'm just dreaming? ;-)

Probably. If there were an easy and robust solution, it would've been found by now, since touchscreen technology is anything but new. Think about it: If there were something cheap, easy, and robust (discounting multi-touch, of course), we would've seen it being used in the market for tablets and cell-phones already. Since there isn't, it is unlikely to be something to pursue.

Likely your idea has already been explored, and has been found to have flaws in the approach - flaws that may or may not be insurmountable. You might want to do a ton of research (research papers and/or patents) to see what others have done - so you don't go down a road blind. Maybe you might make a discovery that makes the previously difficult or expensive to do (that is, more difficult/expensive than current solutions), easy? It is better though to know what has been done before and the methods used so you just don't reinvent the wheel and encounter the same problems which have already been documented.
I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

#### JavaMan

#3
##### Jul 21, 2012, 09:03 pm
Wait - sorry, the above equations won't work.  Try these instead:

x position = W * R / (R + L)
y position = H * B / (T + B)

where:
W is a scaling factor proportional to the width of glass,
H is a scaling factor proportional to the height of the glass,
R is combined readings of 2 sensors on the right,
L is combined readings of 2 sensors on the left,
T is combined readings of 2 sensors at the top,
B is combined readings of 2 sensors at the bottom.

#### WilliamK Govinda

#4
##### Jul 22, 2012, 03:01 pm
I was thinking on a simple thing, lets say, to use 4 piezos on each corner of an acrylic A4 sheet (or something like that). When you hit the thing, each piezo should give you a response, different depending on where you hit. Its just a crazy mad-scientist idea, but in theory it would work, just the math would be a bit killer. Now, in conjunction with the Quantum chip above, to know if you actually touched the darn thing, or just hit the table or whatever, it could be very precise.

In any event, everything can be done in multiple ways, some are stupid, some are creative. Big corporations tend to think inside-the-box, while most of us think outside-the-box, specially non-engineering guys like me.  XD

Here's an interesting story, a company that made tooth-paste, was having problems with empty boxes at the end of the line. So they spent thousands of dollars to create a machine that would x-ray each box near the end and check if it had something or not. One day, the CEO went to visit the factory just to see the machine disabled. "Why the heck is the machine disabled? And why there's a Fan there?" - "Well, the machine wasn't working, it would halt most of the time, so we just disabled it and put a Fan to push the empty boxes outside the production line..." - Yeah, a Fan, simple as that. ;-)

#### DuaneB

#5
##### Jul 22, 2012, 03:25 pm
I think that sound/vibration travels much faster in stiffer objects, I suspect that in Arduino time the pulse would arrive at all four corners at the same time - if you were using interrupts to catch it, the internal interrupt priority of the IC and the time it would take to service each one would certainly have a bigger effect than the time the pulse takes to reach all four corners.

Try it anyway, you never know.

Duane B
http://rcarduino.blogspot.com/2012/04/servo-problems-with-arduino-part-1.html
then watch this
http://rcarduino.blogspot.com/2012/04/servo-problems-part-2-demonstration.html

Rcarduino.blogspot.com

#### WilliamK Govinda

#6
##### Jul 22, 2012, 03:47 pm
I'm thinking on measuring the analog output of each piezo, and compare. The problem is the math, as we don't have constants, since you could do a soft or hard hit, and I don't know if 10 bits will be enough, we may need a better ADC. Still, I'm mostly day-dreaming. ;-)

#### DuaneB

#7
##### Jul 22, 2012, 05:44 pm
I get the day dreaming bit, ADC's still will not held, the wave will arrive each sensor at unpredictable times and by the time you have read one, it will be long gone from all the others.

Keep at it though ...

Duane B
http://rcarduino.blogspot.com/2012/04/servo-problems-with-arduino-part-1.html
then watch this
http://rcarduino.blogspot.com/2012/04/servo-problems-part-2-demonstration.html

Rcarduino.blogspot.com

#### WilliamK Govinda

#8
##### Jul 22, 2012, 06:15 pm
Maybe add some capacitors for each piezo, so it sums up all the max value for each piezo when a hit occurs? Anyway, I will try something later on...

#### JavaMan

#9
##### Jul 22, 2012, 08:00 pm
Quote
I think that sound/vibration travels much faster in stiffer objects, I suspect that in Arduino time the pulse would arrive at all four corners at the same time - if you were using interrupts to catch it, the internal interrupt priority of the IC and the time it would take to service each one would certainly have a bigger effect than the time the pulse takes to reach all four corners.

The force reading on each sensor is needed, not the time of arrival of a pulse.

Quote
I'm thinking on measuring the analog output of each piezo, and compare. The problem is the math, as we don't have constants, since you could do a soft or hard hit...

That's right.  The skeptics should consider this:  If you put a bathroom scale at each corner of a large, rigid plate and then stood on top of the plate, you could easily calculate where you were standing by looking at the reading on each scale.  The math is not hard, in fact I already gave it to you:

Quote
x position = W * R / (R + L)
y position = H * B / (T + B)

This can be simplified even more because R + L = T + B = sum of all 4 readings.  So now it's:

x position = W * R / S
y position = H * B / S

where:
W is a scaling factor proportional to the width of glass,
H is a scaling factor proportional to the height of the glass,
R is combined readings of 2 sensors on the right,
B is combined readings of 2 sensors at the bottom,
S is the sum of all 4 sensor readings.

Since you are dividing by the sum of the sensor readings, the equation will have the same output whether you push softly or firmly on the glass.  Just adjust W and H for the size and shape of the glass plate.  Simple.

#### WilliamK Govinda

#10
##### Jul 22, 2012, 09:08 pm
The Nintendo Wii Fit Balance Board actually does that, it has 4 sensors, on each corner of the board. ;-)

#### JavaMan

#11
##### Jul 22, 2012, 09:41 pm
Cool!  Go figure.  So it looks like you weren't just dreaming after all...

What exact sensor are you planning to use?   I'd still like to try ths myself.

#### guest1102

#12
##### Jul 22, 2012, 10:19 pm
Hi.
Does it have to be transparent?

#### JavaMan

#13
##### Jul 22, 2012, 10:34 pm
Quote
Does it have to be transparent?

No, depending on what you are trying to do, it need not necessarily be transparent.  Rigidity is the main requirement.  You don't want the plate to sag in the middle and come to rest on anything.  You want all the force to be felt by the sensors under each corner.

#### WilliamK Govinda

#14
##### Jul 22, 2012, 10:58 pm
I would love it to be transparent, so I could put LEDs behind it and make a nice 4 x 4 grid, maybe even 16 x 6 grid. ;-) (cheeeeap MIDI Sequencer bonanza!!)

Go Up