10 DOF IMU Sensor (C)

来自Waveshare Wiki
Waveshare-admin讨论 | 贡献2021年1月19日 (二) 14:34的版本 (Text replace - "<br /><big>批量下载教程——请戳<big><big><big>☛</big></big></big></big>link=批量下载教程" to "")
跳转至: 导航搜索
10 DOF IMU Sensor (C)
{{{name2}}}
{{{name3}}}
功能简介
特性 10轴惯性导航模块
主要器件 MPU9250、BMP280
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 I2C

产品特性

驱动芯片 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引脚悬空。

10 DOF IMU Sensor (C)- (1).jpg

图 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°,记录并对比旋转前后串口终端接收到的磁数据,如果大小相等,方向相反,则磁校准成功,否则失败。
⑤ 校准成功后,分别输出如下数据:

10 DOF IMU Sensor (C)- (2).jpg

图 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:
|10 DOF IMU Sensor (C)- (3).gif
以P0为基准,就可以计算出模块当前位置的海拔高度Altitude:
10 DOF IMU Sensor (C)- (4).gif
因此,用户需要在示例代码10 DOF IMU Sensor\SRC\HardWare\BMP180\BMP180.h中给定模块当前所在位置高度的值作为一个基准(一般以地面的海拔高度值作为基准,单位mm)。例如:
10 DOF IMU Sensor (C)- (5).gif

计算加速度

程序测量出的加速度单位是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页

加速度输出频率:4~4000Hz

角速度输出频率:4~8000Hz


加速度计一般不用校准。 是想做温漂吗?简单的可以放到温箱里,做各个温度的分段零飘采集。 如果使用环境温度变化不大,则不用校准。


气压计只能用于测量相对高度,且测量值不具备重复性(除非是特定实验室环境)。所以气压计一般用来测量短时的高度差。

测量绝对高度(海拔)一般是用GPS。


联系人:杨工

电话:0755-82726080
微信:扫下方二维码添加
Ywb.jpg

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证