i've got the following problem i'd like to get solved and i'm breaking my head, so please help!
I have a rectangle with the following size 40 cm * 50 cm. On each corner of this rectangle I placed a Piezo element (it's an electronic element which measures the vibration)
The rectangle is defined as followed: the left upper corner = A the left lower corner = B the right lower corner = C the right upper corner = D
I'm trowing a ball on the surface and I'd like to calculate it's X and Y axis. The outcome of the piezo elements are as followed:
A,B,C,D - 0 lowest vibration, 1023 highest vibration These values can be mapped to a number I can decide, so that means I can make it whatever we need it to be. Example: map 0,1023,0,100, meaning the new mapping will be 0 - 100.
I found a possible solution here: http://mathafou.free.fr/pbg_en/sol114.html The problem I got is that i don't know where the ball will be and therefor I don't know the angle it will fall on.
The thing I do now is:
Example: We trow the ball. The outcome could be ABC or what would be best ABCD results.
I thought Pythagoras could come in handy here. The thing I did was: A*A+B*B=C*C (to get the square calculation done) A+B = AB, B+C = BC, A+C= AC, (to get the sides of a triangle) AB*BC=AC (We don't know AC but we can square root the outcome of AB*BC)
But then i realised I just know how long the side is and I still don't know where the ball landed :(
The following I already implemented to scale it when it works (maybe not relevant now) A+B+C+D = Total outcome we can possibly get at that point (as we are relying on vibration) A,B,C,D/Total = the scale we need to calculate with
I call this A1,B1,C1,D1 so I can re-use this in the code The reason I do this, is the follow up I need it for. Im going to use a projector to project a video on the exact X/Y position. But that's not relevant I guess for now.
I'm programming this in Processing 2 : http://processing.org
((A1+B1)/2)-((C1+D1)/2)
and((A1+C1)/2)-((B1+D1)/2)
. Try that and see how it works. If it works, I'll post an answer explaining some of the mechanics behind it. (The input values are the readings of the sensors.)