(SKU:SEN0253)BNO055+BMP280智能10轴绝对定位传感器

来自DFRobot Product Wiki
跳转至: 导航搜索
文件:.jpg
intelligent 10DOF AHRS

目录

简介

BNO055是实现智能9轴绝对定位的新型传感器IC,它将整个传感器系统级封装在一起,集成了三轴14位加速度计,三轴16位陀螺仪,三轴地磁传感器和一个自带算法处理的32位微控制器。它的尺寸仅为5.2 x 3.8 x 1.1mm³,明显小于同类离散或系统板载解决方案。是目前最小尺寸支持Windows 8.1的Sensor-hub产品。它既可单独提供三类传感器(加速度/地磁/陀螺仪)的单一数据,亦可提供组合数据,例如欧拉向量绝对方位、四元素绝对方位。透过内置 MCU 计算,为智能手机、穿戴设备等产品提供更多方面的应用支持。

BMP280是专门为移动应用设计的绝对气压传感器,它能够实现气压检测、温度检测(两者可通过特定的计算公式转换为海拔高度的检测)。传感器模块采用非常紧凑的封装。它是基于博世经过验证的压阻式压力传感器技术,具有高精度和线性度以及长期稳定性和高EMC稳健性。众多的器件操作选项提供了最高的灵活性,以优化器件的功耗,分辨率和滤波器性能。

此次DFRobot推出的该传感器模块通过将BNO055与BMP280传感器集成设计到一个板上,两传感器组合成一个10轴传感器模块,接口为标准的Gravity-I2C接口,简化了用户的集成过程,摆脱了多解决方案的复杂性,可以将更多时间用于产品创新,包括新颖的应用,如可穿戴硬件。它也是增强现实,更加身临其境的游戏,个人健康和健身,室内导航以及任何其他需要环境感知的应用程序的完美选择。

技术规格

  • 工作电压:3.3V-5.5V DC
  • 工作电流:<5mA
  • I2C接口
  • 3轴12-bit加速度传感器
  • 3轴地磁传感器
  • 3轴16-bit陀螺仪
  • BMP280气压传感器
  • 工作温度:-40~+80 ℃
  • 产品尺寸:32*27 mm


【更多详细的技术规格信息请参见附件中的BMP280、BNO055数据手册】

引脚说明及尺寸

顶部示意图
SEN0253 尺寸图
底部示意图
引脚说明
标号 名称 功能描述
1 +/VCC 电源正极
2 -/GND 电源负极
3 C I2C串行时钟线
4 D I2C串行数据线
5 NBOOT 引导模式选择引脚
6 RST 复位引脚
7 INT 中断输出引脚
8 I2C_ADDR BNO055的I2C地址选择
9 PS2 协议选择引脚2
10 PS1 协议选择引脚1
11 BL_IND 引导程序指示
引脚说明
PS1 PS2 Functionalit
0 0 Standard/Fast 12C Interface
0 1 HID OVER I2C
1 0 UART Interface
1 1 Reserved
  • 注:BNO055I2C地址默认设置为0X28,BMP280I2C地址为0X76;I2C_ADDR地址可选为0X28/0X29,PS1、PS2默认设置为0、0







API列表

部分接口函数说明

/*!
 * @函数功能:SEN0253设备初始化。
 *
 * @返回值:bool类型
 *   true: 设备初始化失败
 *   false:设备初始化成功
 */
bool init();

/*!
 * @函数功能:设置BNO055设备的模式。
 *
 * @参数:  powerMode: 设置电源模式
 *          dataMode:  设置数据传输速率
 */
void setMode(eBNO055PowerModes_t powerMode, eBNO055DataRateMode_t dataRate);

/*!
 * @函数功能:读欧拉角,并将读取的值存放到BNO055EulerData结构体中。
 */
void readEuler(void);

/*!
 * @函数功能:读角速度,并将得到的值存放到BNO055GyrData结构体中。
 */
void readAngularVelocity(void);

/*!
 * @函数功能:读线性加速度,并将得到的值存放到BNO055LinAccData结构体中。
 */
void readLinAcc(void);

/*!
 * @函数功能:读四元数,并将得到的值存放到BNO055QuaData结构体中。
 */
void readQua(void);

/*!
 * @函数功能:由最终四元数数据和线性加速度数据计算最终位置,并将计算出的位置信息存储到BNO055AbsLinAccData结构体中。
 */
void calcAbsLinAcc(void);

使用教程

10Dof板载BNO055传感器和BMP280传感器,可以用I2C接口分别访问BNO055(默认0x28)和BMP280(0x76)的I2C地址,从而获取相应的位置数据和环境信息。

准备

硬件

  • 1 x UNO控制板
  • 1 x BNO055+BMP280智能10轴绝对定位传感器模块
  • 杜邦线若干

软件

关于如何安装库文件,点击链接


连接图

SEN0253 V1.0连接图

样例代码

程序功能:通过I2C接口读取BNO055传感器的仰角、翻滚角、偏航角,并将读取到的数据通过串口打印出来。

#include "DFRobot_BNO055.h"

DFRobot_BNO055 mpu;

void setup() 
{
   Serial.begin(115200);
   while (!mpu.init())
   {
     Serial.println("ERROR! Unable to initialize the chip!");
     delay(50);
   }
// mpu.setMode(mpu.eNORMAL_POWER_MODE, mpu.eFASTEST_MODE);
   delay(100);
   Serial.println("Read euler angles...");
}

void loop() 
{
  mpu.readEuler();  /* read euler angle */
  /* In order to match the API of the upper computer, X ----> pitch */
  Serial.print("pitch:"); 
  Serial.print(mpu.EulerAngles.y, 3); 
  Serial.print(" "); 
  /* In order to match the API of the upper computer, Y ----> roll  */
  Serial.print("roll:"); 
  Serial.print(mpu.EulerAngles.z, 3); 
  Serial.print(" ");
  /* In order to match the API of the upper computer, Z ----> yaw   */
  Serial.print("yaw:"); 
  Serial.print(mpu.EulerAngles.x, 3); 
  Serial.println(" ");
  
  delay(80);
}

测量结果

IDE串口打印:Pitch,Roll,Yaw


Warning yellow.png

通过欧拉角的Pitch、Roll、以及Yaw的值,可以计算出10Dof转动后的姿态。



IMU_show.exe软件

IMU_show软件是一个能显示10Dof模块姿态变化和欧拉角值的图形化串口界面,其工作原理是解析从串口得到的欧拉角(Pitch、Roll、Yaw)数据包, 再通过一定的算法计算出10Dof的姿态变化过程,并用图形化界面显示出来。具体说明请查看软件说明,用户可以通过该软件观察10Dof的运动姿态,如下图所示:

10Dof姿态显示


Warning yellow.png

注:使用IMU_show.exe软件观察传感器姿态时需关闭串口打印所占用的串口!

样例代码

程序功能:读取10Dof模块采集到的温度、大气压、海拔等信息,并通过串口打印出数值,其中海拔是通过板载传感器BMP280采集到的温度、压强等值计算而来,不是实际测量之值。

IDE串口打印: Temperature,Pressure,Altitude
#include <DFRobot_BMP280.h>

DFRobot_BMP280 bmp;

void setup() {
  Serial.begin(115200);
  while (!bmp.begin()) {  
    Serial.println(F("Error initializing BMP280!"));
    delay(1000);
  }
}

void loop() {
  Serial.print("Temperature:");
  Serial.println(bmp.readTemperatureValue());
  Serial.print("Pressure:");
  Serial.println(bmp.readPressureValue());
  Serial.print("Altitude:");
  Serial.println(bmp.readAltitudeValue());
  /* use a sampling time of at least 38ms */
  delay(50);
}






常见问题

还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。


更多

DFshopping car1.png DFRobot商城购买链接

个人工具
名字空间

变换
操作
导航
工具箱