查看: 2446|回复: 0
打印 上一主题 下一主题

校准HMC5883的方法

[复制链接]
跳转到指定楼层
沙发
发表于 2015-6-10 08:57:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近需要使用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程序,写一个说明帮助不熟悉matlb的朋友使用:


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表示椭圆的半短轴转载


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

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