资源描述
电子罗盘模块
1、概 述
电子罗盘模块可以检测周围的磁场强度,可应用于使运动的装置或设备转动到指定的方向等,比如安装在小车上,可以控制小车转动到指定方向或沿着指定方向行走。模块上具有用于校准的按键和指示灯,当模块周围的机械结构或模块的安装位置(方向)发生改变时,用户可以通过下载Makeblock提供的程序并操作按键来进行校准,以使得模块在新的环境下能准确测量出角度值。这也是本模块相比于其他商家同类型产品的优势之一。该本模块接口是白色色标,说明是I2C通信模式,需要连接到主板上带有白色标识接口。
2、技术规格
l 工作电压:5V DC
l 分辨率:5 mil gauss
l 磁场动态范围:±1到±8 gauss
l 电子罗盘精度:可精确到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、引脚定义
电子罗盘模块有六个针脚的接头,每个针脚的功能如下表
序号
引脚
功能
1
GND
地线
2
VCC
电源线
3
SDA
I2C数据接口
4
SCL
I2C时钟接口
5
RDY
检测数据是否已采集
6
KEY
检测校准按钮是否按下
表 1 6-Pin 接口功能
5、接线方式
l RJ25连接
由于电子罗盘模块接口是白色色标,当使用RJ25接口时,需要连接到主控板上带有白色色标的接口。以Makeblock Orion为例,可以连接到3,4,6,7,8 号接口,如图
图 1 电子罗盘模块与 Makeblock Orion连接
l 杜邦线连接
当使用杜邦线连接到Arduino Uno主板时,模块SCL、SDA引脚需要连接到 I2C接口,即连接到A5、A4接口如下图所示:
图 2 电子罗盘模块与 Arduino UNO 连接图
注:接杜邦线时,模块上需要焊接排针。
6、编程指南
l 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
21
22
#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)完成旋转操作后,再按一下模块上的按键退出校准流程,模块上的蓝色指示灯保持常亮;
备注:
模块有两种工作模式:测量模式→蓝灯常亮, 校准模式→蓝灯闪烁;
若模块在当前环境下校准过一次,断电重启后不需要再校准;
模块在不需要校准的情况下,请不要按模块上的按键,否则会使之前的校准操作无效;
在校准过程中,须将模块(连同与其连接的机械结构)旋转一周以上,否则会校准无效。
7、原理解析
传统指南针用一根被磁化的磁针来感应地球磁场,地球磁场与磁针之间的磁力时磁针转动,直至磁针的两端分别指向地球的磁南极与磁北极。电子罗盘也一样,只不过把磁针换成了磁阻传感器,然后将感受到的地磁信息转换为数字信号输出给用户使用。
三轴电子罗盘由三轴磁阻传感器、双轴倾角传感器和MCU构成。三轴磁阻传感器用来测量地球磁场,倾角传感器是在磁力仪非水平状态时进行补偿;MCU处理磁力仪和倾角传感器的信号以及数据输出和软铁、硬铁补偿。三个互相垂直的磁阻传感器,每个轴向上的传感器检测在该方向上的地磁场强度。传感器产生的模拟输出信号进行放大后送入MCU进行处理。
8、 相关链接
应用案例及原理图:
http://bbs.makeblock.cc/forum-42-1.html
展开阅读全文