IMU Sensor · SKU 02532

GY-521 MPU-6050 六轴模块资料

常见 I2C 六轴姿态传感器模块,集成三轴加速度计和三轴陀螺仪。页面补充国产版实测图片/视频、原装版原理图与图片,并说明 WHO_AM_I、DMP 兼容差异。

Quick Facts

  • 接口:I2C,常见地址 0x68 / 0x69
  • 功能:3 轴加速度 + 3 轴陀螺仪
  • 平台:Arduino、ESP32、树莓派均可测试
  • 提醒:模块批次差异以实物丝印为准
GY-521 MPU-6050 六轴陀螺仪加速度计模块 SKU:02532;国产版和原装版合在同一商品链接,按购买规格和实物发货。
进入淘宝购买

Photos & Test Videos

图片、原理图与国产版实测视频

本页素材分开标注:目录里的图片和两条视频均为国产版实测素材;原装芯片原理图和原装版模块图来自本次补充截图。

GY-521 国产版模块实拍图
国产版模块实拍图:来自 GY-521 图片和视频目录
GY-521 国产版 Arduino IDE 测试截图
国产版 Arduino IDE 测试截图
GY-521 原装版模块图片
原装版模块图片:用于区分芯片封装和排针配件
GY-521 原装芯片参考原理图
原装 MPU-6050 参考原理图:VCC、LDO、I2C 上拉、AD0、INT 引脚

Overview

模块介绍

GY-521 是基于 MPU-6050 的六轴姿态模块。芯片内部有三轴 MEMS 陀螺仪、三轴 MEMS 加速度计和温度传感器,可通过 I2C 输出原始运动数据。需要姿态角时,通常使用 DMP 或软件滤波库处理。

I2C 通信

UNO/Nano 常用 A4/A5,ESP32 常用 GPIO21/GPIO22,树莓派常用 GPIO2/GPIO3。

地址切换

AD0 接 GND 通常是 0x68;AD0 接 VCC 通常是 0x69,可挂两个 MPU-6050。

资料状态

国产版已完成基础功能测试;原装版资料以 TDK / InvenSense 官方资料和当前实物为准。

Domestic vs Original

国产版与原装版说明

同一商品链接内含国产版和原装版规格。基础 I2C 读加速度/陀螺仪通常兼容,但芯片 ID、DMP 和稳定性需要分开说明。

项目国产 MPU-6050原装 MPU-6050
芯片/PCB国产兼容芯片,PCB 与原装版不同TDK / 原 InvenSense 芯片,原装版 PCB
I2C 地址实测 0x68常见 0x68,AD0 拉高为 0x69
WHO_AM_I实测 0x70,非正品标准 0x68标准 MPU-6050 通常为 0x68
加速度计实测正常按官方资料和实物测试为准
陀螺仪实测正常按官方资料和实物测试为准
DMP实测不兼容,建议用软件滤波可使用 DMP 相关库和示例
适用建议入门学习、基础姿态/运动检测需要 DMP 或更高一致性时选择
给客户看的重点

国产版不是不能用,基础 I2C、加速度计和陀螺仪已实测正常;但 `WHO_AM_I` 不是原装 ID,DMP 固件不兼容,不能按原装 DMP 教程直接跑。需要姿态角时建议使用互补滤波、卡尔曼滤波或 Mahony/Madgwick 软件算法。

Wiring

Arduino UNO / Nano 接线

普通测试先接 VCC、GND、SDA、SCL 四根线即可。INT 是可选脚,跑 DMP 中断模式时再接。

GY-521 MPU-6050 接 Arduino UNO Nano 接线图
GY-521Arduino UNO / Nano说明
VCC5V 或 3.3V常见模块可接 5V,最终以实物模块说明为准
GNDGND共地
SDAA4 / SDAI2C 数据
SCLA5 / SCLI2C 时钟
INTD2 可选DMP 中断模式建议接
AD0默认不接或接 GND默认地址 0x68

ESP32

ESP32 接线

ESP32 是 3.3V 逻辑,建议 GY-521 VCC 接 3.3V。不同 ESP32 板可自定义 I2C 引脚,代码里用 Wire.begin(SDA, SCL) 指定。

GY-521 MPU-6050 接 ESP32 接线图
GY-521ESP32说明
VCC3.3V推荐接 3.3V
GNDGND共地
SDAGPIO21常用默认 SDA
SCLGPIO22常用默认 SCL
INTGPIO4 可选也可换其他可用 GPIO
AD0默认不接或接 GND默认地址 0x68

Raspberry Pi

树莓派接线

树莓派 I2C 是 3.3V 逻辑,VCC 接 3V3。使用前需要在系统里启用 I2C,再用 i2cdetect -y 1 检查地址。

GY-521 MPU-6050 接树莓派接线图
GY-521树莓派 40Pin说明
VCCPin 1 / 3V3不要接 5V
GNDPin 6 / GND共地
SDAPin 3 / GPIO2I2C SDA
SCLPin 5 / GPIO3I2C SCL
INTGPIO17 可选普通读取可不接
AD0默认不接或接 GND默认地址 0x68

I2C Address

地址 0x68 / 0x69

AD0 状态I2C 地址用途
接 GND 或默认悬空0x68最常见默认地址
接 VCC0x69同一总线挂第二个 MPU-6050 时使用

Arduino Code

Adafruit MPU6050 基础读取示例

Arduino IDE 打开库管理器,安装 Adafruit MPU6050Adafruit Unified SensorAdafruit BusIO 后再上传。国产版如果库因为 WHO_AM_I 不同而初始化失败,可改用 Electronic Cats 库读取原始数据。

#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>

Adafruit_MPU6050 mpu;

void setup(void) {
  Serial.begin(115200);
  while (!Serial) delay(10);

  if (!mpu.begin()) {
    Serial.println("Failed to find MPU6050 chip");
    while (1) delay(10);
  }

  mpu.setAccelerometerRange(MPU6050_RANGE_8_G);
  mpu.setGyroRange(MPU6050_RANGE_500_DEG);
  mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
}

void loop() {
  sensors_event_t a, g, temp;
  mpu.getEvent(&a, &g, &temp);

  Serial.print("Accel X: ");
  Serial.print(a.acceleration.x);
  Serial.print(", Y: ");
  Serial.print(a.acceleration.y);
  Serial.print(", Z: ");
  Serial.println(a.acceleration.z);

  Serial.print("Gyro X: ");
  Serial.print(g.gyro.x);
  Serial.print(", Y: ");
  Serial.print(g.gyro.y);
  Serial.print(", Z: ");
  Serial.println(g.gyro.z);

  Serial.print("Temp: ");
  Serial.println(temp.temperature);
  delay(500);
}

FAQ

常见问题与排查

I2C 扫描不到 0x68 怎么办?

先检查 VCC/GND/SDA/SCL 是否接反,再确认板子供电。UNO/Nano 是 A4/A5,ESP32 常用 GPIO21/GPIO22,树莓派需要先启用 I2C。

为什么地址变成 0x69?

AD0 接到 VCC 时地址通常变为 0x69。默认不接或接 GND 通常是 0x68。

读数一直跳动正常吗?

加速度和陀螺仪原始值会有噪声,轻微跳动正常。可降低滤波带宽、做滑动平均、固定模块并重新校准。

姿态角为什么会漂移?

陀螺仪积分会产生漂移,Yaw 角尤其明显。需要校准偏移量,并使用 DMP 或互补滤波/卡尔曼滤波处理。

国产版 WHO_AM_I 为什么不是 0x68?

当前国产版实测 WHO_AM_I 为 0x70,不是原装 MPU-6050 的 0x68。基础 I2C、加速度计和陀螺仪已实测正常,但依赖正品 ID 校验的库可能会初始化失败。

国产版能不能跑 DMP?

当前国产版实测 DMP 不兼容,上传 DMP 固件会失败或运行异常。需要姿态角时,建议使用互补滤波、卡尔曼滤波、Mahony 或 Madgwick 等软件滤波算法。

INT 脚必须接吗?

基础读取不用接。跑 DMP 数据就绪中断时建议接到外部中断脚,例如 UNO D2。

Customer Reply

淘宝客户简短话术

您好,GY-521 接 Arduino UNO/Nano 常用接法是 VCC 接 5V 或 3.3V、GND 接 GND、SDA 接 A4、SCL 接 A5。ESP32 建议 VCC 接 3.3V,SDA 接 GPIO21,SCL 接 GPIO22。

您好,扫描不到请先确认电源、GND、SDA、SCL 四根线;默认地址一般是 0x68,如果 AD0 接到 VCC 会变成 0x69。建议先跑 I2C Scanner,再跑 Adafruit MPU6050 示例。

您好,国产版 GY-521 已实测 I2C、加速度计和陀螺仪可正常读取,地址为 0x68;但 WHO_AM_I 返回 0x70,不是原装 0x68,所以部分带正品 ID 校验的库会显示连接失败。基础读取建议用 Electronic Cats 库或跳过 ID 校验。

您好,国产版目前测试 DMP 不兼容,不能按原装 DMP 示例直接输出四元数/欧拉角。基础加速度和陀螺仪读取正常,如果需要角度,请用软件滤波算法;如果必须使用 DMP,建议选择原装版。

References

官方资料 / 公开资料链接