ST集成傳感器方案實現(xiàn)電子羅盤功能
圖16 10面校準(zhǔn)后的空間軌跡
5.傾斜補償及航偏角計算
經(jīng)過校準(zhǔn)后電子指南針在水平面上已經(jīng)可以正常使用了。但是更多的時候手機并不是保持水平的,通常它和水平面都有一個夾角。這個夾角會影響航向角的精度,需要通過加速度傳感器進(jìn)行傾斜補償。
對于一個物體在空中的姿態(tài),導(dǎo)航系統(tǒng)里早已有定義,如圖17所示,Android中也采用了這個定義。Pitch(Φ)定義為x軸和水平面的夾角,圖示方向為正方向;Roll(θ)定義為y軸和水平面的夾角,圖示方向為正方向。由Pitch角引起的航向角的誤差如圖18所示??梢钥闯?,在x軸方向10度的傾斜角就可以引起航向角最大7-8度的誤差。
圖17 Pitch角和Roll角定義 圖18 Pitch角引起的航向角誤差
手機在空中的傾斜姿態(tài)如圖19所示,通過3軸加速度傳感器檢測出三個軸上重力加速度的分量,再通過式2可以計算出Pitch和Roll。
圖19 手機在空中的傾斜姿態(tài)
6.Android平臺指南針的實現(xiàn)
在當(dāng)前流行的android 手機中,很多都配備有指南針的功能。為了實現(xiàn)這一功能,只需要配備有ST提供的二合一傳感模塊LSM303DLH,ST 提供整套解決方案。Android中的軟件實現(xiàn)可以由以下框圖表示:
其中包括:
• BSP Reference
• Linux Kernel Driver (LSM303DLH_ACC + LSM303DLH_MAG)
• HAL Library(Sensors_lsm303dlh + Liblsm303DLH) for sensors.default.so
經(jīng)過library 的計算,上層的應(yīng)用可以很輕松的運用由Android定義由Library提供的航偏角信息進(jìn)行應(yīng)用程序的編寫。
評論