10自由度惯性导航模块

简介

起初,惯性测量单元是一个措施,在飞机的速度、定位报告的电子装置,与引力,组合使用加速度计,陀螺仪,磁力计。现在伊穆斯是常用的人机交互(HCI)、航海和平衡技术应用于辆Segway众所周知。采用DFrobot的高集成度低成本的10自由度传感器。集合了ADXL345加速度计、VCM5883L磁罗盘、ITG3205陀螺仪以及BMP280气压传感器和温度传感器。它小巧玲珑的身材能够适合大多数控制系统要求,它设计精巧的安装孔也使传感器的数据更加精确和可靠。内置了低噪声的低压线性稳压器,还扩展了电源电压输入范围,支持3V-5V电源电压。当然了,10自由度IMU也可以直接和Arduino控制板兼容。

版本升级:V2.0把BMP085升级成了BMP280气压传感器,V1.0用户可以下载V1.0库文件

技术规格

  • 工作电压:3.3V-5V DC
  • 低噪声LDO稳压器
  • I2C接口
  • 集成10自由度姿态传感器
  • ADXL345加速度计
  • ITG3200陀螺
  • VCM5883L罗盘
  • BMP280气压传感器(V2.0版本)
  • Arduino 控制器兼容
  • 工作温度:-20-70 ℃
  • 产品尺寸:26*18 mm

引脚说明

:SEN0140_V2.0_Pin.jpg

标号 名称 功能描述
1 VIN 电源正极
2 GND 电源负极
3 SCL I2C串行时钟线
4 SDA I2C串行数据线

引脚说明

使用教程

准备

硬件

  • 1 x UNO控制板
  • 1 x 10 DOF Sensor模块
  • 杜邦线若干

软件

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

连接图

SEN0140 V2.0连接图

样例代码

#include <FreeSixIMU.h>
#include <FIMU_ADXL345.h>
#include <FIMU_ITG3200.h>

#include <Wire.h>

float angles[3]; // yaw pitch roll

// Set the FreeSixIMU object
FreeSixIMU sixDOF = FreeSixIMU();

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

  delay(5);
  sixDOF.init(); //begin the IMU
  delay(5);
}

void loop() {

  sixDOF.getEuler(angles);

  Serial.print(angles[0]);
  Serial.print(" | ");
  Serial.print(angles[1]);
  Serial.print(" | ");
  Serial.println(angles[2]);

  delay(100);
}

测量结果

IDE串口打印:Yaw,Pitch, Roll

样例代码

测试BMP280

/*!
 * read_data.ino
 *
 * Download this demo to test simple read from bmp280, connect sensor through IIC interface
 * Data will print on your serial monitor
 *
 * Copyright   [DFRobot](https://www.dfrobot.com), 2016
 * Copyright   GNU Lesser General Public License
 *
 * version  V1.0
 * date  12/03/2019
 */

#include "DFRobot_BMP280.h"
#include "Wire.h"

typedef DFRobot_BMP280_IIC    BMP;    // ******** use abbreviations instead of full names ********

BMP   bmp(&Wire, 0x76);

#define SEA_LEVEL_PRESSURE    1015.0f   // sea level pressure

// show last sensor operate status
void printLastOperateStatus(BMP::eStatus_t eStatus)
{
  switch(eStatus) {
  case BMP::eStatusOK:    Serial.println("everything ok"); break;
  case BMP::eStatusErr:   Serial.println("unknow error"); break;
  case BMP::eStatusErrDeviceNotDetected:    Serial.println("device not detected"); break;
  case BMP::eStatusErrParameter:    Serial.println("parameter error"); break;
  default: Serial.println("unknow status"); break;
  }
}

void setup()
{
  Serial.begin(115200);
  bmp.reset();
  Serial.println("bmp read data test");
  while(bmp.begin() != BMP::eStatusOK) {
    Serial.println("bmp begin faild");
    printLastOperateStatus(bmp.lastOperateStatus);
    delay(2000);
  }
  Serial.println("bmp begin success");
  delay(100);
}

void loop()
{
  float   temp = bmp.getTemperature();
  uint32_t    press = bmp.getPressure();
  float   alti = bmp.calAltitude(SEA_LEVEL_PRESSURE, press);

  Serial.println();
  Serial.println("======== start print ========");
  Serial.print("temperature (unit Celsius): "); Serial.println(temp);
  Serial.print("pressure (unit pa):         "); Serial.println(press);
  Serial.print("altitude (unit meter):      "); Serial.println(alti);
  Serial.println("========  end print  ========");

  delay(1000);
}

IDE串口打印

产品尺寸

SEN0140V2.0尺寸图.png

常见问题

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

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

更多

DFshopping_car1.png DFRobot商城购买链接