语言
我们的高精度IMU(惯性测量单元)姿态传感器内置了72MHz高性能32位处理器,可实现实时姿态计算和动态补偿。数据更新频率高达100Hz,结合了快速响应和稳定输出。支持I2C和串口通信模式,兼容微控制器和Linux主控制器,并可与ROS系统无缝集成。
该模块非常适用于以下高性能应用场景:
- 机器人运动控制
- 无人机姿态稳定
- 智能导航与定位
- 运动跟踪系统
- 工业自动化
主要特点
多种版本选择
| 功能 | 6轴 | 9轴 | 10轴 |
|---|---|---|---|
| 高性能32位处理器 | ✅ | ✅ | ✅ |
| 三轴陀螺仪 | ✅ | ✅ | ✅ |
| 三轴加速度计 | ✅ | ✅ | ✅ |
| 三轴磁力计 | ❌ | ✅ | ✅ |
| 气压计 | ❌ | ❌ | ✅ |
| AHRS姿态数据融合算法 | ❌ | ✅ | ✅ |
| Mahony滤波算法 | ✅ | ✅ | ✅ |
| 应用场景描述 | 专为成本敏感型需求设计,满足高动态响应应用标准。 | 基于6轴硬件,集成磁力计和AHRS算法,显著提升数据稳定性和测量精度。 | 在9轴基础上增加气压计,提供精确高度数据,适用于需要高精度3D姿态和位置传感的应用。 |
技术规格
| 参数 | 值 |
|---|---|
| 串口波特率 | 115200bps |
| 输出频率 | 默认25Hz,支持10Hz至100Hz可调范围 |
| I2C时钟频率 | 100KHz |
| 输出内容 | 3轴加速度、3轴角速度、3轴欧拉角、四元数、温度、(9/10轴带磁力计,10轴带气压计/高度) |
| 启动时间 | 5000ms |
| 工作温度 | -40°C ~ +85°C |
| 存储温度 | -40°C ~ +100°C |
| 抗冲击性 | 20kg (裸板) |
| 支持设备 | Linux主控(PC、树莓派、Jetson系列、RDK系列等)和微控制器(STM32、MSPM0、ESP32、Pico、Arduino等) |
| 工作电压 | 5V 或 3.3V |
| 工作电流 | 11mA |
| 产品尺寸 | 27.4mm × 22.6mm × 12mm |
| 产品重量 | 3.8g |
| ROS支持 | ROS1 / ROS2 |
传感器性能参数
| 传感器 | 量程 | 分辨率 | RMS噪声 (100Hz带宽) | 温度漂移 | 带宽 |
|---|---|---|---|---|---|
| 加速度计 | ±16g | 0.0005g/LSB | 1.0mg RMS | ±0.15mg/°C | 12.5~1600Hz |
| 陀螺仪 | ±2000°/s | 0.061°/s/LSB | 0.07°/s RMS | 0.015°/s/°C | 12.5~1600Hz |
| 磁力计 | ±8Gauss | 0.244mGauss/LSB | - | - | - |
| 气压计 (10轴) | 300~2000hPa | - | 1Pa RMS | - | - |
导航数据性能
| 测量项 | 典型值 |
|---|---|
| 俯仰/横滚角度范围 (水平放置) | X: ±180°, Y: ±90° |
| 俯仰/横滚精度 | 0.0055° |
| 航向/偏航角度范围 (水平放置) | Z: ±180° |
| 航向/偏航精度 | 0.0055° |
引脚功能描述
| 引脚 | 功能 |
|---|---|
| SDA | I2C串行数据线 |
| SCL | I2C串行时钟线 |
| GND | 地 |
| 3V3 | 3.3V电源输入 |
| RX | 串口接收 |
| TX | 串口发送 |
| 5V | 5V电源输入 |
快速入门指南
1. 硬件连接
该模块支持I2C和串口通信接口。请参考上方的引脚描述表进行接线。
注意:请确保正确的电源电压(3.3V或5V),避免反接,否则可能对模块造成永久性损坏。
2. 软件安装
首先,安装所需的Python库:
pip install pyserial
pip install smbus2
安装IMU库:
# 克隆并进入库目录
git clone https://github.com/Juxi-Technology/ICM42670P-High-Precision-IMU-Module.git
cd ../IMU_ROS2/IMU_Library
# 安装库
pip install -e .
3. 端口映射配置(仅限Linux)
为防止设备重新连接后端口号变化,请配置持久化端口映射:
# 创建并编辑udev规则文件
sudo gedit /etc/udev/rules.d/99-serial-imu.rules
# 如果找不到gedit命令,请先安装
sudo apt install gedit
# 添加以下映射内容
KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0777", SYMLINK+="imu-serial"
# 保存并退出编辑器,然后运行这些命令以激活规则
sudo udevadm trigger
sudo service udev reload
sudo service udev restart
# 验证配置
ll /dev/imu-serial
# 预期输出示例:
lrwxrwxrwx 1 root root 7 Jan 22 10:00 /dev/imu-serial -> ttyUSB0
基本使用示例
串口通信示例
import serial
import json
# Configure serial port
ser = serial.Serial('/dev/ttyUSB0', 115200, timeout=1)
try:
while True:
line = ser.readline().decode('utf-8').strip()
if line:
# Parse IMU data
data = json.loads(line)
print(f"Acceleration: X={data['acc_x']:.2f}g, Y={data['acc_y']:.2f}g, Z={data['acc_z']:.2f}g")
print(f"Gyroscope: X={data['gyro_x']:.2f}°/s, Y={data['gyro_y']:.2f}°/s, Z={data['gyro_z']:.2f}°/s")
print(f"Euler Angles: Roll={data['roll']:.2f}°, Pitch={data['pitch']:.2f}°, Yaw={data['yaw']:.2f}°")
print("-" * 50)
except KeyboardInterrupt:
ser.close()
print("Serial connection closed")
I2C 通信示例
import smbus2
import time
# I2C configuration
I2C_BUS = 1
IMU_ADDR = 0x68
bus = smbus2.SMBus(I2C_BUS)
def read_imu_data():
# Read 14 bytes of data from IMU
data = bus.read_i2c_block_data(IMU_ADDR, 0x3B, 14)
# Convert raw data to meaningful values
acc_x = (data[0] << 8 | data[1]) / 16384.0
acc_y = (data[2] << 8 | data[3]) / 16384.0
acc_z = (data[4] << 8 | data[5]) / 16384.0
gyro_x = (data[8] << 8 | data[9]) / 131.0
gyro_y = (data[10] << 8 | data[11]) / 131.0
gyro_z = (data[12] << 8 | data[13]) / 131.0
return acc_x, acc_y, acc_z, gyro_x, gyro_y, gyro_z
try:
while True:
acc_x, acc_y, acc_z, gyro_x, gyro_y, gyro_z = read_imu_data()
print(f"Acc: X={acc_x:.2f}g, Y={acc_y:.2f}g, Z={acc_z:.2f}g")
print(f"Gyro: X={gyro_x:.2f}°/s, Y={gyro_y:.2f}°/s, Z={gyro_z:.2f}°/s")
time.sleep(0.1)
except KeyboardInterrupt:
bus.close()
print("I2C connection closed")
运行官方库示例
# Serial communication example
python3 IMU_Serial_Library.py --port /dev/ttyUSB0 --rate 50
# I2C communication example
python3 IMU_I2C_Library.py --port 1 --debug
资源与支持
如需更详细的文档、示例代码和技术支持,请访问我们的官方资源:
- 聚星科技 GitHub - 开源库、示例代码和硬件设计文件
- 飞书云文档 - 完整的产品文档、用户指南和常见问题解答
我们的 IMU 模块由聚星科技设计和制造,为机器人和物联网应用提供可靠的高性能惯性测量解决方案。

