ข้ามไปที่เนื้อหา

โมดูลวัดความเอียง MPU6050 (GY-521)

MPU6050 เป็นโมดูล 6-Axis Motion Tracking ที่ได้รับความนิยมสูงสุด ประกอบด้วย 3-Axis Gyroscope และ 3-Axis Accelerometer ในชิปเดียว


🔌 การเชื่อมต่อ (Wiring)

MPU6050 Pin Arduino/ESP32 Pin Note
VCC 3.3V หรือ 5V (ขึ้นอยู่กับรุ่น) ส่วนใหญมักใช้ 3.3V
GND GND
SCL SCL (A5 / GPIO 22)
SDA SDA (A4 / GPIO 21)

💻 โค้ดตัวอย่าง (Arduino)

แนะนำให้ใช้ไลบรารี Adafruit MPU6050 เพื่อความง่ายในการดึงค่า

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

Adafruit_MPU6050 mpu;

void setup() {
  Serial.begin(115200);
  if (!mpu.begin()) {
    Serial.println("Failed to find MPU6050 chip");
    while (1) yield();
  }
  Serial.println("MPU6050 Found!");
}

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

  /* แสดงค่าความเร่ง (Accelerometer) */
  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);

  /* แสดงค่าการหมุน (Gyroscope) */
  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);

  delay(500);
}

🚀 การใช้งานจริงในหุ่นยนต์

  • Self-Balancing: ใช้ค่า Gyro/Accel เพื่อคุมหุ่นยนต์ 2 ล้อให้ยืนได้นิ่ง
  • Collision Detection: ตรวจจับแรงกระแทกจาก Accelerometer เมื่อหุ่นยนต์ชนสิ่งกีดขวาง
  • Leveling: เช็คว่ารถหุ่นยนต์กำลังไต่ทางชันอยู่หรือไม่ เพื่อปรับกำลังมอเตอร์

ศึกษาเพิ่มเติม

ดูรายละเอียดทฤษฎีการทำงานได้ที่ เซ็นเซอร์ IMU