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

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

  • خانه
  • الکترونیک
  • پرینت سه‌بعدی
  • حکاکی و برش لیزری
  • ابزار کارگاهی
  • پهپاد
  • ربات زمینی UGV
  • ربات پرنده UAV
  • صنایع دستی
  • آموزش
  • پروژه‌ها
  • درباره ما
خانه›آموزش›ماژول GPS u-blox NEO-6M برای UGV: راه‌اندازی، NMEA و کد آردوینو (فارسی)
آموزش ربات‌های زمینی (UGV)

ماژول GPS u-blox NEO-6M برای UGV: راه‌اندازی، NMEA و کد آردوینو (فارسی)

​ ژوئن 12, 2026 2 دقیقه مطالعه
GPS NEO-6M u-blox آردوینو NMEA UGV

GPS چطور کار می‌کند؟ از ماهواره تا مختصات

سیستم GPS از شبکه‌ای از ۳۱ ماهواره در مدار زمین استفاده می‌کند. گیرنده شما زمان رسیدن سیگنال از هر ماهواره را اندازه می‌گیرد و از روی اختلاف زمان‌ها موقعیت را محاسبه می‌کند — این روش Trilateration نام دارد. با حداقل ۴ ماهواره دقت ~۲.۵m برای NEO-6M قابل دستیابی است.

خروجی GPS به فرمت NMEA 0183 است — رشته‌های متنی که با کاما جدا می‌شوند. رایج‌ترین جمله است که lat، lng، سرعت و زمان دارد. کتابخانه TinyGPS++ این رشته‌ها را برای شما parse می‌کند.

🛠️ کارت پروژه

دقت ~۲.۵m CEP (Circular Error Probable)
زمان اولین Fix Cold: ~۳۰s — Warm: ~۵s
قیمت ~۱۵۰K تومان (با آنتن خارجی)

اتصال NEO-6M به Arduino

NEO-6M Arduino Uno
VCC 3.3V
GND GND
TX (GPS خروجی) D4 (SoftwareSerial RX)
RX (GPS ورودی) D3 (SoftwareSerial TX)

کد کامل با TinyGPS++

#include <SoftwareSerial.h>
#include <TinyGPS++.h>

SoftwareSerial gpsSerial(4, 3);  // RX=D4, TX=D3
TinyGPSPlus gps;

void setup(){
  Serial.begin(115200);
  gpsSerial.begin(9600);
  Serial.println("انتظار برای Fix GPS...");
}

void loop(){
  while(gpsSerial.available() > 0){
    gps.encode(gpsSerial.read());
  }

  if(gps.location.isUpdated()){
    Serial.print("Lat: ");  Serial.print(gps.location.lat(), 6);
    Serial.print("  Lng: "); Serial.print(gps.location.lng(), 6);
    Serial.print("  Alt: "); Serial.print(gps.altitude.meters(), 1); Serial.print("m");
    Serial.print("  Spd: "); Serial.print(gps.speed.kmph(), 1); Serial.print("km/h");
    Serial.print("  Hdg: "); Serial.print(gps.course.deg(), 1); Serial.print("°");
    Serial.print("  Sats: "); Serial.println(gps.satellites.value());
  }

  // بررسی اگر GPS اصلاً پاسخ نمی‌دهد
  if(millis() > 10000 && gps.charsProcessed() < 10){
    Serial.println("⚠️ هیچ داده‌ای از GPS نمی‌رسد — سیم TX/RX را چک کن!");
  }
}

افزایش نرخ به‌روزرسانی به ۵Hz

// ارسال دستور u-blox UBX برای تغییر به ۵Hz:
void setup(){
  gpsSerial.begin(9600);
  // دستور تغییر به ۵Hz (200ms interval):
  uint8_t rate5hz[] = {
    0xB5,0x62,0x06,0x08,0x06,0x00,
    0xC8,0x00,0x01,0x00,0x01,0x00,
    0xDE,0x6A
  };
  gpsSerial.write(rate5hz, sizeof(rate5hz));
  delay(500);
}

  • TinyGPS++ — GitHub
  • مستندات رسمی u-blox NEO-6
  • آپارات: GPS ناوبری آردوینو
برچسب‌ها: GPS NEO-6M NMEA TinyGPS++ u-blox UGV آردوینو موقعیت‌یاب ناوبری
​
مطلب بعدی پلتفرم UGV تانکی از قطعات اسکرپ — شنی DIY با موتور DC (فارسی) مطلب قبلی ناوبری GPS خودکار UGV با آردوینو — دنبال کردن Waypoint‌ها (فارسی)
</> Make for Iran – بسازیم برای ایران

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

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

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

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

پیوندها

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

آخرین مطالب

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