MPU6050 姿态传感器原理分析
MPU6050 是一款由 InvenSense 设计的低成本紧凑型 6 轴姿态传感器。该传感器可提供三轴角速度、三轴加速度和芯片温度数据。主设备可通过 I2C 与之进行通讯,从而获取并解算测量数据。
MPU6050 技术参数
- 3 轴陀螺仪(16位):量程范围为 ±250、±500、±1000 和 ±2000 度/秒。
- 3 轴加速度计(16位):量程范围为 ±2g、±4g、±8g 和 ±16g。
- 温度传感器:温度范围为 –40°C 至 85°C。
- 数字运动处理器 (DMP):用于片上运动处理,减少主机处理器的负载。
- 通讯协议:I2C 通讯
- 电源电压范围:2.375V 至 3.46V
- 功耗:正常模式下为 3.9mA,休眠模式下为 5μA。
[!Note]
MPU6050 使用 I2C 接口与微控制器或其他设备进行通信。MPU6050 在 I2C 总线上充当从器件,其 7 位 I2C 地址可以是 0x68 或 0x69,具体取决于 AD0 引脚的逻辑电平。而实际使用过程中 I2C 地址需要补充为 8 位,具体补充方式后文将会讲解。
MPU6050 模块引脚定义
- VCC:电源引脚,通常接受 3.3V 至 5V 范围内的输入电压。
- GND:接地参考引脚。
- SCL: I2C 串行时钟线,用于与主机微控制器通信。
- SDA:I2C 串行数据线,用于与主机微控制器通信。
- XDA:辅助 I2C 数据线,用于连接外部 I2C 传感器。
- XCL:辅助 I2C 时钟线,用于连接外部 I2C 传感器。
- AD0 :I2C 地址选择引脚,可以更改MPU6050的 7 位 I2C 地址。
- INT:中断引脚,用于向主机微控制器指示数据就绪或运动检测事件。
[!Tip]
MPU6050 IC 本身的电源电压范围为 2.375V 至 3.46V
[!Note]
MPU6050 芯片内部含有 DMP 模块可以用于直接计算得到四元数数据后通过 I2C 传输回单片机,数据不同步时可以通过 FIFO 中转传输
MPU6050 常用寄存器
- SMPRT_DIV - 分频采样寄存器 - 0x19:指定陀螺仪输出速率分频值,生成采样速率
- CONFIG - 配置寄存器 - 0x1A:为陀螺仪和加速度计配置外部帧同步( FSYNC )管脚的采样和数字低通滤波( DLPF )
- GYRO_CONFIG -陀螺仪配置寄存器 - 0x1B:触发陀螺仪自检和配置陀螺仪的满量程范围
- ACCEL_CONFIG - 加速度计配置寄存器 - 0x1C:触发加速度计自检和配置加速度计的满量程范围
- GYRO_... - 陀螺仪测量值寄存器 - 0x43-0x48:存储最近陀螺仪的测量值
- ACCEL_... - 加速度计测量值寄存器 - 0x3B-0x40:存储最近加速度计的测量值
- TEMP_... -温度测量值寄存器 - 0x41-0x42
MPU6050 寄存器文件参考目录:
- 参考文档:mpu6050中文手册 - GitCode
- 参考文档:Interfacing MPU6050 with Raspberry Pi Pico & MicroPython
- 参考文档:MPU6050开发 -- 初识_vdd lvsh hz mvlogic-CSDN博客
- 参考文档:关于MPU6050学习的一些总结-CSDN博客
- 示例:STM32 HAL 库硬件 I2C 驱动 MPU6050
- 示例:MicroPython 硬件 I2C 驱动 MPU6050 - RaspberryPi Pico 示例