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

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

  • خانه
  • الکترونیک
  • پرینت سه‌بعدی
  • حکاکی و برش لیزری
  • ابزار کارگاهی
  • پهپاد
  • ربات زمینی UGV
  • ربات پرنده UAV
  • صنایع دستی
  • آموزش
  • پروژه‌ها
  • درباره ما
خانه›آموزش›VESC برای UGV: نصب، تنظیم FOC و کنترل از آردوینو (فارسی)
آموزش ربات‌های زمینی (UGV)

VESC برای UGV: نصب، تنظیم FOC و کنترل از آردوینو (فارسی)

​ ژوئن 12, 2026 1 دقیقه مطالعه
VESC تنظیم FOC آردوینو UGV

VESC چیست و چرا از ESC معمولی بهتر است؟

VESC (Vedder Electronic Speed Controller) یک درایور موتور BLDC متن‌باز است که توسط Benjamin Vedder طراحی شده. برخلاف ESCهای ارزان هواپیمایی که فقط سرعت را تنظیم می‌کنند، VESC می‌تواند گشتاور، موقعیت و سرعت را با دقت کنترل کند، از طریق UART/CAN/PPM فرمان بگیرد، و حتی برق ترمزی برگردانده شود. برای UGV که نیاز به کنترل دقیق دارد عالی است.

FOC (Field Oriented Control) روشی است که مطمئن می‌شود جریان الکتریکی همیشه در بهترین زاویه نسبت به مگنت‌های روتور باشد — کارایی بالاتر، گشتاور بیشتر در RPM پایین، و صدا کمتر.

🛠️ کارت پروژه

ولتاژ کاری ۸–۶۰V (VESC 4.12 تا ۵۷V)
جریان پیک تا ۱۲۰A (VESC 4.12 ≈ ۵۰A continuous)
قیمت ~۵۰۰–۱۲۰۰K (تکی یا Dual)

مراحل تنظیم VESC با VESC Tool

  1. دانلود: vesc-project.com/vesc_tool — نسخه رایگان کافی است.
  2. باتری را وصل کن، VESC را با USB به کامپیوتر وصل کن.
  3. کلیک Connect (پورت USB/Serial را انتخاب کن).
  4. از منوی Setup: Motor Wizard → نوع موتور = BLDC یا Inrunner/Outrunner.
  5. کلیک Detect Motor Parameters — موتور به آرامی می‌چرخد و پارامترها شناسایی می‌شوند.
  6. در تب Motor Settings → General: جریان موتور = ۰.۸ × جریان نامی موتور.
  7. FOC را در تب FOC فعال کن — Hall Sensor Detect را اجرا کن اگر حسگر دارد.
  8. در App Settings → UART: بودریت را ۱۱۵۲۰۰ کن.

کد آردوینو — کنترل از طریق UART

// کتابخانه: arduino-vesc (GitHub: solidGeek)
#include "VescUart.h"
VescUart VESC;

void setup(){
  Serial1.begin(115200);
  VESC.setSerialPort(&Serial1);
}

void loop(){
  // کنترل سرعت — RPM
  VESC.setRPM(3000);   // جلو ۳۰۰۰RPM
  delay(2000);
  VESC.setRPM(0);
  delay(500);
  VESC.setRPM(-3000);  // برعکس
  delay(2000);
  VESC.setRPM(0);
  delay(1000);

  // خواندن تله‌متری
  if(VESC.getVescValues()){
    Serial.print("RPM: "); Serial.println(VESC.data.rpm);
    Serial.print("Voltage: "); Serial.println(VESC.data.inpVoltage);
    Serial.print("Current: "); Serial.println(VESC.data.avgMotorCurrent);
  }
}

جدول جریان پیشنهادی برای موتورهای رایج

موتور جریان Motor Max جریان Battery Max
Hub Motor Hoverboard 250W 40A 20A
BLDC Outrunner 5065 50A 25A
BLDC Inrunner 5045 60A 30A

  • کتابخانه VescUart Arduino
  • مستندات رسمی VESC
برچسب‌ها: BLDC Brushless FOC Motor Control UART UGV VESC آردوینو درایور موتور
​
مطلب بعدی UGV با موتورهای پله‌ای — ناوبری دقیق در فضای بسته بدون GPS (فارسی) مطلب قبلی Differential Drive UGV: فرمول‌های حرکت، Odometry و کد آردوینو (فارسی)
</> Make for Iran – بسازیم برای ایران

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

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

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

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

پیوندها

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

آخرین مطالب

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