Hi everyone.
I'm working on a "flight computer" that is intended to be embedded inside a model rocket. I use an Arduino Nano that reads acceleration values on a MPU6050 and an ADXL377.
Everything works quite well but I have no idea of what both outputs mean. The MPU6050 has several sensivity levels but I use the DMP algorythms (the example in the sensor library) so I don't know which level is used (+-2/4/8/16 g).
The ADXL377 (up to 200g) outputs analog values so I need to shock the sensor in order to cause a known acceleration but I have no idea how to proceed. (I have a 3D printer if it could help)
Thank you by advance for your time !
The MPU6050 can be verified using gravity. I can't think of a simple way to validate the readings from a 200g sensor, except reading 1g gravity, but if you can do that there is no reason to think that your higher readings during a flight would be wrong.
In fact the DMP sketch cannot output raw acceleration, it only outputs acceleration with gravity removed.
I'm assuming the DMP sketch sets the MPU to +-4g but I can only speculate about it. However I think that assuming that the ADXL is linear : a (g) = (ADXLreading-500) / 2.5 seems to work.
Kivatch:
In fact the DMP sketch cannot output raw acceleration, it only outputs acceleration with gravity removed.
I'm assuming the DMP sketch sets the MPU to +-4g but I can only speculate about it. However I think that assuming that the ADXL is linear : a (g) = (ADXLreading-500) / 2.5 seems to work.
The fifo Buffer we get from the mpu6050 DMP has the following values
| Default MotionApps v2.0 42-byte FIFO packet structure: |
| |
| [QUAT W][ ][QUAT X][ ][QUAT Y][ ][QUAT Z][ ][GYRO X][ ][GYRO Y][ ] |
| 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
| |
| [GYRO Z][ ][ACC X ][ ][ACC Y ][ ][ACC Z ][ ][ ] |
| 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
Accelerometer and gyro readings are present along with the quaternion
Z