用料
示例
简介
本示例将演示如何校准 MPU6050 IMU。
实现流程
如下图所示,将 MPU6050 连接到电路板的 I2C_SDA 和 I2C_SCL
在 "文件"->"示例"->"AmebaWire"->"MPU6050"->"MPU6050_IMU_Zero "中打开示例。
如果 MPU6050 已具备一下条件:
- ·是同类产品中的理想成员
- ·已适当预热
- ·处于中立位置
- ·处于重力拉力正好为 1g 的位置
- ·已装入最佳偏置
则所有加速度和位移都将报告为 0,但 Z 加速度除外,它将报告为 16384(即 214)。 您的设备可能不会做得这么好,但良好的偏移都会使基线输出接近这些目标值。 将 MPU6050 放置在水平的平面上,让其工作 5-10 分钟,使其温度趋于稳定。
编译并运行此示例。 一行"--已完成--"将表明它已尽了最大努力。 按照当前的精度相关常量(NFast = 1000,NSlow = 10000),需要几分钟才能达到目标。 在此过程中,它会产生十几行输出,显示对于 6 个所需偏移量中的每一个偏移量,它都是:
- 首先,试图找到两个估计值,一个过低,一个过高
- 然后,缩小括号,直到不能再缩小为止。
在 "已完成 "行上方的一行看起来类似于 [567,567] -> [-1,2] [-2223,-2223] -> [0,1] [1131,1132] -> [16374,16404] [155,156] -> [-1,1] [-25,-24] -> [0,3] [5,6] -> [0,4]。
正如穿插的标题行所示,组成这一行的六组分别描述了 X 加速度、Y 加速度、Z 加速度、X 陀螺仪、Y 陀螺仪和 Z 陀螺仪的最佳偏移量。 在上面的示例中,试验显示 +567 是 X 加速度的最佳偏移量,-2223 是 Y 加速度的最佳偏移量,以此类推。
下面是运行此示例的串行监视器输出。
代码参考
[1] ElectronicCats 的 MPU6050 库和示例:
https://github.com/ElectronicCats/mpu6050 |