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

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

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

ساخت ربات UGV چهارچرخ با کنترل LoRa: رانندگی بی‌سیم در برد بلند (فارسی)

​ ژوئن 10, 2026 2 دقیقه مطالعه
ربات UGV چهارچرخ کنترل LoRa

UGV و کنترل LoRa یعنی چه؟ (برای مبتدی)

UGV مخفف Unmanned Ground Vehicle است — یک وسیله زمینی بدون سرنشین که از راه دور کنترل می‌شود. از ربات‌های جستجو و نجات تا وسایل نقلیه اتوماتیک انبار همه UGV هستند. ارزان‌ترین راه شروع یک شاسی فلزی ۴ چرخ با ۴ موتور گیربکس‌دار است.

LoRa (Long Range) یک پروتکل رادیویی است که می‌تواند در فرکانس ۴۳۳ یا ۸۶۸ مگاهرتز با توان خروجی پایین (۱۰۰ میلی‌وات) تا ۱ کیلومتر در شهر و ۵+ کیلومتر در فضای باز ارتباط برقرار کند. این برای کنترل UGV بسیار مناسب است — خیلی بهتر از Bluetooth که فقط ۱۰ متر برد دارد. محبوب‌ترین ماژول آن Ra-02 (SX1278) است که در ایران به‌راحتی پیدا می‌شود.

در این پروژه دو برد آردوینو دارید: یکی فرستنده با جوی‌استیک روی زمین، و یکی گیرنده روی ربات که LoRa دستورات جوی‌استیک را بین آن‌ها منتقل می‌کند.

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

یک ربات UGV 4WD که با یک جوی‌استیک دستی (روی Arduino Nano) از طریق رادیو LoRa تا ۱ کیلومتر کنترل می‌شود.

  • زمان ساخت: ۳ تا ۵ ساعت
  • هزینه: ۸۰۰ هزار تا ۱.۵ میلیون تومان
  • برد کنترل: ۵۰۰m شهری — ۱km+ فضای باز

LoRa 433MHz تا ۱ کیلومتر فرستنده دستی Arduino + Ra-02 + جوی‌استیک ربات UGV Arduino + Ra-02 + L298N + موتور جوی‌استیک X,Y → Ra-02 TX → هوا → Ra-02 RX → L298N → موتورها

قطعات لازم (BOM) — فرستنده

قطعه تعداد
Arduino Nano ۱
ماژول LoRa Ra-02 (SX1278) 433MHz ۱
جوی‌استیک دوگانه (Dual Joystick Module) ۱
باتری 9V ۱

قطعات لازم — گیرنده (روی ربات)

قطعه تعداد
Arduino Nano ۱
ماژول LoRa Ra-02 (SX1278) 433MHz ۱
درایور موتور L298N ۱ یا ۲
شاسی 4WD با موتور گیربکس TT ۱ کیت
باتری LiPo 7.4V 2S یا 4×AA ۱

اتصال Ra-02 به Arduino Nano

پین Ra-02 پین Arduino Nano
VCC 3.3V (مهم: نه 5V!)
GND GND
SCK D13
MOSI D11
MISO D12
NSS/CS D10
RST D9
DIO0 D2

⚠ Ra-02 فقط 3.3V تحمل دارد. پین‌های MOSI/SCK/CS از 5V آردوینو به 3.3V نیاز به مقسم ولتاژ دارند یا از Arduino Pro Mini 3.3V استفاده کنید.

کد فرستنده


#include <SPI.h>
#include <LoRa.h>

const int JOY_X = A0;  // چپ/راست
const int JOY_Y = A1;  // جلو/عقب

void setup() {
  Serial.begin(9600);
  if (!LoRa.begin(433E6)) { Serial.println("LoRa init failed!"); while(1); }
  LoRa.setSpreadingFactor(7);
  LoRa.setSignalBandwidth(125E3);
  Serial.println("Transmitter ready");
}

void loop() {
  int x = analogRead(JOY_X);  // 0-1023
  int y = analogRead(JOY_Y);  // 0-1023

  LoRa.beginPacket();
  LoRa.print(x); LoRa.print(","); LoRa.print(y);
  LoRa.endPacket();

  Serial.print("Sent X="); Serial.print(x);
  Serial.print(" Y="); Serial.println(y);
  delay(50);  // ۲۰ بار در ثانیه
}

کد گیرنده (روی ربات)


#include <SPI.h>
#include <LoRa.h>

// L298N پین‌ها
const int IN1=5, IN2=6, IN3=7, IN4=8, ENA=3, ENB=11;

void setMotors(int left, int right) {
  left  = constrain(left,  -255, 255);
  right = constrain(right, -255, 255);
  analogWrite(ENA, abs(left));  analogWrite(ENB, abs(right));
  digitalWrite(IN1, left  > 0); digitalWrite(IN2, left  < 0);
  digitalWrite(IN3, right > 0); digitalWrite(IN4, right < 0);
}

void setup() {
  Serial.begin(9600);
  for (int p : {IN1,IN2,IN3,IN4,ENA,ENB}) pinMode(p, OUTPUT);
  if (!LoRa.begin(433E6)) { Serial.println("LoRa failed!"); while(1); }
  LoRa.setSpreadingFactor(7);
  LoRa.setSignalBandwidth(125E3);
}

void loop() {
  int pktSize = LoRa.parsePacket();
  if (pktSize) {
    String data = "";
    while (LoRa.available()) data += (char)LoRa.read();
    int comma = data.indexOf(',');
    int x = data.substring(0, comma).toInt();
    int y = data.substring(comma + 1).toInt();

    // تبدیل جوی‌استیک به سرعت موتور
    int fwd   = map(y, 0, 1023, -255, 255);
    int turn  = map(x, 0, 1023, -150, 150);
    setMotors(fwd + turn, fwd - turn);
  }
}

چک‌لیست تست

تست نتیجه
Serial Monitor فرستنده X,Y نمایش می‌دهد؟ بله
ربات به جوی‌استیک پاسخ می‌دهد؟ بله
در فاصله ۱۰۰ متر کار می‌کند؟ بله
هنگام قطع ارتباط ربات توقف می‌کند؟ timeout اضافه کنید

جوی‌استیک Ra-02 TX 433MHz LoRa Ra-02 RX روی ربات L298N + موتور حرکت UGV کنترل UGV از راه دور — برد تا ۱ کیلومتر با Ra-02 LoRa

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


منابع بیشتر

  • آپارات: LoRa آردوینو فارسی
  • کتابخانه arduino-LoRa GitHub
  • Random Nerd Tutorials: LoRa Guide
برچسب‌ها: LoRa Ra-02 UGV آردوینو آموزش گام‌به‌گام ربات مبتدی کنترل بی‌سیم
​
مطلب بعدی ساخت دوربین FPV روی هواپیمای بال ثابت (Fixed Wing): راهنمای کامل مبتدی (فارسی) مطلب قبلی راهنمای کامل تنظیم ArduPilot Copter روی Pixhawk: اولین پرواز خودکار (فارسی)
</> Make for Iran – بسازیم برای ایران

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

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

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

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

پیوندها

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

آخرین مطالب

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