esp32连接mpu6050

mpu6050

MPU-6050是InvenSense公司生产的一款六轴运动处理器,集成了3轴加速度计和3轴陀螺仪。它将两个传感器集成到一个极小的封装里,使得对六轴运动的检测变得更加简单和方便。这款传感器广泛应用于运动控制和测量领域,如无人机、智能手机、运动手环等。

以下是根据所提供的数据表得到的MPU-6050的详细特性:

  1. 尺寸和接口

    • 封装尺寸:4mm x 4mm x 0.9mm
    • 通信接口:I2C(双线串行接口)
  2. 测量范围和灵敏度

    • 加速度计测量范围:±2g、±4g、±8g、±16g(可配置)
    • 加速度计灵敏度:16384 LSB/g(±2g)、8192 LSB/g(±4g)、4096 LSB/g(±8g)、2048 LSB/g(±16g)
    • 陀螺仪测量范围:±250°/s、±500°/s、±1000°/s、±2000°/s(可配置)
    • 陀螺仪灵敏度:131 LSB/°/s(±250°/s)、65.5 LSB/°/s(±500°/s)、32.8 LSB/°/s(±1000°/s)、16.4 LSB/°/s(±2000°/s)
  3. 分辨率

    • 加速度计:16位ADC(模拟数字转换器)
    • 陀螺仪:16位ADC
  4. 内置数字运动处理器(DMP)

    • 可以实现高级运动处理功能,如六轴运动融合、姿态估计等
    • 可以减轻主控制器的计算负担
  5. 低功耗和工作电流

    • 工作模式:连续采样,低功耗
    • VDD工作电压:2.375V - 3.46V
    • 工作电流: 500uA(加速度计), 3600uA(陀螺仪),低功耗模式下可降低
    • 关断模式电流:5µA

esp32工程

新建一个esp32-test文件夹,并在该文件夹下打开vs code:

1
2
mkdir esp32-test
cd est32-test && code .

在vs code中打开命令面板,输入”esp new”:

新建工程

这一步主要设置工程名称、工程目录、目标板芯片、串口,还有需要添加的软件组件目录。然后在工程配置中点击右下角,选择模板:

配置工程信息

选择ESP-IDF

划到下面i2c部分,选择i2c_simple,创建工程。

今天使用esp32c3的板子,通过i2c总线连接mpu6050:

硬件连接

esp32c3 mpu6050
3V3 VCC
GND GND
IO1 SDA
IO2 SCL

编译、烧写、监测三连:

构建

运行后输出:

1
2
3
4
5
6
7
8
9
I (247) sleep: Configure to isolate all GPIO pins in sleep state
I (254) sleep: Enable automatic switching of GPIO sleep configuration
I (261) app_start: Starting scheduler on CPU0
I (266) main_task: Started on CPU0
I (266) main_task: Calling app_main()
I (266) i2c-simple-example: I2C initialized successfully
I (276) i2c-simple-example: WHO_AM_I = 68
I (276) i2c-simple-example: I2C de-initialized successfully
I (286) main_task: Returned from app_main()

可以看到WHO_AM_I寄存器的值是0x68,与mpu6050寄存器手册描述一致。

WHO_AM_I