我正在使用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);
我遇到的问题是,在多次执行第二个草图之后,原始读数会产生新的偏移。
我读到这个问题可能是传感器的温度,有必要用温度补偿读数。但我找不到这样做的例子。我想询问是否有人知道问题可能是什么以及如何解决它。
答案 0 :(得分:1)
我看到两种处理MPU6050温度漂移的方法:
setup()
,这样您就可以在每个设备启动时获得有效的偏移参数,无论设备的温度是多少。该方法用于多旋翼飞行控制器以校准其IMU,其通常基于MPU60x0。 写下草图:
Serial
。现在将冷却器中的MPU6050冷却,然后将其置于高温环境中(50degC应该足够;取决于最终设备将使用哪个T范围)并开始校准草图。
现在,有了一张表[T]->[offsets]
你可以调整原始草图来监控MPU6050的T,一旦它发生变化,就可以为MPU6050分配相应的偏移量。
答案 1 :(得分:0)
在为温度调整编写一行代码之前,绝对的第一步是参考数据表以获取您正在使用的确切部分。具有与温度相关的漂移的器件通常会在数据表中显示它们,并且需要补偿。我现在正在查看6050数据表和加速度计模块,例如它在-40C到85C的线性范围内将校正列为每摄氏度+/- 0.02%。陀螺仪模块列出了不同的校正因子。对于多传感器模块来说,这并不罕见。
如果您认为温度漂移是问题的根源,则需要根据数据表中的这些值进行调整。