Electronic – arduino – Gettting hand movements registered and sent to an arduino

arduinokinect

I want to control a servo motor attached to an arduino through hand movements. I am just beginning the project and my idea is to attach a couple of accelorometers to each finger and then send that data to the arduino through Xbee . Firstly is this the right approach to doing this , or are there ready made sensors which I can wrap around my hand and send data to the arduino. Secondly I am stumped as to how to attach a Xbee sender to each accelerometer on my hand. Is this how its generally done? Does kinect even use accelerometers. Or is it some other kind of sensor. What would be the right approach to this project?

Best Answer

There are a lot of questions embedded in there! Let's try and unpack them:

  1. The Kinect doesn't actually have anything connected to the user. It functions by sending out a grid of infrared points and measuring how warped the grid is with a camera with an IR filter. It has a lot of resolution for certain applications, but it doesn't work when the objects are very close to the Kinect, and it also can't measure anything which is occluded (i.e. if something is in the way you can't tell what happening behind it).
  2. Getting finger and hand positions is very difficult. You can slap an accelerometer onto each finger and put one on the palm, but interpreting what those accelerometer positions mean will be tricky to do in real-time. On top of that, it'll be very expensive! You can see some previous ideas in hand tracking with the super colorful MIT glove, here's someone using the kinect, and here's tracking fingers with the wiimote. Now note that all of these use a computer to back out the information from a sensor into hand positions, and you'll likely have to do something similar, unless you have more modest requirements for hand tracking.
  3. Don't try and design the wireless component until you have a good method for getting hand positions. A lot of the requirements for your hand tracking will change the requirements for the wireless: how often do you want to know hand positions? How much detail do you need about the hand's position? Once you know these, then you can go look and see what wireless solutions exist and implement something. For example: if you did use 3-axis accelerometers (not saying it's a good idea, but if you did), one per finger, with a 10-bit ADC reading in the result from each finger: this gives 3 axis * 5 fingers * 10 bits = 150 bits per update. That means that if you only used a single zigbee running at 115200 bits per second, you can have 768 updates per second (assuming no overhead, which is unrealistic). But the point is that putting in 5 zigbees would be total overkill! Just put in one radio. And in a similar fashion, whatever solution you pick should be designed after you know what it needs.

Hope that helps!