Hi, I recently purchased a triple-axis accelerometer (MMA7260Q) because I, well, needed to measure acceleration. Now I have this sensor hooked up to my arduino and surprisingly it is not only responding to acceleration but also rotation on the same axis. What surprised me even more is that it responds much more to rotation than acceleration.
Because it responds to rotation as well this sensor seems completely useless for my project.
Does anyone have more experience with this and maybe knows how it would would possible to measure acceleration without the values being messed up with rotation?
I'm reading values and displaying them via serial print. I have also viewed the output on my oscilloscope. I have done tests with sliding the breadboard on which the arduino and sensor are placed over the table at different speeds. I have to make very fast movements to get high values. When gently rotating it in my hand I get high values very fast. So I'm pretty sure it responds more to rotation than accelaration.
Swing a rock on the end of a string. The velocity vector changes direction as it goes around, but it doesn't change magnitude or "speed" all that much. Centripetal force pulls the string taut, trying to move the rock straight away from you. Again, that force vector is changing direction all the time (it's at right angles to the velocity) but doesn't change magnitude all that much.
Mechanical gyros work by sensing resistance or strain against coriolis forces; spin the wheel and due to the gyroscopic effect, the axle will resist a change in most directions (except the special rotation called precession, which we'll skip). Small piezo-chip gyros don't have spinning parts, but you can get similar effect with vibrations, and piezo elements are very good at generating and sensing vibration forces.
Some accelerometers called MEMS sensors work according to changes in capacitive fields, but many tiny accelerometers aren't MEMS but are instead piezo-chip sensors detecting motion strain and vibration forces as well. Since these are similar to piezo gyros, they probably pick up all sorts of coriolis, vibration and even magnetic/capacitive forces nearby, and report them with only one value, misconstrued as linear acceleration.
I know. But when I go from zero speed to high speed there is a lot of acceleration.
And how did you calibrate that instrument?
It's not that hard to rotate the board around it's axis. Of course it will measure some acceleration / vibration as well but it's very clear it responds more to the rotation.
If you don't believe this device responds more to rotation then acceleration, that does not really matter. The problem is it does respond clearly enough to rotation and I will have to get rid of those wrong signals. My guess is that my only option would be to use 3 gyros as well so I can compensate the acceleration values with the rotation values from the gyros. I don't like this much because it's for a very light helicopter that does not need the extra weight...
If there are better acceleration sensors out there I would like to know.
But, since the helicopter for this project is an coaxial type with auto stabilization I could ignore the rotation problem and just give it a try hoping the unwanted rotation values will cancel each other out when flying.
What I want to do is making the helicopter know where it is relative to it's starting point. Btw, there is 1 gyro in the heli for measuring turns. I'm using sonar sensors to detect obstacles and it has to remember where those obstacles are.