OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7790|回复: 36

MPU6050+HMC5883L同时驱动(硬件IIC)

[复制链接]

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2017-3-15
在线时间
42 小时
发表于 2017-3-15 15:40:43 | 显示全部楼层 |阅读模式
本帖最后由 Taven 于 2017-3-18 14:40 编辑

      我看论坛搞MPU6050之类的模块的人还是蛮多的,但或多或少都有问题,特别是在使用MPU6050时同时读取HMC5883L,成功的经验贴不多。正好最近也在玩GY_86这个模块,单片机使用的STM32F103C8T6最小系统版。也是摸索了一段时间,好在成功同时读取了MPU6050和HMC5883L的数据,当然MS5611也是可以同时读取的,这部分程序还没完全写好,在转换高度的环节还有些问题。 STM32F103C8T6-IMU-0302.rar (4.02 MB, 下载次数: 1619)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2017-3-15 18:43:53 | 显示全部楼层
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2017-3-15 18:44:05 | 显示全部楼层
没有融合九轴姿态么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2017-3-15
在线时间
42 小时
 楼主| 发表于 2017-3-15 23:53:24 来自手机 | 显示全部楼层
正点原子 发表于 2017-3-15 18:44
没有融合九轴姿态么?

暂时还没有把罗盘数据与YAW轴融合,在想是不是可以把罗盘数据接进DMP里,那样就更好了。
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2017-3-7
在线时间
5 小时
发表于 2017-3-17 08:26:25 来自手机 | 显示全部楼层
感谢感谢
回复 支持 反对

使用道具 举报

3

主题

10

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2017-3-23
在线时间
14 小时
发表于 2017-3-23 10:56:39 | 显示全部楼层
Taven 发表于 2017-3-15 23:53
暂时还没有把罗盘数据与YAW轴融合,在想是不是可以把罗盘数据接进DMP里,那样就更好了。

我最近也在想着怎么把地磁的数据融合进去,不过看官方dmp手册说明,好像地磁的融合算法要自己写了
回复 支持 反对

使用道具 举报

3

主题

10

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2017-3-23
在线时间
14 小时
发表于 2017-3-23 10:58:03 | 显示全部楼层
本帖最后由 Stevn 于 2017-3-23 11:00 编辑

QQ截图20170323105705.png
回复 支持 反对

使用道具 举报

14

主题

76

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2016-7-27
在线时间
73 小时
发表于 2017-3-23 11:12:35 | 显示全部楼层
正点原子 发表于 2017-3-15 18:44
没有融合九轴姿态么?

原子哥,我在UCOS-iii下用6050加DMP时,DMP初始化中的自检是失败的,但是如果将初始化什么的直接提到main函数,不启用UCOS却又是成功的,这是什么原因,用这个DMP时不知道你们测试时角度的抖动范围(不加程序滤波)是多少?
回复 支持 反对

使用道具 举报

39

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2016-3-30
在线时间
24 小时
发表于 2017-3-23 11:46:00 | 显示全部楼层
更多学习嵌入式,物联网单片机,PCB ,FPGA, ARM 可加2905283896
回复 支持 反对

使用道具 举报

3

主题

10

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2017-3-23
在线时间
14 小时
发表于 2017-3-24 10:13:08 | 显示全部楼层
链接不能下载啊,老是下载一点就失败了,提示链接失效
回复 支持 反对

使用道具 举报

33

主题

310

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
495
金钱
495
注册时间
2016-12-31
在线时间
63 小时
发表于 2017-3-26 21:03:49 | 显示全部楼层
楼主,你好就是那个原子哥通过DMP输出的姿态角数据还漂吗?还需要自己加一些滤波算法吗?
回复 支持 反对

使用道具 举报

1

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2017-3-22
在线时间
16 小时
发表于 2017-3-27 01:17:35 | 显示全部楼层
感谢楼主,顶
回复 支持 反对

使用道具 举报

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2017-3-15
在线时间
42 小时
 楼主| 发表于 2017-3-27 10:12:39 | 显示全部楼层
Stevn 发表于 2017-3-23 10:56
我最近也在想着怎么把地磁的数据融合进去,不过看官方dmp手册说明,好像地磁的融合算法要自己写了

恩恩,好像是的
回复 支持 反对

使用道具 举报

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2017-3-15
在线时间
42 小时
 楼主| 发表于 2017-3-27 10:13:52 | 显示全部楼层
arao和xiaomi 发表于 2017-3-26 21:03
楼主,你好就是那个原子哥通过DMP输出的姿态角数据还漂吗?还需要自己加一些滤波算法吗?

不怎么飘,就YAW轴久了飘一点点
回复 支持 反对

使用道具 举报

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2017-3-15
在线时间
42 小时
 楼主| 发表于 2017-3-27 10:14:38 | 显示全部楼层
Stevn 发表于 2017-3-24 10:13
链接不能下载啊,老是下载一点就失败了,提示链接失效

可以下啊
回复 支持 反对

使用道具 举报

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2017-3-15
在线时间
42 小时
 楼主| 发表于 2017-3-27 10:18:11 | 显示全部楼层

不客气
回复 支持 反对

使用道具 举报

33

主题

310

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
495
金钱
495
注册时间
2016-12-31
在线时间
63 小时
发表于 2017-3-27 11:31:28 | 显示全部楼层
Taven 发表于 2017-3-27 10:13
不怎么飘,就YAW轴久了飘一点点

你好,我用原子哥的程序通过串口把数据发出去有点问题,就是连接匿名上位机,数据发上去是比较乱,不能接受到波形,你知道是什么原因吗?
回复 支持 反对

使用道具 举报

33

主题

310

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
495
金钱
495
注册时间
2016-12-31
在线时间
63 小时
发表于 2017-3-27 11:32:10 | 显示全部楼层
Taven 发表于 2017-3-27 10:13
不怎么飘,就YAW轴久了飘一点点

就是滤波算法是为了使数据不漂,测量数据稳定是吗
回复 支持 反对

使用道具 举报

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2017-3-15
在线时间
42 小时
 楼主| 发表于 2017-3-27 14:34:52 | 显示全部楼层
arao和xiaomi 发表于 2017-3-27 11:32
就是滤波算法是为了使数据不漂,测量数据稳定是吗

恩恩,mpu6050的DMP自带滤波的,然后MS5611自己加个一介滤波就可以了,磁力计的话我看数据还好。
回复 支持 反对

使用道具 举报

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2017-3-15
在线时间
42 小时
 楼主| 发表于 2017-3-27 14:39:29 | 显示全部楼层
arao和xiaomi 发表于 2017-3-27 11:31
你好,我用原子哥的程序通过串口把数据发出去有点问题,就是连接匿名上位机,数据发上去是比较乱,不能接 ...

恩,这之前我做过,用的F103ZET6的最小系统,传个之前测试过的给你,我猜你可能上位机设置有问题。啰嗦几句:(匿名四轴上位机接收数据好像是分两部分的,一部分是三轴的角度数据,用于显示三维的飞行器动态,另一部分是原始的六轴数据,用于显示波形曲线那个界面。也就是说你传数据是要传两种的)。

STM32F103ZET6_硬件IIC2读取MPU6050使用DMP解算角度上位机版.rar

6.7 MB, 下载次数: 219

回复 支持 反对

使用道具 举报

33

主题

310

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
495
金钱
495
注册时间
2016-12-31
在线时间
63 小时
发表于 2017-3-27 15:07:31 | 显示全部楼层
Taven 发表于 2017-3-27 14:34
恩恩,mpu6050的DMP自带滤波的,然后MS5611自己加个一介滤波就可以了,磁力计的话我看数据还好。

恩,好的,谢谢,就是我这个模块的话MPU6050和磁力计HMC5883L整合在一起的,然后现在能把加速度计和陀螺仪的数据能读取出来,那个磁力计的外界扩展的6050第二iic上面的,那么我去读磁力计的数据的时候需要注意一些什么事项呢?就是读取出来磁力计的数据过后还需要一阶滤波是吧?谢谢哈
回复 支持 反对

使用道具 举报

3

主题

10

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2017-3-23
在线时间
14 小时
发表于 2017-3-27 21:46:20 | 显示全部楼层
我用uCOS,在一个任务中读取dmp数据并发送给上位机,怎么明显响应变慢了啊,没有跑裸板响应快
回复 支持 反对

使用道具 举报

33

主题

310

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
495
金钱
495
注册时间
2016-12-31
在线时间
63 小时
发表于 2017-3-28 07:06:44 | 显示全部楼层
Taven 发表于 2017-3-27 14:39
恩,这之前我做过,用的F103ZET6的最小系统,传个之前测试过的给你,我猜你可能上位机设置有问题。啰嗦几 ...

恩,好的谢谢哈,我仔细研读一下
回复 支持 反对

使用道具 举报

33

主题

310

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
495
金钱
495
注册时间
2016-12-31
在线时间
63 小时
发表于 2017-3-28 08:56:15 | 显示全部楼层
Taven 发表于 2017-3-27 14:39
恩,这之前我做过,用的F103ZET6的最小系统,传个之前测试过的给你,我猜你可能上位机设置有问题。啰嗦几 ...

恩,是的,那个数据上传没有问题,我发现是那个波特率的问题,就是我这个开发板不能设置成500000的波特率,不知道是不是波特率太高了开发板不支持还是什么别的原因,我设置成115200就可以了,可以正常显示波形和数据了
回复 支持 反对

使用道具 举报

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2017-3-15
在线时间
42 小时
 楼主| 发表于 2017-3-28 11:44:29 | 显示全部楼层
arao和xiaomi 发表于 2017-3-27 15:07
恩,好的,谢谢,就是我这个模块的话MPU6050和磁力计HMC5883L整合在一起的,然后现在能把加速度计和陀螺 ...

按照原子哥的程序就好,主要就是注意,关闭IIC的主模式(不让MPU6050控制辅助IIC),让辅助IIC与主IIC通道直通,使得MCU可以直接通过辅助IIC访问HMC5883L
回复 支持 反对

使用道具 举报

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2017-3-15
在线时间
42 小时
 楼主| 发表于 2017-3-28 11:44:44 | 显示全部楼层
arao和xiaomi 发表于 2017-3-28 07:06
恩,好的谢谢哈,我仔细研读一下

不客气
回复 支持 反对

使用道具 举报

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2017-3-15
在线时间
42 小时
 楼主| 发表于 2017-3-28 11:46:46 | 显示全部楼层
Stevn 发表于 2017-3-27 21:46
我用uCOS,在一个任务中读取dmp数据并发送给上位机,怎么明显响应变慢了啊,没有跑裸板响应快

系统方面我还没有深究过,不过建议关注一下你采样速率,串口速率,和发送函数的调用速率这几方面。
回复 支持 反对

使用道具 举报

3

主题

10

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2017-3-23
在线时间
14 小时
发表于 2017-4-6 15:03:13 | 显示全部楼层
楼主研究的怎么样了,官方 的MPL库中有几个关键函数没有开源,官方用了一个lib库,看的有点懵
回复 支持 反对

使用道具 举报

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2017-3-15
在线时间
42 小时
 楼主| 发表于 2017-4-7 16:24:26 | 显示全部楼层
Stevn 发表于 2017-4-6 15:03
楼主研究的怎么样了,官方 的MPL库中有几个关键函数没有开源,官方用了一个lib库,看的有点懵

最近没在看6050,刚搞完内部flASH做U盘,USB_masstory的那个库研究的差不多了。在看串口iap的东西,后面可以通过串口无线更新程序。
回复 支持 反对

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2017-7-31
在线时间
29 小时
发表于 2018-6-17 17:38:16 | 显示全部楼层
楼主你好,最近自己研究小四轴,看了你的分享,很好。但是发现一个问题,你的例程硬件仿真几乎几十毫秒级别的,根本没法用,我的软件模拟几乎是两毫秒完成5883和6050读取,你有研究过软件模拟的么?最后一个问题就是6050设置dmp输出姿态角以后还能读取辅助iic的磁力计值么?
回复 支持 反对

使用道具 举报

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2017-3-15
在线时间
42 小时
 楼主| 发表于 2019-2-14 17:10:15 | 显示全部楼层
因陀罗之箭 发表于 2018-6-17 17:38
楼主你好,最近自己研究小四轴,看了你的分享,很好。但是发现一个问题,你的例程硬件仿真几乎几十毫秒级别 ...

几十毫秒也是够用了,因为DMP使用的时候速率就是设置的100HZ(最高200hz),完全可以满足飞行
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2017-7-1
在线时间
31 小时
发表于 2020-5-4 09:34:44 | 显示全部楼层
您好,楼主,我这边程序6050 IMU初始化的时候一直都是自检不成功,我也平放了,不知道为什么还是自检不成功,要怎么平放?
回复 支持 反对

使用道具 举报

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2017-3-15
在线时间
42 小时
 楼主| 发表于 2020-9-22 16:28:12 | 显示全部楼层
浅笺CCC 发表于 2020-5-4 09:34
您好,楼主,我这边程序6050 IMU初始化的时候一直都是自检不成功,我也平放了,不知道为什么还是自检不成功 ...

用的DMP库吗?单步运行看一下自检通过的的条件,看看哪个不满足
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2019-8-21
在线时间
20 小时
发表于 2023-12-12 13:50:01 | 显示全部楼层
网上不是说利用HMC5883可以避免Yaw的飘移吗?你这个加了怎么没有效果?
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2019-8-21
在线时间
20 小时
发表于 2023-12-12 13:53:49 | 显示全部楼层
正点原子 发表于 2017-3-15 18:44
没有融合九轴姿态么?

原子哥,带带我们怎么把地磁传感器的数据融合进去
回复 支持 反对

使用道具 举报

1

主题

14

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2023-12-14
在线时间
5 小时
发表于 2023-12-15 20:22:37 来自手机 | 显示全部楼层
因陀罗之箭 发表于 2018-6-17 17:38
楼主你好,最近自己研究小四轴,看了你的分享,很好。但是发现一个问题,你的例程硬件仿真几乎几十毫秒级别 ...

哥。看到iic我想到一个问题。就是硬件iic00k通信如果被中断打断还可以继续通信。但是400k就是不行最大就是到360k。而且经常死在iic应答循环事件6上。改了好几天也没太明白。软件iic可以避免这个问题吗
回复 支持 反对

使用道具 举报

9

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2017-3-15
在线时间
42 小时
 楼主| 发表于 2024-1-2 01:51:44 | 显示全部楼层
ming525437 发表于 2023-12-12 13:50
网上不是说利用HMC5883可以避免Yaw的飘移吗?你这个加了怎么没有效果?

DMP库只支持YAW用陀螺仪积分
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 13:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表