QMC5883L 校准方法

1、   数据读取

X_QMC=BUF[1]<< 8 | BUF[0]; //Combine MSB and LSB of X Data output register  最高有效位

Y_QMC=BUF[3]<< 8 | BUF[2]; //Combine MSB and LSB of Y Data output register

Z_QMC=BUF[5]<< 8 | BUF[4]; //Combine MSB and LSB of Z Data output register

2、 水平校准:把椭圆修到正圆,一、修偏心,二、修半径。

a)、选定中心点,以固定半径R水平旋转,找出x和y的最大最小值x_max、x_min、y_max 、y_min。

b)、于是,x的偏移: Xoffset= (x_max + x_min) / 2;

c)、x的比例取:x_gain=1

d)、y的偏移:Yoffset =(y_max + y_min) / 2;

e)、y的比例:y_gain=(x_max – x_min) / (y_max – y_min);

 

X_QMC = Xgain *(X_QMC -Xoffset);

Y_QMC = Ygain * (Y_QMC -Yoffset);

 

3、空间校准:把椭球修到正球

a)、空间旋转芯片,找出xyz的最大最小值xmax、xmin、ymax 、ymin、zmax 、zmin。

b)、于是,x的偏移: Xoffset= (xmax + xmin) / 2;

c)、x的比例取:x_gain=1

d)、y的偏移:Yoffset =(ymax + ymin) / 2;

e)、y的比例:y_gain=(xmax – xmin) / (y_max -y_min);

f)、 z的偏移:Zoffset =(zmax + zmin) / 2;

g)、z的比例:z_gain=(xmax – xmin) / (z_max -z_min);

 

X_QMC = QMC_Xgain *(X_QMC – QMC_Xoffset);

Y_QMC = QMC_Ygain * (Y_QMC – QMC_Yoffset);

Z_QMC = QMC_Zgain * (Z_QMC- QMC_Zoffset);

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值