集成传感器方案实现电子罗盘功能
电子指南针主要是通过感知地球磁场的存在来计算磁北极的方向。然而由于地球磁场在一般情况下只有微弱的0.5高斯,而一个普通的手机喇叭当相距2厘米时仍会有大约4高斯的磁场,一个手机马达在相距2厘米时会有大约6高斯的磁场,这一特点使得针对电子设备表面地球磁场的测量很容易受到电子设备本身的干扰。
磁场干扰是指由于具有磁性物质或者可以影响局部磁场强度的物质存在,使得磁传感器所放置位置上的地球磁场发生了偏差。如图11所示,在磁传感器的XYZ 坐标系中,绿色的圆表示地球磁场矢量绕z轴圆周转动过程中在XY平面内的投影轨迹,再没有外界任何磁场干扰的情况下,此轨迹将会是一个标准的以O(0,0)为中心的圆。当存在外界磁场干扰的情况时,测量得到的磁场强度矢量α将为该点地球磁场β与干扰磁场γ的矢量和。记作:
图11 磁传感器XY坐标以及磁力线投影轨迹
一般可以认为,干扰磁场γ在该点可以视为一个恒定的矢量。有很多因素可以造成磁场的干扰,如摆放在电路板上的马达和喇叭,还有含有铁镍钴等金属的材料如屏蔽罩,螺丝,电阻, LCD背板以及外壳等等。同样根据安培定律有电流通过的导线也会产生磁场,如图12。
图12 电流对磁场产生的影响
为了校准这些来自电路板的磁场干扰,主要的工作就是通过计算将γ求出。
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所示。
4.2 十面校准方法
同样,通过以下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 手机在空中的倾斜姿态
6.Android平台指南针的实现
在当前流行的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提供的航偏角信息进行应用程序的编写。
- 用LatticeXP FPGA 桥接吉比特媒体独立接口(01-18)
- 让LM1875声音更靓(02-07)
- 适合LIN总线控制车门区域应用的高级电源管理器件(02-01)
- 现代通信系统电源设计(02-13)
- 便携式应用处理器设计中的电源管理(03-02)
- 利用智能交流电控制增加家电系统的安全性(04-23)