I've worked with wiimote accelerometer, but I think now I want to move past that. Mostly because I want to have a wider range of available gestures and I think that using only one accelerometer has too many limitations for what I want to do. I'm looking for something compatible with arduino or RPi. Does anyone have recommendations on how I should do this?
3 Answers
What you want is a three-axis (or sometimes triple-axis, three-axes) accelerometer, which will allow you to detect the magnitude and direction of the acceleration. If you want to detect the acceleration of one part relative to another part, then you need an accelerometer for each part. I2C is a reasonably standard sensor protocol. I2C accelerometers are available off-the-shelf, and Arduino has libraries for I2C communication.
The Mpu6050, or 9150 is great for gesture sensing. The 6050 has a 3 axis accelerometer and a 3 axis gyro. The 9150 has all that, as well as a 3 axis magnetometer.
Theoretically, you can program gestures into it that trigger an external interrupt when they are activated. Unfortunately, Invensense, the makers of the chip have not been forthcoming with documentation on how to do that.
If you want to write the gesture reconization yourself, then there is a library for getting plain data as well as quaternions from the 6050 at https://github.com/jrowberg/i2cdevlib
If you go with the 9150, there is a great resource of code at https://github.com/Pansenti/MPU9150Lib, which includes resources to do some of the higher level processing the 9150 is capable of.
I actually am trying to use the line of mpu's myself, as part of a rocketlogger project. I have some of my code at http://waterrocketry.com It doesn't entirely work yet, but it is still a work in progress, and I hope to have full control of the Data Motion Processing of the 6050 soon.
Good luck with what your building
If I understood your question correctly, what you need to capture more gestures are just more accelerometers positioned at different locations on your device.
If you are talking complex finger gestures, then maybe you need something like a machine vision system to recognize all the complex hand and finger motions. Hope this helps a little.