模板: Pico-10DOF-IMU Spec
产品简介
Pico-10DOF-IMU 是一款专为 Raspberry Pi Pico 设计的传感器扩展板,板载了陀螺仪、加速度计、磁力计、气压计等传感器,I2C 接口通信。 搭配 Raspberry Pi Pico 使用,可以采集周围环境的温度、大气压强等传感器数据,也可以轻轻松松就 DIY 一个可以检测运动姿态和方位的机器人。
产品特性
- 板载 Raspberry Pi Pico 接口,适用于 Raspberry Pi Pico 系列主板
- 板载 MPU9250 (3 轴加速度、3 轴陀螺仪和 3 轴磁力计),可检测运动姿态、方位和磁场
- 板载 LPS22HB 大气压强传感器,可感知环境的大气压强
- 提供完善的配套资料手册 (Raspberry Pi Pico C/C++ 和 MicroPython 等示例程序)
产品参数
传感器 | 参数 |
加速度计特性 | 分辨率:16 位 量程 (可选):±2、±4、±8、±16g 工作电流:450uA |
陀螺仪特性 | 分辨率:16 位 量程 (可选):±250、±500、 ±1000、±2000°/sec 工作电流:3.2mA |
磁力计特性 | 分辨率:14 位 量程:±4800µT(MPU9250) / ±4900µT(ICM20948) 工作电流:280uA |
气压计特性 | 测量范围:260 ~ 1260hPa 测量精度 (常温下):±0.025hPa 测量速率:1Hz - 75Hz |
电气 | 参数 |
工作电压 | 5V |
硬件说明
- Pico-10DOF-IMU 有四次改版
- 1. USB丝印更新,增加XYZ轴丝印,增加0R电阻进行电源管理
- 2. FSYNC,ICM.INT,LPS.INT三个管脚分别使用0欧电阻连接两组GPIO,避免和其它模块共用时GPIO冲突
- 3. 使用 MPU9250 替代 ICM20948, 更改丝印名为Pico-10DOF-IMU Rev2.1
- 4. 重新使用 ICM20948, 更改丝印名为Pico-10DOF-IMU Rev3.1
硬件连接
1. 注意Pico-10DOF-IMU Rev2.1 上USB Logo标志和Raspberry Pi Pico的USB连接方向对应
2. 下载C程序时, 注意按住BOOT键再接入USB线缆
轴向说明
MPU9250上的加速度计,陀螺仪,磁力计等轴向如下图所示, MPU9250上的磁力计会受硬磁干扰导致磁力计读出来的数据进行椭球拟合的时候,球偏离中心,并且不圆.这样就会给磁力计带来一个初始磁场偏移,使得磁力计数据偏心,所示上电时候需要对磁力计进行初始化, 请参考下面初始化章节.
引脚说明
1. Pico-10DOF-IMU Rev2.1 使用如上图所示的GPIO , 其中SDA(GPIO6) , SCL(GPIO7)引脚固定连接, MPU9250 INT(GPIO4) , FSYNC(GPIO22) , LPS22HB INT(GPIO5) 可通过0R电阻改变连接引脚为MPU9250 INT(GPIO22) , FSYNC(GPIO16) , LPS22HB INT(GPIO3) , 详情点击查看原理图
2. Pico-10DOF-IMU Rev2.1的40Pin座子上默认使用Raspberry Pi Pico的VSYS引脚的电源供电,若要控制切断10DOF的供电可将R13位置上0R电阻焊接到R15上, 则可用Raspberry Pi Pico上GPIO14关断或打开10DOF供电,详情点击查看原理图
3. 若要使用Pico的3.3V供电,将R13的0R电阻焊接到R12处位置上,详情点击查看原理图
4. 若要去除 Pico-10DOF-IMU Rev2.1 上的LED电源指示灯, 剔除板载R11位置的0R电阻,详情点击查看原理图
I2C总线
- Pico-10DOF-IMU板载MPU9250使用I2C总线进行通信,读写时序示意图如下图所示,更多细节请参考datasheet
1. Raspberry Pi Pico作为Master设备先后拉低SDA,SCL的引脚发起I2C总线的START condition 然后写入设备地址(7bits)和写命令(占1bit)共8bits数据, 如果引脚连接正确,10ODF作为Slave设备发出ACK响应
2. Raspberry Pi Pico继续分别写入寄存器地址(RA)和寄存器值(DATA)并等待ACK响应 , 写入完毕后 , Raspberry Pi Pico先后拉高SCL,SDA引脚发送STOP condition
3. 如果Raspberry Pi Pico读取寄存器(RA)的DATA , 当写入RA等待ACK响应后重新发起START condition,再写入设备地址(7bits)和读命令(占1bit)共8bits等待ACK响应后, 10DOF返回DATA,Pico接收DATA完毕后,保持SDA高电平即可
4. 连续写寄存器寄存器值请参考上图中的burst Read/Write Sequence