5

我试过arduino.cc 提供的这个草图。(我有一个MPU6050 GY-521 分线板。)

我认为它工作正常。它给出了一组奇怪的数字,我无法理解。它说这些是原始值。

如何将它们转换为有意义的值?

输出如下。即使整个事物保持静止,它也会给出变化的值!这有意义吗?那该如何理解呢?

(我只知道温度值是有意义的:D)

June 2012
WHO_AM_I : 68, error = 0
PWR_MGMT_2 : 0, error = 0

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 260, 120, 15572
temperature: 31.047 degrees Celsius
gyro x,y,z : -24, -234, -240,

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 304, 12, 15608
temperature: 31.000 degrees Celsius
gyro x,y,z : -7, -234, -232,

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 160, 100, 15716
temperature: 31.000 degrees Celsius
gyro x,y,z : -8, -241, -248,

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 192, 56, 15712
temperature: 31.000 degrees Celsius
gyro x,y,z : -36, -212, -222,

MPU-6050
Read accel, temp and gyro, error = 0
accel x,y,z: 212, 100, 15440
temperature: 30.906 degrees Celsius
gyro x,y,z : -32, -253, -240,
4

2 回答 2

11

您需要查看数据表以将原始值转换为有意义的值。为陀螺仪寻找像这样的表格:

陀螺表

如果您使用默认值,FS_SEL则为0. 那就是灵敏度设置。因此,要将原始陀螺仪值转换为每秒度数,请将它们除以 131。您可以看到您的数字低于每秒 2 度左右,这是一个合理的误差范围。

对于默认的加速度计灵敏度,除以16,384得到g(地球施加的力)的值。x 和 y 轴大约为 0.01g,z 轴大约为 0.95g,这在芯片保持静止且 z 轴指向地球的合理误差范围内。

于 2012-09-06T22:16:59.313 回答
0
 mpu.setFullScaleGyroRange(0); //0 = +/- 250 degrees/sec | 1 = +/- 500 degrees/sec | 2 = +/- 1000 degrees/sec | 3 =  +/- 2000 degrees/sec
  mpu.setFullScaleAccelRange(0);  //0 = +/- 2g | 1 = +/- 4g | 2 = +/- 8g | 3 =  +/- 16g 
于 2016-07-29T06:51:59.920 回答