因仑“3+1”工程特种兵精英论坛

标题: 校准HMC5883的方法 [打印本页]

作者: 张衍波    时间: 2015-6-10 08:57
标题: 校准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程序,写一个说明帮助不熟悉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表示椭圆的半短轴转载







欢迎光临 因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) Powered by Discuz! X3.4