九轴MPL刷新的最快频率应该是200HZ,直接出三个欧拉角--偏航、俯仰、翻滚(可以查看四元素),三轴加速度、角速度、磁力值和温度都能读,有单独的读取函数,读出来的都是原始值,还要处理(例程正点原子的实验_ MPU9250九轴传感器实验,用的不是中断,是一直读取,不过也挺快),用的是I2C,如果想用SPI,只需换一下底层即可参考SPI读取MPU9250数据

如果不用中断总是出现每次读取MPL一次后要复位一次(mpu_reset_fifo),这里面有延时函数造成总体时间过长,不知道为什么(应该是仿真造成的时间不连续进而引起MPL自动判断出现异常情况进行重启),用了中断(9250有中断引脚)后,连续读取1000次数据,用时5秒多,基本上最快了

DMP和MPL的库不一样,官方没开源,有的函数比如  inv_enable_9x_sensor_fusion();是无法查看具体内容的,KEIL跳转不过去的,属于内部引用函数

MPL运行后必须先将磁力计8字校准才能调用出MPL的数据,否则是六轴的MPL,数据虽然比DMP要准,实测一小时偏不了0.1度,当然DMP要比不用DMP准(不用算法的话),六轴MPL的数据每次开机不管载体朝向那,数值都是固定的;九轴虽然也是每次重启数据都是0,但是8字校准完成后数据就是相对地球的位置方向角度了,波动比较大,注意是波动不是漂移,大概有4、5度,但是不管过多长时间都是围绕某个值波动,不会漂移,可以用一个中值滤波或滑动平均滤波处理一下

磁力计校准完成后,函数inv_build_compass(compass,0,sensor_timestamp); //把磁力计值发给MPL   中compass会置为3,如果有强磁场干扰或者未校准会置0

磁力计如果收到的外界磁场过大时,九轴MPL会自动切换为六轴

也可以不用MPL,手动IMU融合,有算法更直观但是占用运算资源,参考IMU姿态融合或者椭球拟合的原理或者AHRS算法

x-IMU的融合代码

移植I2C程序引脚时,注意除了修改引脚的名字位置,还要修改输入输出方向stm32的IO口寄存器配置

例如以下几句

#define MPU_SDA_IN()  {GPIOB->CRH&=0X0FFFFFFF;GPIOB->CRH|=8<<28;}
#define MPU_SDA_OUT() {GPIOB->CRH&=0X0FFFFFFF;GPIOB->CRH|=7<<28;}

#define IIC_SCL    PBout(13) //SCL         
#define IIC_SDA    PBout(15) //SDA                  
#define MPU_READ_SDA   PBin(15)  //输入SDA

移植中可能用到的函数

关于MPU9250的六轴DMP和九轴MPL相关推荐

  1. 获取MPU9250九轴数据--以四轴飞行器姿态解算为例

    文章目录 MPU9250 简介 概述 特性 MPU9250的通信协议 四轴原理图 MPU9250地址确定 MPU9250与IIC通信时序 MPU9250获取原始数据 MPU9250的初始化流程 MPU ...

  2. Micropython——九轴MPU9250模块的使用

    在写ROS上位机的时候发现航向角yaw必须通过地磁仪进行校正解算,6轴的MPU6050缺少地磁仪模块,所以需要使用九轴的MPU9250. 文章目录 MPU-9250模块 接线 代码 MPU6050库文 ...

  3. 九轴传感器MPU9250数据读取磁力计

    有的小伙伴找不到MPU9250的中文资料,只能根据MPU6500的例程读取六轴. 关键的地方是MPU9250里已经说明了,看不到实在不应该. MPU9150里面是MPU6500+AK8975,MPU9 ...

  4. 三轴加速度计测量值生成算法matlab,[算法][三轴、六轴、九轴传感器算法分析] 1、分享一个三轴加速计matlab动态可视化脚本...

    一.有啥用 这里用的是LIS3DH三轴加速计,输出为X.Y.Z轴的加速度,通过串口连接电脑,电脑里运行matlab脚本通过串口实时获取数据并做可视化显示. 这里虽然是针对LIS3DH的,其实稍作修改即 ...

  5. 九轴陀螺仪ICM20948磁力计校准

    九轴陀螺仪ICM20948磁力计校准 ICM20948九轴传感器目前应用广泛,是非常适合用于智能手机,平板电脑,可穿戴式传感器,物联网和应 用的全球功耗最低的9轴MotionTracking设备.其融 ...

  6. 学习 STM32之九轴姿态传感器(BWT901CL)串口通信读取数据

    由于个人应用到3轴传感器,所以买了直接买了一个9轴的,用于学习STM32Core平台串口2连接维特智能串口Normal协议,然后通过串口1直接打印数据,接收传感器数据和与传感器进行通信:需要看产品文档 ...

  7. STM32应用(七)JY901九轴姿态模块(串口DMA空闲中断和I2C通信)

    文章目录 0.相关基础知识介绍 0.1六轴.九轴传感器有什么区别? 1.JY901模块简介 1.1 产品概述 1.2 性能参数 1.3 实物图和接线 2.软件和使用说明书 3.串口通信JY901 3. ...

  8. 使用扩展卡尔曼滤波(EKF)进行AHRS九轴姿态融合

    AHRS九轴姿态融合 EKF滤波 卡尔曼滤波 在做九轴姿态融合的过程中,这里介绍一种融合算法,基于EKF的九轴姿态融合算法: 首先表明,该算法并非自己想到的,算法原理参考了这篇论文:Dale E. S ...

  9. 九轴传感器姿态----AHRS算法开源项目推荐

    1. AHRS简介 九轴MEMS传感器(三轴陀螺仪+三轴加速度计+三轴磁强计)可以用来做航向和姿态参考系统,即AHRS(attitude &heading reference system), ...

最新文章

  1. 人群密度估计--Crowd Counting Via Scale-adaptive Convolutional Nerual Network
  2. 明天又回LOVO了!
  3. openstack 安装
  4. 使用Jenkins在Azure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)–第2天
  5. 支付宝接口调试经验总结
  6. java来电报名字的软件_读短信来电报姓名
  7. SeetaFace6人脸库体验(全部开源)
  8. Codeblock一直卡在编译界面
  9. App裂变活动多种玩法解析
  10. 采用HCNR200/201模拟量隔离电路分享
  11. 大专学数控技术是计算机一类的吗,学专科数控技术,出来后找什么工作呢?
  12. 【前端】HTML标签(下)
  13. [模板]线性递推+BM
  14. gif图用photoshop快速抽帧,压缩,去底,修改时间
  15. Oracle 游标遍历 显式游标 静态游标 OPEN v_cur(); WHILE v_cur%FOUND LOOP; LOOP FETCH v_cur INTO v_row
  16. SPN实现——限时1000ms的代换-置换网络加解密的时间优化思路
  17. Oracle中add_months()函数的用法
  18. ENGINEER01 - 分区规划和使用,LVM逻辑卷
  19. Python可视化常用方法和常见问题解决方案
  20. 87年兔竟然和88年龙是绝配,以后不要拿兔龙不合当借口了。

热门文章

  1. 移动硬盘打开后点击右键电脑就卡死,资源管理就崩溃
  2. Java与模式第十一章读书笔记
  3. 让虞书欣、李诞拍到停不下来!AR+AI双引擎的互动小游戏,如何打开IP新玩法?...
  4. 特高压输电线路在线监测系统方案-A40i 核心板 应用解析-飞凌嵌入式
  5. Word文档不能编辑?
  6. 2020知到python答案_参考答案2020知到APPPython程序设计
  7. 计算机三级数据库安全管理(一)、授权语句、WITH GRANT OPTION、guest、用户定义的数据库角色、Oracle安全管理、收权语句、安全管理、数据库用户、角色、用户分类、GRANT
  8. 《Photoshop Lightroom4 经典教程》—第2课2.4节使用左侧和右侧面板组
  9. Profibus-DP通讯中数据类型实数(REAL)和字(WORD)的转换
  10. 如何将旧笔记本电脑显示屏魔改扩展屏-2021-05-26