ESP8266-Arduino编程实例-BMM150数字地磁传感器驱动

BMM150数字地磁传感器驱动

1、BMM150介绍

BMM150 是一款低功耗、低噪声的 3 轴数字地磁传感器,用于罗盘应用。 具有 1.56 x 1.56 mm² 和 0.60 mm 高度的 12 引脚晶圆级芯片级封装 (WLCSP) 为移动设备的开发人员提供了最高的设计灵活性。

移动设备(如手机、平板电脑或便携式媒体播放器)上的虚拟现实或游戏等应用需要 9 轴惯性传感,包括磁航向信息。 由于在大温度范围内性能稳定,BMM150也特别适用于支持无人机准确航向。

BMM150 可与由 3 轴加速度计和 3 轴陀螺仪组成的惯性测量单元 (IMU) 一起使用,例如 Bosch Sensortec 的 BMI055。

在这里插入图片描述

BMM150具有如下特性:

  • 封装 CSWLP-(12 针):

1.56×1.56×0.6 mm³
0.4 毫米对角球间距

  • 温度范围: -40°C … +85°C
  • 数字接口: I²C 和 SPI(2 个中断引脚)
  • 分辨率: 0.3μT
  • 电源电压 :

VDD:1.62V 至 3.6V
VDDIO:1.2V 至 3.6V

  • Zero-B偏移:±50μT
  • 非线性:<1% FS
  • 磁范围典型值:

±1300μT (x,y-axis)
±2500μT (z-axis)

  • 平均电流消耗:

170 μA(低功耗预设)
500 μA(正常模式)

  • 中断:新数据,磁阈值高/低

2、硬件准备

  • ESP8266 NodeMCU开发板一块
  • BMM150传感器模块一个
  • 面板板一个
  • 杜邦线若干
  • 数据线一条

硬件接线如下:

传感器引脚 ESP8266开发板引脚
Vin 5v
Gnd Gnd
SCL D1
SDA D2

3、软件准备

  • Arduino IDE或VSCode + PlatformIO

在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:

ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:

4、代码实现

本次使用的驱动库如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <Arduino.h>
#include <Wire.h>
// libraries
#include "bmm150.h"
#include "bmm150\_defs.h"

BMM150 bmm = BMM150();

void setup()
{
Serial.begin(9600);

if(bmm.initialize() == BMM150_E_ID_NOT_CONFORM)
{
Serial.println("Chip ID can not read!");
while(1);
}
else
{
Serial.println("Initialize done!");
}

}

void loop()
{
bmm150_mag_data value;
bmm.read\_mag\_data();

value.x = bmm.raw_mag_data.raw_datax;
value.y = bmm.raw_mag_data.raw_datay;
value.z = bmm.raw_mag_data.raw_dataz;

float xyHeading = atan2(value.x, value.y);
float zxHeading = atan2(value.z, value.x);
float heading = xyHeading;

if(heading < 0)
heading += 2\*PI;
if(heading > 2\*PI)
heading -= 2\*PI;
float headingDegrees = heading \* 180/M_PI;
float xyHeadingDegrees = xyHeading \* 180 / M_PI;
float zxHeadingDegrees = zxHeading \* 180 / M_PI;

Serial.print("Heading: ");
Serial.println(headingDegrees);

delay(100);
}

文章来源: https://iotsmart.blog.csdn.net/article/details/126805296