基于LSM303DLH集成传感器的电子罗盘实现方法
轨迹,从而推导出球心的位置,即固定磁场干扰矢量的大小及方向。
图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提供的航偏角信息进行应用程序的编写。
- 基于集成传感器的模拟电子罗盘功能设计(10-10)
- 集成传感器方案实现电子罗盘功能(11-04)
- 手机中各类传感器解析(09-24)
- 浅谈智能手机中电子罗盘元件的应用原理(07-30)
- [传感器知识]电子罗盘和陀螺仪究竟有何区别?(07-30)
- 12位串行A/D转换器MAX187的应用(10-06)