</> Make for Iran – بسازیم برای ایران

پروژه‌ها، آموزش‌ها و ابزارها برای سازندگان و علاقه‌مندان الکترونیک

  • خانه
  • الکترونیک
  • پرینت سه‌بعدی
  • حکاکی و برش لیزری
  • ابزار کارگاهی
  • پهپاد
  • ربات زمینی UGV
  • ربات پرنده UAV
  • صنایع دستی
  • آموزش
  • پروژه‌ها
  • درباره ما
خانه›ربات‌های پرنده (UAV)›ساخت گیمپال ۳ محوره با آردوینو و MPU-6050: تصویر پایدار برای FPV (فارسی)
ربات‌های پرنده (UAV) پروژه‌ها

ساخت گیمپال ۳ محوره با آردوینو و MPU-6050: تصویر پایدار برای FPV (فارسی)

​ ژوئن 11, 2026 1 دقیقه مطالعه
گیمپال ۳ محوره MPU-6050 آردوینو FPV پایدار

گیمپال و پایدارسازی تصویر چیست؟ (مبتدی)

وقتی یک پهپاد یا UGV حرکت می‌کند، دوربین همراه آن می‌لرزد — تصویر FPV ناپایدار می‌شود. یک گیمپال (Gimbal) یک پلتفرم متحرک است که لرزش‌ها را با سروها جبران می‌کند — دوربین همیشه صاف می‌ماند.

سنسور MPU-6050 یک IMU ۶ محوره (۳ محور شتاب‌سنج + ۳ محور ژیروسکوپ) با قیمت زیر ۵ دلار است. آردوینو با کنترلر PID خطای زاویه را می‌گیرد و سروهای MG996R را تنظیم می‌کند. گیمپال ۳ محوره هر سه محور Roll، Pitch، و Yaw را کنترل می‌کند.

محصولی که می‌سازید

گیمپال ۳ محوره با MPU-6050 و ۳ سرو MG996R برای دوربین FPV.

  • هزینه: ۵۰۰ هزار تا ۱ میلیون تومان
  • محورها: Roll، Pitch، Yaw
  • سرعت پاسخ: ۲۰۰Hz با MPU-6050

دوربین FPV MPU-6050 روی آن سرو Roll سرو Pitch سرو Yaw (زیر) گیمپال ۳ محوره — PID هر محور

کد گیمپال با PID


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

MPU6050 mpu;
Servo servoRoll, servoPitch, servoYaw;

float rollAngle, pitchAngle, yawAngle;
float rollTarget=90, pitchTarget=90, yawTarget=90;

// PID هر محور:
float Kp=1.5, Ki=0.05, Kd=0.3;
float errR,errP,errY;
float intR=0,intP=0,intY=0;
float prevR=0,prevP=0,prevY=0;

void setup() {
  Wire.begin();
  mpu.initialize();
  servoRoll.attach(9);
  servoPitch.attach(10);
  servoYaw.attach(11);
}

float pid(float err, float &integral, float &prev) {
  integral += err;
  float d = err - prev;
  prev = err;
  return Kp*err + Ki*integral + Kd*d;
}

void loop() {
  int16_t ax,ay,az,gx,gy,gz;
  mpu.getMotion6(&ax,&ay,&az,&gx,&gy,&gz);

  // محاسبه زاویه از شتاب‌سنج:
  rollAngle  = atan2(ay,az)*180/PI;
  pitchAngle = atan2(-ax,sqrt(ay*ay+az*az))*180/PI;

  // PID و خروجی سرو:
  errR = rollTarget  - rollAngle;
  errP = pitchTarget - pitchAngle;

  int outR = 90 + pid(errR,intR,prevR);
  int outP = 90 + pid(errP,intP,prevP);

  servoRoll.write(constrain(outR,0,180));
  servoPitch.write(constrain(outP,0,180));
  delay(5);  // 200Hz
}

چک‌لیست کالیبراسیون و تست

بررسی روش
MPU-6050 افست کالیبره شده؟ mpu.calibrateGyro() روی میز صاف
سرو در ۹۰° صفر درجه نگه می‌دارد؟ rollTarget=pitchTarget=90
گیمپال تکان را جبران می‌کند؟ پایه را کج کنید — باید ثابت بماند
Oscillation (لرزش PID) وجود ندارد؟ Kp را کاهش دهید

MPU-6050 200Hz IMU Arduino PID ۳ محور ۳× MG996R سرو قوی دوربین ثابت FPV پایدار گیمپال — MPU-6050 → PID → سرو → تصویر FPV پایدار

ویدئوهای آموزشی


منابع بیشتر

  • آپارات: گیمپال دوربین پایدارساز فارسی
  • GitHub: MPU6050 Arduino Library
برچسب‌ها: FPV MPU-6050 PID آردوینو آموزش گام‌به‌گام تصویر پایدار سرو MG996R گیمپال
​
مطلب بعدی ساخت آنتن Yagi-Uda برای LoRa 433MHz: ۱۰dBi لاب‌ساخت برای برد بیشتر (فارسی) مطلب قبلی کنترل UGV با دستکش حرکتی: MPU-6050 روی دست + Sub-GHz LoRa 433MHz (فارسی)
</> Make for Iran – بسازیم برای ایران

پروژه‌ها، آموزش‌ها و ابزارها برای سازندگان و علاقه‌مندان الکترونیک

یاد بگیر، بساز، به اشتراک بگذار. جامعه‌ای برای سازندگان، مهندسان و علاقه‌مندان به فناوری در ایران.

دسته‌بندی‌ها

  • پروژه‌ها
  • ربات‌های پرنده (UAV)
  • آموزش
  • ربات‌های زمینی (UGV)
  • الکترونیک
  • پهپاد و مولتی‌روتور

پیوندها

  • خانه
  • درباره ما
  • تماس
  • فید RSS

آخرین مطالب

  • خلاصه دوره ArduPilot/iNAV و گام‌های بعدی (فارسی)
  • رادیو تله‌متری در مقابل LTE/4G برای کنترل از راه دور (فارسی)
  • Ground Station روی موبایل و تبلت — QGroundControl و Solex (فارسی)
  • راه‌اندازی Ground Station با Mission Planner (فارسی)
© 2026 Make for Iran – بسازیم برای ایران. تمامی حقوق محفوظ است.
ساخته شده با ❤️ برای سازندگان ایران  |  ورود