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

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

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

ساخت سیستم ترمز اضطراری برای UGV با سنسور فاصله ToF VL53L1X (فارسی)

​ ژوئن 11, 2026 2 دقیقه مطالعه
VL53L1X ToF UGV ترمز اضطراری مانع

سنسور ToF VL53L1X چیست؟ (مبتدی)

سنسور VL53L1X از STMicroelectronics یک سنسور ToF (Time of Flight — زمان پرواز نور) است که با ارسال پالس لیزر نادیدنی و اندازه‌گیری زمان بازگشت آن، فاصله را با دقت ±۱ میلی‌متر در برد تا ۴ متر اندازه می‌گیرد — ۱۰ برابر دقیق‌تر از سونار HC-SR04!

این سنسور از I2C استفاده می‌کند و کتابخانه آردوینو SparkFun دارد. با نصب آن روی جلوی UGV و تنظیم آستانه فاصله (مثلاً ۳۰cm)، می‌توان یک سیستم ترمز اضطراری ساخت که قبل از برخورد با مانع، UGV را متوقف کند.

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

سیستم ترمز اضطراری UGV با VL53L1X — اتوماتیک متوقف می‌شود.

  • هزینه سنسور: ۵-۸ دلار
  • دقت فاصله: ±۱mm
  • زمان واکنش: زیر ۵۰ms

UGV VL53L1X جلو لیزر IR مانع dist=25cm STOP! VL53L1X — لیزر ToF، ۴m برد، ±۱mm، ترمز در ۳۰cm

کد آردوینو — ترمز اضطراری


#include <Wire.h>
#include <SparkFun_VL53L1X.h>

SFEVL53L1X distanceSensor;

const int L_F=6,L_B=7,R_F=8,R_B=9;
const int STOP_DIST = 300;   // mm — توقف در ۳۰cm
const int SLOW_DIST = 600;   // mm — کاهش سرعت در ۶۰cm

void motors(int lf,int lb,int rf,int rb) {
  digitalWrite(L_F,lf); digitalWrite(L_B,lb);
  digitalWrite(R_F,rf); digitalWrite(R_B,rb);
}

void setup() {
  Wire.begin();
  distanceSensor.begin();
  distanceSensor.setTimingBudgetInMs(20);  // 20ms → 50Hz
  distanceSensor.setIntermeasurementPeriod(22);
  distanceSensor.startRanging();
  int pins[]={L_F,L_B,R_F,R_B};
  for(int p:pins) pinMode(p,OUTPUT);
}

void loop() {
  if(distanceSensor.checkForDataReady()) {
    int dist = distanceSensor.getDistance();
    distanceSensor.clearInterrupt();

    if(dist < STOP_DIST) {
      motors(0,0,0,0);       // توقف اضطراری
      Serial.println("EMERGENCY STOP: " + String(dist) + "mm");
    } else if(dist < SLOW_DIST) {
      // کاهش سرعت (PWM analogWrite)
      analogWrite(9,  map(dist,STOP_DIST,SLOW_DIST,100,255));
      analogWrite(11, map(dist,STOP_DIST,SLOW_DIST,100,255));
      motors(1,0,1,0);
    } else {
      motors(1,0,1,0);   // سرعت کامل
    }
  }
}

مقایسه سنسورهای فاصله برای UGV

سنسور دقت برد مناسب
HC-SR04 (سونار) ±۳mm ۲cm-۴m اقتصادی
VL53L0X ±۳mm تا ۲m محیط داخلی
VL53L1X ✓ ±۱mm تا ۴m UGV بهترین
TF-Mini LiDAR ±۱cm تا ۱۲m دوربرد

VL53L1X I2C 50Hz Arduino Threshold Logic L298N PWM کاهش UGV توقف ایمن ۳۰cm VL53L1X — ToF ±۱mm → آردوینو → ترمز اضطراری UGV

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


منابع بیشتر

  • آپارات: VL53L1X سنسور فاصله آردوینو فارسی
  • SparkFun: VL53L1X Arduino Library
برچسب‌ها: ToF UGV VL53L1X آردوینو آموزش گام‌به‌گام ترمز اضطراری سنسور فاصله مانع
​
مطلب بعدی ساخت باگی RC آفرود با موتور Brushless و ESC: UGV سریع روی زمین ناهموار (فارسی) مطلب قبلی راه‌اندازی iNAV روی F7 برای هواپیمای ثابت‌بال: Autolaunch، RTH، و Waypoint (فارسی)
</> Make for Iran – بسازیم برای ایران

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

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

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

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

پیوندها

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

آخرین مطالب

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