单片机/MCU论坛
登录
直播中
张文
12年用户
476经验值
擅长:模拟技术
私信
关注
[文章]
教你如何将HMC5883的精确度达到5°
HMC5883
最近做四轴飞行器是需要使用HMC5883,开始使用的时候感觉数据很离谱,我说是芯片坏了!数据告诉我,是你坏了,不知道要校准吗!!!我已哭晕在路上。
于是开始用
(xmax+xmin)/2 (ymax+ymin)/2这种简单的方法进行了校验,但是
误差很大
,有10°,就想找一种更精确的方式,果然找到了,效果不错,达到5°。现在在坛子里分享一下方法:
校准步骤:
1.将芯片水平放置,不断旋转芯片得到一组xy轴数据
2.使用
matlab
拟合椭圆,得到中心坐标(xc,yc) 半长轴a 半短轴b
3.在程序中校准x,y:
x=x-xc
y=y-yc
y=y*(b/a)若椭圆是“竖着”的
y=y*(a/b) 若椭圆是“躺着”的
附件中有完整的matlab程序,考虑到有些朋友不熟悉matlab,可以按如下方式使用:
1.打开matlab,设置Current Folder为HMC5883校准文件夹
2.输入XY=[x1 y1;...;xi yi;...;xn yn]其中xi,yi为将芯片水平旋转到各个角度后所得的测量值
3.在主窗口输入hmc5883然后回车即可
此时将绘制出原始点以及拟合后的椭圆,并输出:result = xc yc a b
其中(xc,yc)表示椭圆中心的坐标,a表示椭圆的半长轴,b表示椭圆的半短轴
HMC5883校准.rar
(18.68 KB)
(下载次数: 164, 2015-5-6 15:12 上传)
回帖
(7)
阳阳熊猫
2015-5-6 15:23:37
好东西,谢啦
好东西,谢啦
举报
galina0217
2015-5-6 16:50:33
赞一个{:12:
赞一个{:12:
举报
hyy8010557
2015-6-21 16:20:50
很好谢谢大神,!!!!!!!!!!!!!!!!!!
很好谢谢大神,!!!!!!!!!!!!!!!!!!
举报
1981818001
2016-6-28 20:49:37
好像很复杂。。。
好像很复杂。。。
举报
李杰
2016-6-30 07:35:00
谢谢分享,好东西大家一起来分享!
谢谢分享,好东西大家一起来分享!
举报
王伟
2017-8-1 18:29:48
好东西 ,收下了
好东西 ,收下了
举报
无人机
2017-12-6 09:39:09
好东西 ,收下了
好东西 ,收下了
举报
更多回帖
rotate(-90deg);
回复
相关帖子
HMC5883
HMC5883
pdf DataSheet
354
关于
hmc5883
3113
有关
HMC5883
的问题请教
6404
HMC5883
测不出数据
3396
hmc5883
的坐标数据处理?
2872
请问
hmc5883
的作用是什么?
3154
什么是准确
度
/
精确度
?
2899
HMC5883
数字罗盘算法优化
3232
hmc5883
读出的却不是相应的角度
2232
关于
HMC5883
电子罗盘的数据输出问题
13951
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分