读取加速度和陀螺仪需要对mpu6500的I2C地址及进行 *** 作,读取磁力计需要对ak8963地址进行 *** 作。
mpu6500根据电路中AD0的不同,地址为0x68或者0x69, 磁力计为0x0C(在mpu9250中,电路已经确定,地址无法更改)。
在读取时,注意需要人工将地址左移一位(I2C读写为左对齐,第8位要存读写标志位),mpu6500为0xD0或是0xD2,磁力计为0x18(如果I2C读写中进行了左移 *** 作,那就不用人工左移一位)
您好,1、{0x80, MPU6500_PWR_MGMT_1}, // Reset Device{0x01, MPU6500_PWR_MGMT_1}, // Clock Source
就是这样配置的。
2、初始化之前延时1分钟左右,航向角融合我也没弄出来,现在用陀螺仪Z轴转动滤掉漂移换算成角度。航向角计算你可以了解一下椭圆拟合或者椭球拟合。
MPU9250和MPU9255内部都是集成MPU6515+AK8963两个传感器,接口也是一样兼容都含有I2C和SPI接口。真没看出有什么硬件有什么区别,只有内部固件有一点区别,后者dmp库多了几个功能接口函数,支持如骑行等运动模式检测等。MPU9150是只支持I2C的,MPU9250是支持SPI/I2C两种方式。里面的传感器也是不同的,MPU9150里面是MPU6050+AK8975,而MPU9250里面是MPU6500+AK8963,这两个传感器组合不同,前者性能上要高一些,后者主打低功耗方面的,各种参数要略低一些,比如唤醒速度等。具体请对照数据手册。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)