10 DOF IMU Sensor (C)
| ||||||||||||||||||||||||
| ||||||||||||||||||||||||
说明
产品特性
驱动芯片 | MPU9250 (3轴加速度、 3轴陀螺仪 3轴罗盘) |
内置16-BitAD转换器 陀螺仪量程:±250、±500、 ±1000、±2000°/秒 加速度量程:±2、±4、±8、±16g 罗盘量程:±4800uT |
BMP280(气压计) | 内置温度传感器,可进行温度补偿 量程:300~1100hPa(海拔高度:+9000m~-500m) 精度(700hPa~900hPa,25°C~40°C):±0.12hPa(±1m) | |
工作电压 | 3.3V,5V | |
支持接口 | I2C | |
外形尺寸 | 31.2mm*17mm | |
表1. 产品特性 |
主要用途
- 四轴飞行器;
- 运动功能游戏控制器;
- 室内惯性导航;
- 平衡机器人;
- 高度计;
- 工业测量仪表;
接口说明
引脚号 | 标识 | 描述 |
1 | VCC | 3.3V或5V电源 |
2 | GND | 电源地 |
3 | SDA | I2C数据线 |
4 | SCL | I2C时钟线 |
5 | INT | MPU9250数字中断输出 |
6 | FSYNC | MPU9250帧同步信号 |
表2. 接口说明 |
操作与现象
下面,以接入微雪电子的STM32开发板为例,演示10 DOF IMU Sensor模块的实验效果。
① 将配套程序下载到相应的开发板中。
② 将串口线和模块接入开发板,把10 DOF IMU Sensor模块插在开发板的I2C-2接口上,并注意模块引脚与I2C-2接口必须对应起来,FSYNC引脚悬空。
图 1. 10 DOF IMU Sensor模块接线图 |
③ 串口配置如表 3. 串口配置 所示:
波特率 | 115200 |
数据位 | 8 |
停止位 | 1 |
奇偶校验 | 无 |
表 3. 串口配置 |
④ 10 DOF IMU Sensor在上电之后会首先进行磁校准,才能输出正确的数据。具体步骤如下:
A. 10 DOF IMU Sensor 放置于水平位置并静止不动,当串口终端接收到稳定数据后,按下JOYSTICK键,此时LED1闪烁,LED2和LED3熄灭。
B. 10 DOF IMU Sensor放置于水平位置绕Z轴旋转180°,当串口终端接收到稳定数据后,按下JOYSTICK键,此时LED2闪烁,LED1和LED3熄灭。
C. 倒置10 DOF IMU Sensor,即保持10 DOF IMU Sensor背面向上,正面向下,当串口终端接收到稳定数据后,按下JOYSTICK键,此时LED3常亮,指示磁力校准完成,LED1和LED2熄灭。
D. 通过将10 DOF IMU Sensor放置于水平位置绕Z轴旋转180°,记录并对比旋转前后串口终端接收到的磁数据,如果大小相等,方向相反,则磁校准成功,否则失败。
⑤ 校准成功后,分别输出如下数据:
图 2. 10 DOF IMU Sensor模块水平状态时输出的数据 |
串口输出数据含义如下:
Roll, Pitch, Yaw | Roll倾角(°), Pitch倾角(°), Yaw倾角(°) |
Acceleration | 加速度(LSB,可换算为g) |
Gyroscope | 陀螺仪角速度(LSB,可换算为°/秒) |
Magnetic | 电子罗盘倾角(°) |
Angle | 方向角(°),理论上等于Yaw倾角。 |
Pressure | 气压值(hPa) |
Altitude | 海拔高度(m) |
Temperature | 温度值(℃) |
表 4. 串口输出数据含义 |
参数校准和计算:
校准海拔高度
用户第一次使用10 DOF IMU Sensor模块时可能会发现模块输出的值Altitude误差较大,因为模块是先通过模块当前位置(已知)的海拔高度Altitude,和气压值(已知)计算出海平面气压值P0作为基准。请参考BST-BMP180-DS000-09.pdf:
|
以P0为基准,就可以计算出模块当前位置的海拔高度Altitude:
因此,用户需要在示例代码10 DOF IMU Sensor\SRC\HardWare\BMP180\BMP180.h中给定模块当前所在位置高度的值作为一个基准(一般以地面的海拔高度值作为基准,单位mm)。例如:
计算加速度
程序测量出的加速度单位是LSB(最低有效位),实际使用中常常把单位换算成重力加速度(g)。模块的示例程序默认设置AFS_SEL=0,对应量程为16384 LSB/g(±2g),所以测量的实际加速度为:
𝑎=Acceleration/16384 ,𝑈𝑛𝑖𝑡:𝑔
请参考:
PS-MPU-9255.pdf 第9页
RM-MPU-9255.pdf 第14页
计算陀螺仪角速度
程序测量出的角速度单位是LSB(最低有效位),实际使用中常常把单位换算成角速度(°/秒)。模块的示例程序默认设置FS_SEL=2,对应量程为32.8 LSB/(°/s)(±1000°/秒),所以测量的实际角速度为:
ω=Gyroscope/32.8 ,Unit:°/s
请参考
PS-MPU-9255.pdf 第8页
RM-MPU-9255.pdf 第14页
资料
文档
程序
视频
数据手册
FAQ
加速度输出频率:4~4000Hz
角速度输出频率:4~8000Hz
加速度计一般不用校准。 是想做温漂吗?简单的可以放到温箱里,做各个温度的分段零飘采集。 如果使用环境温度变化不大,则不用校准。
气压计只能用于测量相对高度,且测量值不具备重复性(除非是特定实验室环境)。所以气压计一般用来测量短时的高度差。
测量绝对高度(海拔)一般是用GPS。