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

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

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

ExpressLRS (ELRS) برای UGV — کمترین تأخیر، بیشترین برد با آردوینو (فارسی)

​ ژوئن 12, 2026 1 دقیقه مطالعه
ExpressLRS ELRS UGV کنترل تأخیر کم برد بلند

ExpressLRS چیست و چرا از Futaba یا FrSky بهتر است؟

ExpressLRS (ELRS) یک سیستم کنترل RC متن‌باز است که روی ماژول‌های SX1276/SX1280 اجرا می‌شود. با تأخیر کمتر از ۱۰ms و برد بالای ۱۰–۳۰km در برخی حالت‌ها، از اکثر سیستم‌های تجاری پیشی می‌گیرد. کاملاً رایگان و متن‌باز است — فریمور را می‌توانی خودت compile کنی.

برای UGV، گیرنده ELRS یک پروتکل سریال (CRSF یا SBUS) به آردوینو می‌دهد که کانال‌های فرمان را می‌خوانی. هیچ نیازی به آردوینو جداگانه برای فرستنده نیست — رادیو دستی RadioMaster TX16S یا Happymodel ELRS فرستنده شما است.

🛠️ کارت پروژه

فرستنده RadioMaster TX12/TX16S با ماژول ELRS (~۳M) یا Happymodel ES24TX (~۵۰۰K)
گیرنده Happymodel EP1 Nano 2.4GHz (~۱۵۰K)
تأخیر ~۱۰ms @ 500Hz packet rate

خواندن کانال‌های CRSF با آردوینو

// کتابخانه: CrsfSerial (GitHub: CapnBry)
#include "CrsfSerial.h"

// CRSF از گیرنده ELRS روی Serial1 (Arduino Mega/Due)
CrsfSerial crsf(Serial1, 420000);  // بودریت CRSF = 420000

void packetChannels(){
  // کانال‌ها ۱۷۲ (min) تا ۱۸۱۱ (max)، وسط = ۹۹۲
  int ch1 = crsf.getChannel(1);  // Throttle
  int ch2 = crsf.getChannel(2);  // Yaw/Steering
  int ch3 = crsf.getChannel(3);  // Pitch (اضافی)
  int ch5 = crsf.getChannel(5);  // Arm switch

  // تبدیل به مقادیر UGV
  int throttle = map(ch1, 172, 1811, -255, 255);
  int steering = map(ch2, 172, 1811, -100, 100);
  bool armed   = (ch5 > 992);

  if(armed){
    applyDrive(throttle, steering);
  } else {
    stopMotors();
  }
}

void setup(){
  Serial1.begin(420000);
  crsf.onPacketChannels = &packetChannels;
}

void loop(){
  crsf.loop();
}

خواندن SBUS (جایگزین CRSF)

// کتابخانه: SBUS (GitHub: bolderflight)
#include "sbus.h"
bfs::SbusRx sbus(&Serial2);
bfs::SbusData data;

void setup(){
  Serial2.begin(100000, SERIAL_8E2);  // SBUS: 100K baud, Even parity, 2 stop bits
}

void loop(){
  if(sbus.Read()){
    data = sbus.data();
    if(!data.failsafe && !data.lost_frame){
      int thr = map(data.ch[0], 172,1811,-255,255);
      int str = map(data.ch[1], 172,1811,-100,100);
      applyDrive(thr, str);
    } else {
      stopMotors();  // Failsafe
    }
  }
}

  • ExpressLRS — سایت رسمی و مستندات
  • CrsfSerial کتابخانه آردوینو
  • آپارات: ELRS آردوینو ربات
برچسب‌ها: CRSF ELRS ExpressLRS RC SBUS UGV برد بلند تأخیر کم کنترل از راه دور
​
مطلب بعدی FPV روی UGV — دوربین ۵.۸GHz، VTX و نمایش OSD با GPS Overlay (فارسی) مطلب قبلی Geofencing با GPS: محدود کردن ناحیه حرکت UGV با آردوینو (فارسی)
</> Make for Iran – بسازیم برای ایران

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

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

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

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

پیوندها

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

آخرین مطالب

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