(SKU:SEN0140)10 DOF Sensor传感器
来自DFRobot Product Wiki
目录 |
简介
起初,惯性测量单元是一个措施,在飞机的速度、定位报告的电子装置,与引力,组合使用加速度计,陀螺仪,磁力计。现在伊穆斯是常用的人机交互(HCI)、航海和平衡技术应用于辆Segway众所周知。采用DFrobot的高集成度低成本的10自由度传感器。集合了ADXL345加速度计、HMC5883L磁罗盘、ITG3205陀螺仪以及BMP280气压传感器和温度传感器。它小巧玲珑的身材能够适合大多数控制系统要求,它设计精巧的安装孔也使传感器的数据更加精确和可靠。内置了低噪声的低压线性稳压器,还扩展了电源电压输入范围,支持3V-5V电源电压。当然了,10自由度IMU也可以直接和Arduino控制板兼容。
版本升级:V2.0把BMP085升级成了BMP280气压传感器,V1.0用户可以下载V1.0库文件。
技术规格
- 工作电压:3.3V-5V DC
- 低噪声LDO稳压器
- I2C接口
- 集成10自由度姿态传感器
- ADXL345加速度计
- ITG3200陀螺
- HMC5883L罗盘
- BMP280气压传感器(V2.0版本)
- Arduino 控制器兼容
- 工作温度:-20-70 ℃
- 产品尺寸:26*18 mm
引脚说明
|
|
使用教程
准备
硬件
- 1 x UNO控制板
- 1 x 10 DOF Sensor模块
- 杜邦线若干
软件
- Arduino IDE, 点击下载Arduino IDE
- HMC5883库
- BMP280库
- FreeSixIMU 库文件
关于如何安装库文件,点击链接
连接图
样例代码
#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); }
测量结果
样例代码
测试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](http://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); }
产品尺寸
常见问题
还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!
更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。