benny 發表於 2016-7-6 12:01

Makeblcok電子模組手冊----電子羅盤模組

電子羅盤模組
http://bbs.makeblock.com/data/attachment/forum/201511/13/173558ssbyy8zs6wu8y1hs.png

1 、概述
電子羅盤模組可以檢測周圍的磁場強度,可應用於使運動的裝置或設備轉動到指定的方向等,比如安裝在小車上,可以控制小車轉動到指定方向或沿著指定方向行走。模組上具有用於校準的按鍵和指示燈,當模組周圍的機械結構或模組的安裝位置(方向)發生改變時,用戶可以通過下載Makeblock提供的程序並操作按鍵來進行校準,以使得模組在新的環境下能準確測量出角度值。這也是本模組相比於其他商家同類型產品的優勢之一。該本模組接口是白色色標,說明是I2C通信模式,需要連接到主板上帶有白色標識接口。
2 、技術規格
l 工作電壓:5V DCl 分辨率:5 mil gaussl 磁場動態範圍:±1到±8 gaussl 電子羅盤精度:可精確到1°到2°l 信號模式:I2C通信l 工作溫度:-30到85℃l 模組尺寸:52 x 24 x 18 mm (長x寬x高)3 、功能特性
l 模組的白色區域是與金屬梁接觸的參考區域;l 模組有兩種工作模式:測量模式→藍燈常亮,校準模式→藍燈閃爍;l 在通電後第一次使用模組時需要校準模組;l 具有反接保護,電源反接不會損壞IC。l 支持Arduino IDE編程, 並且提供運行庫來簡化編程;l 支持mBlock圖形化編程,適合全年齡用戶;l 使用RJ25接口連線方便;l 模組化安裝,兼容樂高系列;l 配有接頭支持絕大多數Arduino系列主控板。4 、引腳定義
電子羅盤模組有六個針腳的接頭,每個針腳的功能如下表

序號引腳功能
1GND接地線
2VCC電源線
3SDAI2C 數據接口
4SCLI2C 時鐘接口
5RDY檢測數據是否已採集
6KEY檢測校準按鈕是否按下
表1 6-Pin 接口功能
5 、接線方式
l RJ25連接由於電子羅盤模組接口是白色色標,當使用RJ25接口時,需要連接到主控板上帶有白色色標的接口。以Makeblock Orion為例,可以連接到3,4,6,7,8 號接口,如圖http://bbs.makeblock.com/data/attachment/forum/201511/13/175314gf8tbhh052p929hi.png
圖1 電子羅盤模組與Makeblock Orion連接
l 杜邦線連接當使用杜邦線連接到Arduino Uno主板時,模組SCL、SDA引腳需要連接到I2C接口,即連接到A5、A4接口如下圖所示:http://bbs.makeblock.com/data/attachment/forum/201511/13/175350dyovyevdlde7ebr9.png
圖2 電子羅盤模組與Arduino UNO 連接圖
注:接杜邦線時,模組上需要焊接排針。
6 、編程指南
l Arduino編程如果使用Arduino編程,需要調用庫Makeblock-Library-master來控制電子羅盤模組本程序通過Arduino編程#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軸磁場測量值

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