Sponsoring Links from AdSense:

Sunday, July 5, 2009

Tennis Practice - On Court with a Wiimote






Its summertime and these last few weeks have been full of exciting tennis and with todays marathon final between Roddick and Federer who claimed his record 15th grand slam title in a gruelling 5 set match its hard not to get excited.

I used to play a lot in college but recently I have'nt been able to hit the courts much until the last few weeks. Well lots of things in my game need repair including my serve and especially, can you believe it the toss!

Well the internet is a great place to find tips and tricks so I started watching some videos online and they cheerfully say something like this about the toss:

"A high, confident toss made 1 to 2 ft. inside the baseline allows the server to uncoil both upward and forward into the court, making contact at 1.5 times body height" (see Popular Mechanics on the Andy Roddick´s serve.)

Sounds good but when I am out on the court my toss is going all over the place. So I hit on a brilliant solution. If I could physically messure my toss exactly I could see how much acceleration I am using in my arm and then I could just practice with computer feedback.

After all the whole thing of collaborative computer feedback and measuring your activites for self imporvement and awareness to improve is a growing field see for example groundbreaking work by Gary Wolf and Kevin Kelly over at http://www.quantifiedself.com/.

Well I was thinking...the wiimote has accelerometers.

Well that sounded like a plan so I poped open my wiimote soldered in a few wires to the minus key and then taped the wiimote to left arm (I am right handed).

Then I taped the other end of the wires to my thumb and wrapped a tennis ball in aluminum. So now when I had the ball in my hand it completed the circuit and pressed the button which registers the data in the software. I then toss the ball and when it leaves my hand it unpresses the button stopping the registry of the data from the accelerometer.

I wrote the data to a textfile and then ploted it all out. By subtracting for the earths gravity (remember thats 9.8 meters/second squared) you get teh resulting acceleration.

Then by integrating this resulting acceleration I found the height of my toss using that old trusted formula of setting kinetic energy and potential energy equal at the top of the toss. Here is the data I captured from one of my tosses:


I have put the data here if you would like to integrated the equations of motion for your self. My calculations showed a toss speed of 3,94 meters/second when the ball left my hand and a height of 0,8 meters.

In the end everything works great. I can take my laptop to the court attach the wiimote to my wrist and correlate my tosses to the success of my serves.

So if you are a real nerd or a high school physics teacher and you want to try this you will need:


This same technique can of course be used for any repetitive activity that you want to repeat exactly every time for consistency. Think golf, bowling, etc.

But just remember it is hard to look any more nerdy than having a wiimote strapped to your wrist, but then again, hey - "Who Cares what other people think".

Good Luck and Have fun this Summer!!



5 comments:

thegreathoe said...

any chance of you releasing your code?

Mans Shapshak said...

Hi thegreatshoe,

Sure no problem. But its just a writeln and a couple of IF statements since I am using the wiilibrary test code as a base. I will post the lines of code in a little bit.

Thanks!
Mans

Mans Shapshak said...

Hi thegreatshoe,

I have put the very simple code changes here:
http://isontech.blogspot.com/2000/07/technical-details-for-wiimote-tennis.html

Best Regards,
Mans

BEAR said...

Hi, i've had a WII system since it came out(interestingly Amazon had em since the beginning).

I would really like to smooth out my bowling stroke. Ur solution seems like it would do the trick; BUT, i have little ability to set up such a system.

Code doesn't bother me but the mechanics of putting the thingy together is outside my domain.

Perhaps a solution might be to charge someone like me something for a "step by step" (little,tiny steps) "how to do" paper.

Or come to my beach house and show me.

Dan

UZiX said...

Hi,

do u know how to substract earth gravity for every axes? i want to use accel data and double integrate it so i can get the 3D position(X,Y,Z).
your code seems like u substract the earth gravity after calculating magnitude of the vector.
if u have any idea on how to do it, mind sharing with me?

thanx

Post a Comment