โมดูลวัดความเอียง 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