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

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

  • خانه
  • الکترونیک
  • پرینت سه‌بعدی
  • حکاکی و برش لیزری
  • ابزار کارگاهی
  • پهپاد
  • ربات زمینی UGV
  • ربات پرنده UAV
  • صنایع دستی
  • آموزش
  • پروژه‌ها
  • درباره ما
خانه›آموزش›Drive-By-Wire: کنترل فرمان EPS و ترمز با آردوینو (بخش ۲) (فارسی)
آموزش ربات‌های زمینی (UGV)

Drive-By-Wire: کنترل فرمان EPS و ترمز با آردوینو (بخش ۲) (فارسی)

​ ژوئن 12, 2026 1 دقیقه مطالعه
Drive-By-Wire EPS فرمان ترمز آردوینو ایمنی
⚠️ هشدار ایمنی: همیشه یک سیستم Watchdog داشته باش که در صورت قطع ارتباط بلافاصله ترمز کند. همیشه یک نفر در کنار ماشین با کلید خاموش‌کننده اضطراری باشد.
📌 بخش ۱/۲: مکانیک ✅  |  📌 بخش ۲/۲ (همین): الکترونیک، کد، ایمنی

هک EPS — ارسال فرمان گشتاور

سیستم EPS معمولاً از یک حسگر گشتاور فرمان (Torque Sensor) استفاده می‌کند. وقتی گشتاور به فرمان اعمال می‌شود، ECU EPS موتور را می‌چرخاند. با تزریق سیگنال ولتاژ شبیه‌سازی‌شده از Torque Sensor می‌توان فرمان را از آردوینو کنترل کرد. این روش در پروژه‌های متن‌باز مثل openpilot استفاده می‌شود.

کنترل ترمز با سرو خطی (ساده‌ترین روش)

#include <Servo.h>
Servo brakeSrv;  // سرو خطی Linear Actuator یا سرو قوی MG996R

// براکت سرو روی پدال ترمز — نباید لنگر روی پدال کج باشد
const int BRAKE_RELEASED = 0;   // درجه — بدون ترمز
const int BRAKE_FULL = 45;      // درجه — ترمز کامل

void brakeApply(int percent){   // 0–100
  int angle = map(percent, 0,100, BRAKE_RELEASED, BRAKE_FULL);
  brakeSrv.write(angle);
}

// ترمز اضطراری — همیشه در setup تعریف کن
void emergencyBrake(){
  brakeSrv.write(BRAKE_FULL);
  setThrottle(0);
}

سیستم Watchdog — قطع ارتباط = توقف

unsigned long lastHeartbeat = 0;
const unsigned long WATCHDOG_TIMEOUT = 500;  // ms

void loop(){
  // دریافت heartbeat از GCS
  int pkt = LoRa.parsePacket();
  if(pkt > 0){
    char cmd = (char)LoRa.read();
    lastHeartbeat = millis();
    if(cmd == 'E') emergencyBrake();
    // سایر دستورها...
  }

  // Watchdog
  if(millis() - lastHeartbeat > WATCHDOG_TIMEOUT){
    emergencyBrake();  // هر ۵۰۰ms بدون ارتباط = توقف
  }
}

// Watchdog Timer سخت‌افزاری آردوینو
#include <avr/wdt.h>
void setup(){
  wdt_enable(WDTO_500MS);  // ری‌ست اگر ۵۰۰ms loop اجرا نشد
}
void loop(){
  wdt_reset();  // هر دور لوپ ری‌ست تایمر
  // ...
}

چک‌لیست ایمنی Drive-By-Wire

آیتم ✓
کلید kill switch اضطراری فیزیکی ⬜
Watchdog timeout ≤ 500ms ⬜
Geofence تعریف‌شده ⬜
سرعت محدود به ۵km/h در تست اول ⬜
نفر کنترل‌کننده دستی همراه ماشین ⬜

  • openpilot — سیستم خودران متن‌باز
  • آپارات: ماشین آردوینو خودران
برچسب‌ها: Drive-By-Wire EPS GPS Watchdog آردوینو ایمنی بخش ۲ از ۲ ترمز خودران
​
مطلب بعدی Drive-By-Wire: تبدیل ماشین واقعی به خودران با آردوینو و سرو (بخش ۱) (فارسی) مطلب قبلی ساخت گلف کارت خودکار DIY برای کشاورزی با آردوینو و GPS (فارسی)
</> Make for Iran – بسازیم برای ایران

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

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

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

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

پیوندها

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

آخرین مطالب

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