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 MPU6050、Adafruit Unified Sensor 和 Adafruit 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。

Support

需要技术支持时,把这几项一起发来

复制下面这段填一下发给客服,我们一次就能定位,不用来回问。

【GY-521 MPU-6050 六轴模块资料 技术支持】
主控型号:            (如 Arduino UNO / ESP32 / STM32)
供电接的是:          □ 3.3V   □ 5V
I2C Scanner 扫到的地址:
串口显示的内容:
用的是哪份代码:      □ 本页示例   □ 其他(请说明)
接线照片:            (请附一张能看清接线的照片)

References

官方资料 / 公开资料链接