设置MPU6050 DMP处理的俯仰和横摇初始值



当我的MPU6050断开连接并复位时,我想处理这种情况。不幸的是,在重新调试后,MPU6050显示俯仰和滚转值为0,并在~1-2s后稳定。我想通过在重置之前写入最后读值来提示DMP。它有任何接口吗?顺便说一句,无论我将LPF配置为5或188 - 'issue'仍然存在。

解决方案

尝试记录从D_0_192开始的16字节内存(在motion_driver_6.12inv_mpu_dmp_motion_driver.c中定义)。

unsigned short buf[16];
mpu_read_mem(D_0_192, 16, buf);
// your chosen method of logging this buffer

我的mpu_set_dmp_state(1)后不久是这样的:

3fffdfeb 003eb3b6 000d2278 00002f3c

像这样稳定15秒后:

1e246556 386e559d 01b407b2 004d6ad9

如果使用mpu6050的设备上下颠倒启动,则读数稳定需要大约这么长时间。

读数稳定后,将该值记录为常数,并在DMP设置时将其写回相同的位置:

mpu_write_mem(D_0_192, 16, buf);
<标题>

我记录了inv_mpu_dmp_motion_driver.c中提到的一些DMP的内容,但未引用/未记录的寄存器,认为它们可能在某个地方暴露了DMP状态的这一部分。我是在给mpu_set_dmp_state(1)打了一个电话后这样做的。

我发现一些值在DMP运行时发生了变化。D_0_192,我认为是对应于态度的内部状态,可以通过其缓慢的松弛时间来识别。我还没有花时间去解读里面的内容。我只复制了缓冲区并观察了预期的结果——DMP fifo的内容从记录的姿态开始。

<标题>

免责声明这是未记录的,可能是非常错误的,并且肯定是脆弱的(未经在motion_driver_6.12中包含的DMP固件blob以外的任何东西上测试)。使用风险自负。

相关内容

  • 没有找到相关文章

最新更新