首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ST集成传感器方案实现电子罗盘功能(3)

ST集成传感器方案实现电子罗盘功能(3)

4.1  平面校准方法
针对XY轴的校准,将配备有磁传感器的设备在XY平面内自转,如图11,等价于将地球磁场矢量绕着过点O(γx,γy)垂直于XY平面的法线旋转, 而红色的圆为磁场矢量在旋转过程中在XY平面内投影的轨迹。这可以找到圆心的位置为((Xmax + Xmin)/2, (Ymax + Ymin)/2).  同样将设备在XZ平面内旋转可以得到地球磁场在XZ平面上的轨迹圆,这可以求出三维空间中的磁场干扰矢量γ(γx, γy, γz).

4.2  立体8字校准方法
一般情况下,当带有传感器的设备在空中各个方向旋转时,测量值组成的空间几何结构实际上是一个圆球,所有的采样点都落在这个球的表面上,如图13所示,这一点同两维平面内投影得到的圆类似。

图13 地球磁场空间旋转后在传感器空间坐标内得到球体

这种情况下,可以通过足够的样本点求出圆心O(γx, γy, γz), 即固定磁场干扰矢量的大小及方向。公式如下:

8字校准法要求用户使用需要校准的设备在空中做8字晃动,原则上尽量多的让设备法线方向指向空间的所有8个象限,如图14所示。

图14 设备的空中8字校准示意图


4.2  十面校准方法
同样,通过以下10面校准方法,也可以达到校准的目的。

1

2

3

4

5

Face me

Heading up

Face down

Heading front

Face me

Head down

Face me

Heading Left

Face me

Heading up

6

7

8

9

10

Face up

Heading front

Face Front

Heading down

Face front

Heading right

Face front

Heading up

Face down

Head front

图15 10面交准法步骤


如图16所示,经过10面校准方法之后,同样可以采样到以上所述球体表面的部分轨迹,从而推导出球心的位置,即固定磁场干扰矢量的大小及方向。

图16 10面校准后的空间轨迹


5.倾斜补偿及航偏角计算
经过校准后电子指南针在水平面上已经可以正常使用了。但是更多的时候手机并不是保持水平的,通常它和水平面都有一个夹角。这个夹角会影响航向角的精度,需要通过加速度传感器进行倾斜补偿。

对于一个物体在空中的姿态,导航系统里早已有定义,如图17所示,Android中也采用了这个定义。Pitch(Φ)定义为x轴和水平面的夹角,图示方向为正方向;Roll(θ)定义为y轴和水平面的夹角,图示方向为正方向。由Pitch角引起的航向角的误差如图18所示。可以看出,在x轴方向10度的倾斜角就可以引起航向角最大7-8度的误差。



图17 Pitch角和Roll角定义
图18 Pitch角引起的航向角误差



手机在空中的倾斜姿态如图19所示,通过3轴加速度传感器检测出三个轴上重力加速度的分量,再通过式2可以计算出Pitch和Roll。

图19 手机在空中的倾斜姿态




式2
式3可以将磁力计测得的三轴数据(XM,YM ,ZM)通过Pitch和Roll转化为式1中计算航向角需要的Hy和Hx。之后再利用式1计算出航向角。

       式3

6Android平台指南针的实现

在当前流行的android 手机中,很多都配备有指南针的功能。为了实现这一功能,只需要配备有ST提供的二合一传感模块LSM303DLH,ST 提供整套解决方案。Android中的软件实现可以由以下框图表示:


其中包括:
  • BSP Reference
  • Linux Kernel Driver (LSM303DLH_ACC + LSM303DLH_MAG)
  • HAL Library(Sensors_lsm303dlh + Liblsm303DLH) for sensors.default.so
经过library 的计算,上层的应用可以很轻松的运用由Android定义由Library提供的航偏角信息进行应用程序的编写。
返回列表