معرفی ماژول MPU6050 و مدل سه‌بعدی با Processing

ژیروسکوپ و شتاب سنج آردوینو با mpu605
اگر براتون مفید بود لطفا امتیاز بدید
امتیاز دادن شما خیلی کمک میکنه به بهتر کردن مطالب
[کل: ۰ میانگین: ۰]

🧭 معرفی ماژول MPU6050 و پروژه مدل سه‌بعدی با Arduino + Processing

📦 ماژول MPU6050 چیست؟

ماژول MPU6050 یک سنسور ترکیبی ژیروسکوپ و شتاب‌سنج ۳ محوره است. یعنی می‌تونه زاویه چرخش (Gyro) و تغییر مکان (Accel) رو در محورهای X، Y و Z تشخیص بده. این ماژول از طریق پروتکل I2C با آردوینو ارتباط برقرار می‌کنه.


🔌 اتصالات ماژول MPU6050 به Arduino

MPU6050Arduino UNO
VCC۳.3V یا 5V
GNDGND
SDAA4 (SDA)
SCLA5 (SCL)

اگر از بردهایی مثل ESP32 استفاده می‌کنی، پین‌های I2C رو متناسب با اون تغییر بده.


🧠 کد آردوینو (خواندن اطلاعات MPU6050)

ابتدا باید کتابخانه‌های مورد نیاز رو نصب کنید:

✅ کتابخانه‌ها:

  • MPU6050 (توسط Electronic Cats یا Jeff Rowberg)
  • Wire

کد Arduino:

#include <Wire.h>
#include <MPU6050.h>

MPU6050 mpu;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  mpu.initialize();

  if (!mpu.testConnection()) {
    Serial.println("MPU6050 connection failed");
    while (1);
  }
}

void loop() {
  int16_t ax, ay, az;
  int16_t gx, gy, gz;

  mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

  Serial.print("aX:"); Serial.print(ax);
  Serial.print("\taY:"); Serial.print(ay);
  Serial.print("\taZ:"); Serial.print(az);
  Serial.print("\tgX:"); Serial.print(gx);
  Serial.print("\tgY:"); Serial.print(gy);
  Serial.print("\tgZ:"); Serial.println(gz);

  delay(50);
}

🧊 ساخت مدل سه‌بعدی با Processing

Processing یه محیط ساده برای طراحی گرافیک تعاملیه. اینجا با استفاده از داده‌هایی که از سریال می‌گیریم، یه مکعب سه‌بعدی رو مطابق چرخش MPU6050 می‌چرخونیم.

کد Processing:

import processing.serial.*;

Serial myPort;
String val;
float ax, ay, az;

void setup() {
  size(600, 600, P3D);
  myPort = new Serial(this, Serial.list()[0], 9600);
  myPort.bufferUntil('\n');
}

void draw() {
  background(100);
  lights();

  translate(width/2, height/2, 0);
  rotateX(radians(ax));
  rotateY(radians(ay));
  rotateZ(radians(az));

  fill(150, 200, 250);
  box(200);
}

void serialEvent(Serial myPort) {
  val = myPort.readStringUntil('\n');
  if (val != null) {
    val = trim(val);
    if (val.startsWith("aX:")) {
      String[] tokens = split(val, '\t');
      ax = float(split(tokens[0], ':')[1]) / 16384.0 * 90;
      ay = float(split(tokens[1], ':')[1]) / 16384.0 * 90;
      az = float(split(tokens[2], ':')[1]) / 16384.0 * 90;
    }
  }
}

🎯 نکات مهم:

  • با تغییر مقیاس داده‌ها (تقسیم بر ۱۶۳۸۴ یا …)، شدت چرخش رو کنترل می‌کنید.
  • اگر مکعب در محور نادرست می‌چرخه، ترتیب محورهای چرخش در rotateX/Y/Z رو تغییر بدید.
  • در برخی مدل‌ها نیاز به کالیبراسیون اولیه وجود داره.

در ویدیوی زیر هم میتونید نحوه عملکرد ماژول MPU6050 رو مشاهده کنید

ویدیو به زودی منتشر میشود ….

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *