如何进行MPU6050加速度计温度校准?

时间:2017-06-23 13:14:13

标签: arduino accelerometer offset calibration mpu6050

我正在使用MPU6050加速度计进行项目。首先,我只在执行the sketch of Luis Ródenas时计算MPU的偏移量。

稍后,一旦我得到偏移量,我将它们复制到第二个草图的配置中,并且我总是用相同的值执行它。

//Placa casa MPU6050 viejo
//-1172  -873  1351  76  -758  27
accelgyro.setXAccelOffset(-1172);
accelgyro.setYAccelOffset(-873);
accelgyro.setZAccelOffset(1351);
accelgyro.setXGyroOffset(76);
accelgyro.setYGyroOffset(-773);
accelgyro.setZGyroOffset(33);

我遇到的问题是,在多次执行第二个草图之后,原始读数会产生新的偏移。

我读到这个问题可能是传感器的温度,有必要用温度补偿读数。但我找不到这样做的例子。我想询问是否有人知道问题可能是什么以及如何解决它。

2 个答案:

答案 0 :(得分:1)

我看到两种处理MPU6050温度漂移的方法:

  1. 在每次启动前校准:将校准代码放入setup(),这样您就可以在每个设备启动时获得有效的偏移参数,无论设备的温度是多少。该方法用于多旋翼飞行控制器以校准其IMU,其通常基于MPU60x0。
    1. 准备校准值表。 MPU6050具有嵌入式温度传感器,可用于此方法。
    2. 写下草图:

      1. 读取T(温度)。 example sketch how to read T from MPU6050
      2. 像现在一样测量偏移量并使用当前T打印到Serial
      3. 等到T改变,如果花了太长时间(例如30秒以上),停止校准,否则转到2.
      4. 现在将冷却器中的MPU6050冷却,然后将其置于高温环境中(50degC应该足够;取决于最终设备将使用哪个T范围)并开始校准草图。

        现在,有了一张表[T]->[offsets]你可以调整原始草图来监控MPU6050的T,一旦它发生变化,就可以为MPU6050分配相应的偏移量。

答案 1 :(得分:0)

在为温度调整编写一行代码之前,绝对的第一步是参考数据表以获取您正在使用的确切部分。具有与温度相关的漂移的器件通常会在数据表中显示它们,并且需要补偿。我现在正在查看6050数据表和加速度计模块,例如它在-40C到85C的线性范围内将校正列为每摄氏度+/- 0.02%。陀螺仪模块列出了不同的校正因子。对于多传感器模块来说,这并不罕见。

如果您认为温度漂移是问题的根源,则需要根据数据表中的这些值进行调整。