Sensor – ME Compass

概述:

電子羅盤模組可以檢測周圍的磁場強度,可應用於使運動的裝置或設備轉動到指定的方向等,比如安裝在小車上,可以控制小車轉動到指定方向或沿著指定方向行走。模組上具有用於校準的按鍵和指示燈,當模組周圍的機械結構或模組的安裝位置(方向)發生改變時,用戶可以通過下載Makeblock提供的程式並操作按鍵來進行校準,以使得模組在新的環境下能準確測量出角度值。這也是本模組相比于其他商家同類型產品的優勢之一。該本模組介面是白色色標,說明是I2C通信模式,需要連接到主機板上帶有白色標識介面。

 

功能特性:

  • 模組的白色區域是與金屬梁接觸的參考區域
  • 模組有兩種工作模式:測量模式→藍燈常亮,校準模式→藍燈閃爍
  • 在通電後第一次使用模組時需要校準模組
  • 具有反接保護,電源反接不會損壞IC
  • 支援Arduino IDE程式設計, 並且提供運行庫來簡化程式設計
  • 支援mBlock圖形化程式設計,適合全年齡用戶
  • 使用RJ25介面連線方便
  • 模組化安裝,相容樂高系列
  • 配有接頭支援絕大多數Arduino系列主控板

 

技術規格:

  • 工作電壓:5V DC
  • 解析度:5 mil gauss
  • 磁場動態範圍:±1到±8 gauss
  • 電子羅盤精度:可精確到1°到2°
  • 信號模式:I2C通信
  • 工作溫度:-30到85℃
  • 模組尺寸:52 x 24 x 18 mm (長x寬x高)

 

引腳定義

電子羅盤模組有六個針腳的接頭,每個針腳的功能如下表

序號

引腳

功能

1GND地線
2VCC電源線
3SCLI2C時鐘介面
4TX串口資料發送
2RDY檢測資料是否已採集
2KEY檢測校準按鈕是否按下

表 1 6-Pin 介面功能

接線方式

  • RJ25連接

由於電子羅盤模組介面是白色色標,當使用RJ25介面時,需要連接到主控板上帶有白色色標的介面。以Makeblock Orion為例,可以連接到3,4,6,7,8 號介面,如圖

1

圖 1 電子羅盤模組與 Makeblock Orion連接

  • 杜邦線連接

當使用杜邦線連接到Arduino Uno主機板時,模組SCL、SDA引腳需要連接到 I2C介面,即連接到A5、A4介面如下圖所示:

1

圖 2 電子羅盤模組與 Arduino UNO 連接圖

注:接杜邦線時,模組上需要焊接排針。

程式設計指南

  • Arduino程式設計

如果使用Arduino程式設計,需要調用庫Makeblock-Library-master 來控制電子羅盤模組

本程式通過Arduino程式設計

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
2122
#include “MeOrion.h”
#include <Wire.h>
#include <SoftwareSerial.h>
MeCompass myCompass(PORT_4);
#define LED_PIN 13
void setup()
{
Serial.begin(9600);
Serial.println(“Initializing I2C devices…”);
myCompass.init();
Serial.println(“Testing device connections…”);
Serial.println(myCompass.testConnection() ? “HMC5883L connection successful” : “HMC5883L connection failed”);
}
void loop()
{
int16_t head_X, head_Y, head_Z;
double angle_number = 0;
angle_number = myCompass.getAngle();
Serial.println(angle_number, 1);
delay(500);
}

電子羅盤模組函數功能清單

函數

功能

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軸磁場測量值

 

注意事項

電子羅盤模組對其周圍磁場的變化比較敏感。模組周圍的機械結構發生變化或改變模組的方向,都有可能使模組周圍的磁場發生改變,從而使模組的測量結果有不同程度的偏差。這時,需要對模組進行校準一下,使得模組在當前的環境能夠準確的測量出角度值。

模組的校準流程如下:

(1)將模組正確連接到Makeblock主控板,接通電源,並下載我們提供的任意一個電子羅盤的常式;

(2)按住模組上的按鍵不放,直到模組上的藍色指示燈不斷地閃爍後,才鬆開按鍵;

(3)在藍色指示燈閃爍的過程中,將模組(連同與其連接的機械結構)在你需要應用電子羅盤的平面上旋轉一周以上,最好能比較平穩地旋轉;

(4)完成旋轉操作後,再按一下模組上的按鍵退出校準流程,模組上的藍色指示燈保持常亮;

備註:

模組有兩種工作模式:測量模式→藍燈常亮, 校準模式→藍燈閃爍;

若模組在當前環境下校準過一次,斷電重啟後不需要再校準;

模組在不需要校準的情況下,請不要按模組上的按鍵,否則會使之前的校準操作無效;

在校準過程中,須將模組(連同與其連接的機械結構)旋轉一周以上,否則會校準無效。

 

 

原理解析

傳統指南針用一根被磁化的磁鍼來感應地球磁場,地球磁場與磁鍼之間的磁力時磁鍼轉動,直至磁鍼的兩端分別指向地球的磁南極與磁北極。電子羅盤也一樣,只不過把磁鍼換成了磁阻感測器,然後將感受到的地磁資訊轉換為數位信號輸出給使用者使用。

三軸電子羅盤由三軸磁阻感測器、雙軸傾角感測器和MCU構成。三軸磁阻感測器用來測量地球磁場,傾角感測器是在磁力儀非水準狀態時進行補償;MCU處理磁力儀和傾角感測器的信號以及資料輸出和軟鐵、硬鐵補償。三個互相垂直的磁阻感測器,每個軸向上的感測器檢測在該方向上的地磁場強度。感測器產生的類比輸出信號進行放大後送入MCU進行處理。