OpenEdv-开源电子网

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

GY-271 HMC5883电子罗盘 数据不稳定 跳动很大

[复制链接]

16

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2017-10-3
在线时间
42 小时
发表于 2017-12-7 19:33:25 | 显示全部楼层 |阅读模式
1金钱
GY-271 HMC5883电子罗盘。协议i2c。读取到的数据时大时小,没有线性变化。请问有什么解决办法,或者有什么处理异常数据的算法?

最佳答案

查看完整内容[请看2#楼]

需要先对x,y归一化才能用。 先输出x,y的值 然后水平转一圈,慢慢转也可以多转几圈,分别找到x,y的最大值和最小值。 然后把x,y都映射到-1到1这个数据段。 之后就可以用你现在的函数计算角度了,不过你现在这个函数也有点问题,不能直接+180,而是需要根据x,y的符号判断象限,来决定+多少
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
582
金钱
582
注册时间
2017-6-2
在线时间
192 小时
发表于 2017-12-7 19:33:26 | 显示全部楼层
需要先对x,y归一化才能用。

先输出x,y的值

然后水平转一圈,慢慢转也可以多转几圈,分别找到x,y的最大值和最小值。

然后把x,y都映射到-1到1这个数据段。

之后就可以用你现在的函数计算角度了,不过你现在这个函数也有点问题,不能直接+180,而是需要根据x,y的符号判断象限,来决定+多少
回复

使用道具 举报

16

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2017-10-3
在线时间
42 小时
 楼主| 发表于 2017-12-7 19:41:25 | 显示全部楼层
本帖最后由 ryanwong 于 2017-12-7 19:52 编辑

D:\资料\项目
像这样,我的电子罗盘的位置没有动过。下面的值是根据   atan2((double)y,(double)x) * (180/ 3.14159265) +180  算出来的
QQ图片20171207193842.png
回复

使用道具 举报

1

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2017-10-12
在线时间
76 小时
发表于 2017-12-8 09:32:12 | 显示全部楼层
把x,y打印出来看看
回复

使用道具 举报

16

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2017-10-3
在线时间
42 小时
 楼主| 发表于 2017-12-8 09:47:30 | 显示全部楼层
本帖最后由 ryanwong 于 2017-12-8 09:50 编辑
psychoo 发表于 2017-12-8 09:32
把x,y打印出来看看

还有两个问题,一个是现在打印的数值,是读取到的寄存器的值,转换为十进制的结果,怎么让它转换为我们读的懂的数值?第二个问题是,HMC5883数据寄存器的顺序是x,z,y吗?,我觉得我读寄存器的顺序有问题?
QQ图片20171208094423.png
回复

使用道具 举报

16

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2017-10-3
在线时间
42 小时
 楼主| 发表于 2017-12-8 10:20:07 | 显示全部楼层
jkd405 发表于 2017-12-8 09:48
需要先对x,y归一化才能用。

先输出x,y的值

谢谢你的指点,我想问一下,是直接将读到的寄存器的值进行归一化吗?就是如果寄存器的最大值,最小值分别为(11592,-128)(这是将读到的值转换为十进制的结果),直接归一化吗?
回复

使用道具 举报

0

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
582
金钱
582
注册时间
2017-6-2
在线时间
192 小时
发表于 2017-12-8 10:32:15 | 显示全部楼层
ryanwong 发表于 2017-12-8 10:20
谢谢你的指点,我想问一下,是直接将读到的寄存器的值进行归一化吗?就是如果寄存器的最大值,最小值分别 ...

对,直接归一化,其实你可以看看x,y两轴的最大值减去最小值,如果两个差值比较接近,可以不做幅度上的归一化,只要做一下零偏校准就行,就是让两个的平均值等于0

其实说白了x,y就相当于sin cos,正常应该都是-1到1,但是正切是除法运算,所以两个都从-5000到5000的话也不影响结果,但是两个不一致差的多的话,就是椭圆了。0偏是必须先校的。



回复

使用道具 举报

16

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2017-10-3
在线时间
42 小时
 楼主| 发表于 2017-12-8 11:11:48 | 显示全部楼层
jkd405 发表于 2017-12-8 10:32
对,直接归一化,其实你可以看看x,y两轴的最大值减去最小值,如果两个差值比较接近,可以不做幅度上的归 ...

像这样数据对吗?下面是通过 atan2(y,x) * (180 / 3.14159265) 算出来的。x,y我直接定义为double类型。我后面没有加180。我不知道要加多少。

atan2算出的结果

atan2算出的结果

x,y,z三轴的数据

x,y,z三轴的数据
回复

使用道具 举报

0

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
582
金钱
582
注册时间
2017-6-2
在线时间
192 小时
发表于 2017-12-8 11:17:47 | 显示全部楼层
ryanwong 发表于 2017-12-8 11:11
像这样数据对吗?下面是通过 atan2(y,x) * (180 / 3.14159265) 算出来的。x,y我直接定义为double类型。我 ...

应该没问题了,你旋转一下看看,加多少那个,你把x,y和你没加之前的角度同时打出来,慢慢转慢慢找规律吧
回复

使用道具 举报

16

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2017-10-3
在线时间
42 小时
 楼主| 发表于 2017-12-8 11:27:36 | 显示全部楼层
jkd405 发表于 2017-12-8 11:17
应该没问题了,你旋转一下看看,加多少那个,你把x,y和你没加之前的角度同时打出来,慢慢转慢慢找规律吧

好的,谢谢大哥
回复

使用道具 举报

16

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2017-10-3
在线时间
42 小时
 楼主| 发表于 2017-12-8 12:04:00 | 显示全部楼层
jkd405 发表于 2017-12-8 11:17
应该没问题了,你旋转一下看看,加多少那个,你把x,y和你没加之前的角度同时打出来,慢慢转慢慢找规律吧

还有一个问题,能告诉我,atan2....那个公式是怎么来的吗?谢谢。
回复

使用道具 举报

0

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
582
金钱
582
注册时间
2017-6-2
在线时间
192 小时
发表于 2017-12-8 13:39:42 | 显示全部楼层
ryanwong 发表于 2017-12-8 12:04
还有一个问题,能告诉我,atan2....那个公式是怎么来的吗?谢谢。

x,y的值本身就是与磁场夹角的正弦和余弦。比值就是正切啊,求反正切就得到传感器与磁场的夹角了
回复

使用道具 举报

16

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2017-10-3
在线时间
42 小时
 楼主| 发表于 2017-12-8 13:48:22 | 显示全部楼层
jkd405 发表于 2017-12-8 13:39
x,y的值本身就是与磁场夹角的正弦和余弦。比值就是正切啊,求反正切就得到传感器与磁场的夹角了

我知道了,谢谢。
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2019-7-30
在线时间
4 小时
发表于 2019-8-5 16:47:44 | 显示全部楼层
能分享一下程序么?
回复

使用道具 举报

0

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2019-3-15
在线时间
29 小时
发表于 2019-11-27 14:49:39 | 显示全部楼层
学习一下
回复

使用道具 举报

14

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
192
金钱
192
注册时间
2019-12-4
在线时间
29 小时
发表于 2021-10-16 19:56:48 | 显示全部楼层
楼主能分享一下程序吗
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-12 06:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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