1

我正在用 MPU6050 加速度计做一个项目。首先,我只在执行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);

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

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

4

2 回答 2

1

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

  1. 每次启动前进行校准:将校准代码放入您setup()的设备中,这样您将在每次设备启动时获得有效的偏移参数,无论设备的温度是多少。这种方法用于多旋翼飞控校准其IMU,通常基于MPU60x0。

  1. 准备校准值表。MPU6050 具有嵌入式温度传感器,可用于此方法。

写草图:

  1. 读取 T(温度)。示例草图如何从 MPU6050 读取 T
  2. 像现在一样测量偏移量并Serial使用当前 T打印。
  3. 等到 T 发生变化,如果时间太长(例如 30+ 秒),停止校准,否则转到 2。

现在将 MPU6050 在冰箱中冷却,然后将其放入高温环境中(50 摄氏度应该足够了;取决于最终设备将使用的 T 范围)并开始校准草图。

现在,有了一个表格,[T]->[offsets]您可以调整原始草图以监控 MPU6050 的 T,一旦它发生变化,将相应的偏移量分配给 MPU6050。

于 2017-07-18T18:05:29.117 回答
-1

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

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

于 2017-06-23T13:57:59.073 回答