函數 | 功能 |
void init(void) | 電子羅盤初始化函數 |
bool testConnection(void) | 模組連接檢測函數 |
double getAngle(void) | 獲取角度測量值 |
int16_t getHeadingX(void) | 獲取X軸磁場測量值 |
int16_t getHeadingY(void) | 獲取Y軸磁場測量值 |
int16_t getHeadingZ(void) | 獲取Z軸磁場測量值 |
void getHeading(int16_t *x, int16_t *y, int16_t *z) | 同時獲取X、Y、Z軸磁場測量值 |
l mBlock編程
6 、注意事項
電子羅盤模組對其周圍磁場的變化比較敏感。模組周圍的機械結構發生變化或改變模組的方向,都有可能使模組周圍的磁場發生改變,從而使模組的測量結果有不同程度的偏差。這時,需要對模組進行校準一下,使得模組在當前的環境能夠準確的測量出角度值。
模組的校準流程如下:
(1)將模組正確連接到Makeblock主控板,接通電源,並下載我們提供的任意一個電子羅盤的例程;
(2)按住模組上的按鍵不放,直到模組上的藍色指示燈不斷地閃爍後,才鬆開按鍵;
(3)在藍色指示燈閃爍的過程中,將模組(連同與其連接的機械結構)在你需要應用電子羅盤的平面上旋轉一周以上,最好能比較平穩地旋轉;
(4)完成旋轉操作後,再按一下模組上的按鍵退出校準流程,模組上的藍色指示燈保持常亮;
(5)不論連線或離線模式。電子羅盤模組必須在程式執行該圖塊時,才能進行校正
備註:
模組有兩種工作模式:測量模式→藍燈常亮, 校準模式→藍燈閃爍;
若模組在當前環境下校準過一次,斷電重啟後不需要再校準;
模組在不需要校準的情況下,請不要按模組上的按鍵,否則會使之前的校準操作無效;
在校準過程中,須將模組(連同與其連接的機械結構)旋轉一周以上,否則會校準無效。
7 、原理解析
傳統指南針用一根被磁化的磁針來感應地球磁場,地球磁場與磁針之間的磁力時磁針轉動,直至磁針的兩端分別指向地球的磁南極與磁北極。電子羅盤也一樣,只不過把磁針換成了磁阻傳感器,然後將感受到的地磁信息轉換為數字信號輸出給用戶使用。
三軸電子羅盤由三軸磁阻傳感器、雙軸傾角傳感器和MCU構成。三軸磁阻傳感器用來測量地球磁場,傾角傳感器是在磁力儀非水平狀態時進行補償;MCU處理磁力儀和傾角傳感器的信號以及數據輸出和軟鐵、硬鐵補償。三個互相垂直的磁阻傳感器,每個軸向上的傳感器檢測在該方向上的地磁場強度。傳感器產生的模擬輸出信號進行放大後送入MCU進行處理。