Hard / Soft Iron Calibration (硬磁干擾校正) 最常見也最簡單的校正方式為劃 8 字型,其目的為得到整個裝置的磁感量最大值與最小值, 當求到相對最大與最小值後(因為每個人操作的手勢有所不同),即可大約找出圓心的偏移 量,用套入公式用軟體方式做校正。而產線端可使用治具求得絕對的最大與最小值,在出廠 前將整機的磁干擾做歸零的動作。
所以 3 軸的電子羅盤必須搭配 3 軸的 G sensor 做傾角補償,如果不想加入 G sensor 的話, 那就得保證裝置在使用時永遠是保持水平的狀態。可參考下圖 Mcu 接收到 G sensor 與 compass 的輸出後透過公式即可算出方向角度並做傾角補償。 G+M 架構 (圖片提供 Honeywell)
G+M 架構 (圖片提供 Honeywell) 講到傾角補償,就要先討論傾斜角度的計算。 G sensor 顧名思義就是偵測 g 力的大小及動作方向,而將 G sensor 擺水平時,會有 1g 的地 心引力會在 Z 軸,隨著改變裝置的同時 g 值會在不同軸向做變化,就可以知道姿態的變換。 也因為這個特性,在 G sensor 靜止時,可以藉由 arcSin/ arcCos 的公式去運算出傾斜角度, 這個傾斜角度可以延伸出更多的應用。 G 值分佈在不同軸向示意圖(圖片提供 Kionix) G 值轉換成角度基本公式(圖片提供 Kionix)
電子羅盤方位角的計算方式: 其基本原理為讀取X與Y 軸的輸出,並套入 arcTan(Y/X)的公式中,就可以得到方向角。但 是這是在水平的情況下,尚未加入傾斜角度的變異數,得到答案是容易的。
但是如果把傾斜角度的變數加進去,就會需要用到投射理論將將原本 compass 得到的X與Y 及 G sensor 得到的 pitch 與 roll 帶入以下的公式。
如此可求得 X'與 Y',再將其帶入原本的公式即可求到經過傾角補償後的值。 如此一來,無論使用者怎麼的去翻動手上的裝置,電子羅盤指針的方向也不會飄忽不定指不 清東西南北了。
Ref : http://www.seraphim.com.tw/upfiles/c_supports01328152963.pdf
沒有留言:
張貼留言