Motion Tracking Using Piezos

Mar 28, 2006 at 10:26am

Motion Tracking Using Piezos

Hi,

I’m hoping to track where a ping pong ball hits the table during a live game of table tennis.

I’m intending to use an array of Piezo transducers and calculate the position of impact by calculating the time the signal takes to travel to each mic ie triangulation.

Does anyone have any experience relating to this. Do you think it would work? Would I need to do some kind of analysis rather than just timing?

To make matters worse I am totally inexperienced with maxmsp! I have however used pd before as well as several other node based software environments.

Any links, tutorials, help, anything would be greatly appreciated!

Gavin
http://www.boredbrand.com

#25113
Mar 28, 2006 at 12:30pm

Hi, Gavin.

It is possible as this project does precisely the tracking you’re
suggesting: http://tangible.media.mit.edu/projects/pingpongplus/

best,
matthew

Gavin
http://www.boredbrand.com

#73549
Mar 28, 2006 at 12:59pm

Thanks for that.

That’s pretty much exactly the same thing that I wanted to do though.
Which begs the question should I bother?

Always a source of debate in my own head – is it worth creating something that’s been done before.

On the one hand I’ve never made it before so I’m sure I’d still get alot out of it. Similarly assuming I delivered the project, people would enjoy it.

On the other maybe I should spend my time creating something which has never been seen before!

Augmented Air Hockey perhaps!

Gavin

#73550
Mar 28, 2006 at 2:14pm

On 28-Mar-2006, at 14:59, gavin wrote:

> On the one hand I’ve never made it before so I’m sure I’d still get
> alot out of it.

At college level (which, IMS, is the context here), doing stuff
yourself and getting a lot out of it is (almost always) the most
important point.

When you’re writing your PhD or in industry or working as a freelance
artist, then originality and uniqueness become increasingly an issue.

There are exceptions and not-alwayses. Copland wrote a nice article
once about Ravel & Debussy *not* being the first orchestral
impressionists: there was an obscure composer a generation earlier
using very similar techniques. But Ravel & Debussy did it more
compellingly.

Good luck
Peter

————– http://www.bek.no/~pcastine/Litter/ ————-
Peter Castine +–> Litter Power & Litter Bundle for Jitter

iCE: Sequencing, Recording & |home | chez nous|
Interface Building for |bei uns | i nostri|
Max/MSP Extremely cool http://www.castine.de

http://www.dspaudio.com/

#73551
Mar 28, 2006 at 2:30pm

No I’m not a student.

I have a travelling interactive entertainments show which i take to
events.

If you’re interested see http://www.boredbrand.com

Originality is kind of important to me but not as important as creating work which enables people to have an experience.

I have made things in the past which were completely unoriginal (though I only found out afterwards.)

Saying that I was a student then.

I still like to learn stuff though!

I guess really it depends if you add anything of yourself to the concept/project.

Anyway I’ve mailed the people who made the original and asked them what they thought!

Gav

#73552
Mar 28, 2006 at 2:31pm

If you watch the videos, its technically interesting, and fun to watch,
but has a lack of artistic content.
There is your chance to make it better. There must be more than proof of
concept, this stuff could need an artistic expression which stands out
as a work of art on its own.

Go for it, as long it makes sense for you…

Stefan

[][] [][][] [][] [][][]
[][][][][][][][][][][][][][][]

Stefan Tiedje
Klanggestalter
Electronic Composition
&
Improvisation

/~~~~~
\ /|() ()|
))))) )| | |( \
/// _/)/ )))))
___/ ///

————————-x—-
–_____———–|———–
–(_|_ —-|—–|—–()—-
– _|_)—-|—–()———–
———-()————x—–

14, Av. Pr. Franklin Roosevelt,
94320 Thiais, France
Phone at CCMIX +33-1-57 42 91 09

#73553
Mar 28, 2006 at 3:21pm

Thanks for the feedback.

Seeing as I am an MSP newbie I’m gonna go with it for a while and see what happens.

I have set up this initial test:

Two microphones. If the volume on either rises above a certain amount, I trigger a bang and start the timer object.

When the other mic rises above the threshold I trigger the other side of the timer.

Thing is the timer always reads 0. Well sometimes it reads 100.

So I guess I need to learn some basic theory about sound.

The frequency is 44100 times a second. Does the computer receive 44,100 messages every second?

It doesn’t does it. Presumably there is some kind of resolution.

And how is this related to the setting of audio buffers?

Gavin

#73554
Mar 29, 2006 at 10:56am

Thanks Vincent.

I feel slightly embarassed about posting my patch which is really only an example patch changed a tiny bit but here goes…..

As far as I can tell a knock which reaches one microphone first should trigger the time difference when it reaches the other mic.

The signals appear to be occurring at the same time and I seem to be getting data into max only 10 times a second.

I know I am missing some simple piece of knowledge!

Gavin

max v2;
#N vpatcher 110 39 952 612;
#P origin 0 51;
#P window setfont “Sans Serif” 9.;
#P message 170 485 14 9109513 1;
#P message 307 464 14 9109513 1;
#P message 31 359 14 9109513 0;
#P comment 22 332 140 9109513 Reset;
#P button 32 346 15 0;
#P user gswitch2 174 443 39 32 0 0;
#P user gswitch2 337 447 39 32 1 0;
#P button 145 409 15 0;
#P user gswitch 173 394 40 32 1 0;
#P button 332 408 15 0;
#P user gswitch 361 395 40 32 1 0;
#P button 343 343 15 0;
#P button 147 370 15 0;
#P newex 376 350 41 9109513 select 1;
#P window setfont “Fixedwidth Serif” 10.;
#P flonum 376 319 60 10 0 0 0 141 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 376 290 38 9240586 > 0.1;
#P window setfont “Sans Serif” 9.;
#P newex 187 350 41 9109513 select 1;
#P window setfont “Fixedwidth Serif” 10.;
#P flonum 187 323 60 10 0 0 0 141 0 0 0 221 221 221 222 222 222 0 0 0;
#P window setfont “Sans Serif” 9.;
#P newex 275 506 43 9109513 timer;
#B color 5;
#P number 275 543 42 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 0;
#P comment 230 381 77 9109513;
#P window setfont “Fixedwidth Serif” 10.;
#P window linecount 1;
#P newex 187 289 38 9240586 > 0.1;
#P newex 179 122 62 9240586 ctlin a 1;
#P newex 179 143 43 9240586 / 127.;
#P message 241 185 23 9240586 50.;
#P newex 241 164 53 9240586 loadbang;
#P user number~ 186 202 228 217 10 141 1 1 0. 1. 3 1. 100 50. 0 0 0 221 221 221 222 222 222 0 0 0;
#P window setfont “Proportional Serif” 10.;
#P comment 40 -3 13 9175050 L;
#P comment 168 -3 13 9175050 R;
#P comment 187 164 49 9175050 Amplitude;
#P comment 286 -1 30 9175050 Depth;
#P comment 254 -14 41 9175050 Tremolo;
#P comment 237 -1 25 9175050 Rate;
#P window setfont “Fixedwidth Serif” 10.;
#P newex 88 179 27 9240586 *~;
#P newex 122 179 27 9240586 *~;
#P newex 286 31 38 9240586 * 0.5;
#P newex 237 82 72 9240586 +~ 1.;
#P newex 299 56 73 9240586 expr 1.-$f1;
#P flonum 286 13 35 10 0. 1. 3 141 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 235 13 44 10 0 0 0 141 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 237 56 59 9240586 *~;
#P newex 237 31 44 9240586 cycle~;
#P window setfont “Proportional Serif” 10.;
#P comment 174 241 13 9175050 L;
#P comment 174 263 13 9175050 R;
#P comment 218 226 84 9175050 Peak Output Level;
#P window setfont “Fixedwidth Serif” 10.;
#P newex 122 205 27 9240586 *~;
#P newex 88 205 27 9240586 *~;
#P user meter~ 187 242 267 254 100 0 168 0 103 103 103 255 153 0 255 0 0 217 217 0 153 186 0 12 3 3 3 3;
#P user meter~ 187 264 267 276 100 0 168 0 103 103 103 255 153 0 255 0 0 217 217 0 153 186 0 12 3 3 3 3;
#P flonum 274 264 60 10 0 0 0 141 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 310 229 60 10 0 0 0 141 0 0 0 221 221 221 222 222 222 0 0 0;
#P user meter~ 137 13 150 85 100 0 168 0 103 103 103 255 153 0 255 0 0 217 217 0 153 186 0 12 3 3 3 3;
#P user meter~ 106 13 119 85 100 0 168 0 103 103 103 255 153 0 255 0 0 217 217 0 153 186 0 12 3 3 3 3;
#P user ezadc~ 88 -28 132 5 0;
#P window setfont “Proportional Serif” 10.;
#P comment 103 85 52 9175050 Input Level;
#P comment 150 71 13 9175050 R;
#P comment 94 71 13 9175050 L;
#P connect 52 0 54 0;
#P connect 3 0 23 0;
#P connect 23 0 10 0;
#P fasten 20 0 23 1 242 104 110 104;
#P fasten 30 0 10 1 191 200 110 200;
#P fasten 3 0 4 0 93 8 111 8;
#P connect 3 1 22 0;
#P connect 22 0 11 0;
#P fasten 3 1 5 0 127 8 142 8;
#P fasten 20 0 22 1 242 104 144 104;
#P fasten 30 0 11 1 191 200 144 200;
#P connect 48 0 49 0;
#P connect 40 0 44 0;
#P connect 51 0 56 0;
#P connect 54 0 48 0;
#P connect 49 0 48 0;
#P connect 54 0 51 0;
#P connect 55 0 51 0;
#P connect 34 0 33 0;
#P fasten 33 0 30 0 184 178 191 178;
#P fasten 10 0 9 0 93 226 192 226;
#P fasten 11 0 8 0 127 238 136 238 136 260 192 260;
#P connect 9 0 35 0;
#P connect 35 0 39 0;
#P connect 39 0 40 0;
#P connect 40 0 48 1;
#P connect 48 0 51 1;
#P fasten 32 0 30 1 246 204 235 204 235 178 223 178;
#P connect 17 0 15 0;
#P connect 15 0 16 0;
#P connect 16 0 20 0;
#P connect 31 0 32 0;
#P fasten 8 0 7 0 192 279 270 279 270 260 279 260;
#P connect 50 0 38 0;
#P connect 51 0 38 0;
#P connect 38 0 37 0;
#P connect 18 0 21 0;
#P connect 21 0 16 1;
#P fasten 21 0 19 0 291 52 304 52;
#P connect 19 0 20 1;
#P connect 50 0 55 0;
#P connect 51 1 38 1;
#P connect 50 1 38 1;
#P fasten 9 0 6 0 192 257 270 257 270 238 315 238;
#P connect 46 0 47 0;
#P connect 54 0 50 0;
#P connect 56 0 50 0;
#P connect 43 0 45 0;
#P connect 54 0 46 0;
#P connect 47 0 46 0;
#P connect 46 0 50 1;
#P connect 8 0 41 0;
#P connect 41 0 42 0;
#P connect 42 0 43 0;
#P connect 43 0 46 1;
#P pop;

#73555
Mar 29, 2006 at 11:26am

> The signals appear to be occurring at the same time and I seem to be
> getting data into max only 10 times a second.

Have a look in meter~ inspector : by default, interval is set to 100 ms.
Maybe you should use peakamp~ instead of meter~ to be sure to miss
nothing…

MathieU Chamagne
http://www.maxobjects.com

#73556
Mar 29, 2006 at 12:41pm

Thanks for your help. I never knew about the inspector.
You’re right anyway using the meter is kind of pointless.
I’ll have a look at peak meter

Gav

#73557
Nov 22, 2012 at 11:57pm

How did that went?
any news how to get good coordinates in the table?

#73558

You must be logged in to reply to this topic.