Grove - IMU 9DOF v2.0
Grove - IMU 9DOF v2.0 是 Grove - IMU 9DOF v1.0 的升级版本,它是一款高性能的9轴运动跟踪模块,基于 MPU-9250。MPU-9250 是一款集成的9轴运动跟踪设备,专为智能手机、平板电脑和可穿戴传感器等消费电子设备的低功耗、低成本和高性能需求而设计。MPU-9250 配备了三个16位 ADC,用于数字化陀螺仪输出;三个16位 ADC,用于数字化加速度计输出;以及三个16位 ADC,用于数字化磁力计输出。
规格
- I2C/SPI 接口
- 辅助 I2C
- 低功耗
- 400kHz 快速模式 I2C,用于与所有寄存器通信
- 数字输出3轴角速度传感器(陀螺仪),具有用户可编程的全量程范围:±250、±500、±1000 和 ±2000°/秒
- 数字输出3轴加速度计,具有可编程的全量程范围:±2g、±4g、±8g 和 ±16g
- 数字输出3轴加速度计,全量程测量范围为 ±4800μT
- I2C 地址:0x68
如果您想使用多个 I2C 设备,请参考 软件 I2C。
更多关于 Grove 模块的详细信息,请参考 Grove 系统。
支持的平台
| Arduino | Raspberry Pi |
|---|---|
|
|
上述提到的支持平台仅表示模块的软件或理论兼容性。在大多数情况下,我们仅为 Arduino 平台提供软件库或代码示例。不可能为所有可能的 MCU 平台提供软件库或演示代码。因此,用户需要自行编写软件库。
硬件概述


① - Grove 接口,连接到 I2C
② - I2C 或 SPI 选择焊盘(默认是 I2C),如果需要使用 SPI,断开此焊盘
③ - 地址选择焊盘,默认连接 b 和 c 地址为 0x68,如果连接 b 和 a 地址为 0x69,如果需要使用 SPI,断开此焊盘至任意一侧。
④ - SPI 接口
⑤ - 辅助 I2C 主机串行数据
⑥ - 辅助 I2C 主机串行时钟
⑦ - 中断数字输出
入门指南
使用 Arduino
硬件
- 步骤 1. 准备以下物品:
| Seeeduino V4.2 | Base Shield | Grove-IMU_9DOF_v2.0 |
|---|---|---|
|
|
|
| 立即购买 | 立即购买 | 立即购买 |
- 步骤 2. 将 Grove-IMU_9DOF_v2.0 连接到 Grove-Base Shield 的 I2C 端口。
- 步骤 3. 将 Grove - Base Shield 插入 Seeeduino。
- 步骤 4. 使用 USB 数据线将 Seeeduino 连接到电脑。

如果没有 Grove Base Shield,我们也可以直接将此模块连接到 Seeeduino,如下所示。
| Seeeduino_v4 | Grove-IMU_9DOF_v2.0 |
|---|---|
| 5V | VCC |
| GND | GND |
| SDA | SDA |
| SCL | SCL |
软件
步骤 1. 从 Github 下载 库文件。
步骤 2. 参考 如何安装库文件 为 Arduino 安装库文件。
步骤 3. 创建一个新的 Arduino 草图,并将以下代码粘贴到其中,或者直接通过路径打开代码:File -> Example -> IMU_9DOF_Demo_Compass_Calibrated -> IMU_9DOF_Demo_Compass_Calibrated。
以下是代码的主要部分:
void setup() {
// 加入 I2C 总线(I2Cdev 库不会自动执行此操作)
Wire.begin();
// 初始化串行通信
// (选择 38400,因为它在 8MHz 和 16MHz 下都能正常工作,但具体取决于您的项目需求)
Serial.begin(38400);
// 初始化设备
Serial.println("Initializing I2C devices...");
accelgyro.initialize();
// 验证连接
Serial.println("Testing device connections...");
Serial.println(accelgyro.testConnection() ? "MPU9250 connection successful" : "MPU9250 connection failed");
delay(1000);
Serial.println(" ");
//Mxyz_init_calibrated ();
}
void loop()
{
getAccel_Data();
getGyro_Data();
getCompassDate_calibrated(); // 罗盘数据已在此处校准
getHeading(); // 在使用此函数之前,我们应该先运行 'getCompassDate_calibrated()',以便获取校准数据,然后才能获得正确的角度。
getTiltHeading();
Serial.println("校准参数: ");
Serial.print(mx_centre);
Serial.print(" ");
Serial.print(my_centre);
Serial.print(" ");
Serial.println(mz_centre);
Serial.println(" ");
Serial.println("X、Y、Z 轴的加速度 (g):");
Serial.print(Axyz[0]);
Serial.print(",");
Serial.print(Axyz[1]);
Serial.print(",");
Serial.println(Axyz[2]);
Serial.println("X、Y、Z 轴的陀螺仪 (度/秒):");
Serial.print(Gxyz[0]);
Serial.print(",");
Serial.print(Gxyz[1]);
Serial.print(",");
Serial.println(Gxyz[2]);
Serial.println("X、Y、Z 轴的罗盘值:");
Serial.print(Mxyz[0]);
Serial.print(",");
Serial.print(Mxyz[1]);
Serial.print(",");
Serial.println(Mxyz[2]);
Serial.println("磁北与 X 轴之间的顺时针角度:");
Serial.print(heading);
Serial.println(" ");
Serial.println("磁北与水平面上正 X 轴投影之间的顺时针角度:");
Serial.println(tiltheading);
Serial.println(" ");
Serial.println(" ");
Serial.println(" ");
delay(300);
}

步骤 4. 上传代码,之后您可以看到:

在静止状态下,z 轴的输出值约为 0.98g,因此您可以参考此值来测试您的传感器是否正常工作。
参考资料
轴的方向
下图显示了加速度计和陀螺仪的灵敏度轴方向以及旋转极性。请注意图中的引脚 1 标识符(•)。
- 加速度计和陀螺仪的灵敏度轴方向及旋转极性

- 罗盘的灵敏度轴方向

原理图在线查看器
资源
- [Eagle&PDF] Grove - IMU 9DOF v2.0 Eagle 文件
- [Library] Grove - IMU 9DOF v2.0 库文件
- [PDF] MPU-9250 数据手册
- [PDF] MPU-9250 寄存器映射
项目
使用 LinkIt ONE 测试 MPU9150 的功能速度:我设置了这个项目,目的是测量 MPU9150 标准功能的执行时间(以毫秒为单位)。
技术支持与产品讨论
感谢您选择我们的产品!我们致力于为您提供多种支持,以确保您使用我们的产品时获得流畅的体验。我们提供多种沟通渠道,以满足不同的偏好和需求。





