zengan007 发表于 2013-12-2 21:38:51

MPU9150磁力计的数据读取以及分析!

MPU9150的加速度、角速度、磁力计的数据(磁力计读取一直不变,不知道是不是I2C读取数据问题我简单的处理了一下之后还要怎么换算才可以与现实吻合啊!网上好多用什么卡尔曼 四元数融合 看的头昏脑胀的,大哥们给我点建议啊!

lynx19890808 发表于 2013-12-2 21:53:52

哎 刚才在群里回你了 你没看…………9150的磁力计每次读数前都得发送命令让他更新的 没有连续读取的功能 每次发送开始更新命令以后都得等至少10ms才能读数 不然数据不对

zksniper 发表于 2013-12-3 09:15:04

本帖最后由 zksniper 于 2013-12-3 09:16 编辑

读取顺序:
1.关闭MPU9150的I2C_MASTER模式
2.延迟2ms左右
3.开启bypass

4.读取compass数据

5.开启MPU9150的I2C_MASTER模式
6.延迟2ms左右
7.关闭bypass

以上这个顺序我试了很多遍,少1条都不行,不知道为什么,有时候虽然少其中1条可以读,但是过一会或者晃一晃数据就不变了。。

第2、6条这个延迟你可以试,找到最小的延迟时间。官方库里给的是3ms延迟,但是我觉得1.5ms就够了,2ms比较安全

zengan007 发表于 2013-12-3 15:35:01

zksniper 发表于 2013-12-3 09:15
读取顺序:
1.关闭MPU9150的I2C_MASTER模式
2.延迟2ms左右


我按照你的方法做了一下,能够读出数据。但是我把你的那些延迟时间随便怎么改都还是能读出数据出来啊!而且读出来的磁力计如何判断他们是否准确啊?

zksniper 发表于 2013-12-3 16:08:10

zengan007 发表于 2013-12-3 15:35
我按照你的方法做了一下,能够读出数据。但是我把你的那些延迟时间随便怎么改都还是能读出数据出来啊!而 ...

我试过中间不加延迟,也能读出来,但是长时间下时序会乱掉,偶尔掉电再上电,读出来的compass就会固定不变了,这个我感觉是芯片的bug,后来只好加上点延迟。

判断准确不准确,首先你要明白你读出来的compass数据的单位是什么,然后根据mpu9150的datasheet算出来,一般compass数据会随着你传感器旋转而变化那就是对了,具体数据准不准确,需要自己去算和校准。
页: [1]
查看完整版本: MPU9150磁力计的数据读取以及分析!