MPU9250内部DMP及MPL评测与JY901角度数据对比

最近在网上看到关于MPU9250内部有自带9轴MPL角度解算的功能,因为刚好工作需要,于是在网上查找了一番资料,经过琢磨,目前基本把MPU9250内部的四元数和角度都取出来了;因为之前开发一直使用的是维特智能的JY901模块,模块也是内置MPU9250,只不过是角度什么都处理好,直接输出,而且他们还加入了自己的算法,当时懒得折腾,直接买了几块,省去我大半的时间去琢磨一些算法什么的;刚好看到网上有MPL的技术,就拿来和JY901模块做下对比,具体操作流程及使用效果怎么样,我这边会在下文提及到。

1、前期准备

1.1、材料准备:
材料准备 备注
STM32F103RCT6开发板 在网上搜索都可以买到这种开发板,推荐使用STM32F103系列的,不需要去移植程序,毕竟移植程序也是非常耗时间的一件事,这里注意了,为什么要用RC系列的,因为MPU9250的MPL官方库至少有70K的Flash,选太小Flash芯片,不够存放代码量
MPU9250模块 直接在网上购买现成模块即可,没太多要求,只要I2C和SPI管脚有引出即可,这里我们需要用到I2C,需要用到4个引脚
胶带 用来固定线和MPU9250模块,避免8字校准时扯到线,导致接触不良
杜邦线及护套线 杜邦线用来连接MPU9250模块和开发板;护套线用来串口输出,在条件允许的情况下,最好别用杜邦线,因为整个过程中,会涉及到航向角8字校准,传感器要绕圈画8字,这样只要线稍微不牢固,容易断电,调试效果非常差
外壳 要测量角度,就必须使用外壳固定,千万不要用手拿着,这样测试角度是不标准的
串口USB-TTL 用来打印角度数据,可用串口助手查看数据
J-Link 用于下载程序
JY901模块 用来对比角度数据
1.2、软件准备
软件准备 备注
Keil5 开发环境,以下代码都是在此环境调试开发
9轴MPL示例代码 https://download.csdn.net/download/weixin_40905871/12819773
串口助手 用于显示角度数据

2、硬件连接

2.1、实物接线

在这里插入图片描述
这里先附上图片,主要两个部分,MPU9250模块(左边紫色模块)和STM32开发板,这里为什么不把MPU9250模块装进外壳里面呢,主要是因为磁场下面不能有电路布线,为了避免对比加入其他不可控因素,所以把他固定在外壳的耳朵;接下来直接讲接线,因为每个人手上的开发板不一样,附上图片也未必能讲清楚,这里直接用芯片和模块的管脚做讲解;

这里再附上JY901的连接图,JY901模块只需要串口即可,其他参考他们的说明书;
在这里插入图片描述

2.2、管脚接线图在这里插入图片描述

3、程序讲解

这里先讲下main函数的整体结构:
在这里插入图片描述
打开程序工程“Template.uvprojx”(请下载1.2章节的MPL示例程序链接,具体的Keil5安装这里就不讲解了);找到main.c文件,结合以上的程序流程框图,就能了解整个程序的工作流程了;
先附上主函数:


int main(void)
{
   
	unsigned char ucMPU9250Str[100];
	short sCaliFlag = 0;   //磁场校准标志位
	short sAcc[3],sGyro[3],sMag[3];
	float pitch,roll,yaw; 	        //欧拉角     
	delay_init();                //初始化延时函数
	uart_init(115200);              //初始化USART
	LED_Init();                     //初始化LED 
 //  MPU9250_Init();                     //这个函数可注释
	while(mpu_dmp_init()){
   ;}

    while(1)
    {
   
			if(mpu_mpl_get_data(sAcc,sGyro,sMag,&pitch,&roll,&yaw,&sCaliFlag)==0)
			{
   	
				memset(ucMPU9250Str,0,100);
				sprintf(ucMPU9250Str,"pitch:%.3f,roll:%.3f,yaw:%.3f,CaliFlag:%d\r\n"<
  • 9
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值