بازگشت به وبلاگ قطعات الکترونیک

آموزش ماژول u-blox NEO-6M-0-001

2026/11/01 15 بازدید
آموزش ماژول u-blox NEO-6M-0-001

اگر به ساخت ردیاب، پهپاد، دیتالاگر مسیر یا حتی یک ساعت دقیق با آردوینو فکر کرده‌اید، اولین قطعه‌ی فهرست خرید شما احتمالاً یک گیرنده‌ی GPS است. ماژول u-blox NEO-6M-0-001 یکی از محبوب‌ترین انتخاب‌ها برای شروع است: ارزان، فراوان، خوش‌مستند و به‌اندازه‌ی کافی دقیق. در این راهنما از صفر شروع می‌کنیم؛ ابتدا می‌بینیم گیرنده چطور موقعیت را پیدا می‌کند، بعد سخت‌افزار و پین‌های ماژول را می‌شناسیم، سیم‌کشی را انجام می‌دهیم و در نهایت با دو کد آماده به مختصات، سرعت و زمان دقیق می‌رسیم.

🎓 این مقاله برای چه کسی نوشته شده است؟
برای دانشجو، دانش‌آموز، سازنده‌ی پروژه‌های DIY و هر کسی که می‌خواهد برای اولین بار یک ماژول GPS را راه بیندازد. فقط کافی است با آردوینو و محیط Arduino IDE آشنایی مقدماتی داشته باشید؛ بقیه‌ی مسیر را قدم‌به‌قدم پیش می‌بریم.

در این آموزش چه چیزهایی یاد می‌گیرید؟

🛰️ قبل از شروع، این را بدانید
GPS یک گیرنده‌ی منفعل است؛ نه به اینترنت نیاز دارد و نه چیزی به ماهواره ارسال می‌کند. اما برای دیدن ماهواره باید «آسمان را ببیند». اگر ماژول را داخل اتاق، زیر میز یا داخل جعبه‌ی فلزی تست کنید، احتمالاً هیچ موقعیتی دریافت نمی‌کنید — این خرابی نیست، محدودیت ذاتی امواج رادیویی است.

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

GPS چگونه کار می‌کند؟

برخلاف تصور رایج، گیرنده‌ی GPS هیچ سیگنالی به ماهواره نمی‌فرستد و ماهواره هم نمی‌داند شما کجا هستید. تمام کار در سمت گیرنده انجام می‌شود و تنها ورودی آن، سیگنال‌های یک‌طرفه‌ی ماهواره‌ها است. هر ماهواره به‌طور مداوم دو اطلاعات کلیدی را پخش می‌کند: موقعیت دقیق خودش در مدار و زمان دقیق ارسال پیام. گیرنده با دانستن این دو، فاصله‌ی خود تا ماهواره را حساب می‌کند.

از تأخیر زمانی تا فاصله

سیگنال رادیویی با سرعت نور حرکت می‌کند؛ حدود ۳۰۰٬۰۰۰ کیلومتر بر ثانیه. اگر گیرنده بتواند اختلاف زمان ارسال و دریافت را با دقت نانوثانیه اندازه بگیرد، فاصله را از رابطه‌ی ساده‌ی «سرعت × زمان» به دست می‌آورد. به این ترتیب هر ماهواره یک کره‌ی فرضی دور گیرنده رسم می‌کند که شعاع آن، فاصله‌ی اندازه‌گیری‌شده است.

به همین دلیل است که می‌گویند برای موقعیت سه‌بعدی حداقل به چهار ماهواره نیاز دارید. در عمل، گیرنده‌ها برای پایداری و کاهش خطا معمولاً با ۶ تا ۱۰ ماهواره کار می‌کنند. به این فرآیند سه‌گانه‌سازی می‌گویند؛ نه مثلث‌بندی. در مثلث‌بندی از زاویه استفاده می‌شود، اما در GPS از فاصله.

نمودار سه‌گانه‌سازی GPS با سه ماهواره و دایره‌های فاصله که در نقطه گیرنده تلاقی می‌کنند
هر ماهواره یک دایره‌ی فاصله رسم می‌کند؛ محل تلاقی این دایره‌ها، موقعیت گیرنده روی زمین است.

Cold Start، Warm Start و Hot Start

ماژول برای محاسبه‌ی موقعیت به داده‌های مداری ماهواره‌ها (Ephemeris و Almanac) نیاز دارد. این داده‌ها از خود سیگنال‌ها دریافت می‌شوند و نگه‌داشتن‌شان زمان می‌برد. به همین دلیل، زمان رسیدن به اولین تثبیت موقعیت یا TTFF در سه حالت متفاوت است:

مقایسه‌ی حالت‌های شروع ماژول NEO-6M

حالتشرایطزمان تقریبی TTFF
Cold Startبدون داده‌ی قبلی؛ مثل اولین روشن شدن یا بعد از خالی شدن باتری پشتیبانحدود ۲۷ ثانیه در فضای باز
Warm Startداده‌ی تقویم مداری موجود است، اما موقعیت و زمان تقریبی به‌روز نیستحدود ۲۷ ثانیه (شرایط متوسط)
Hot Startباتری پشتیبان سالم است و آخرین موقعیت و زمان ذخیره شده‌اندحدود ۱ ثانیه

⏳ «چرا بار اول طول می‌کشد؟»
اگر ماژول تازه از کارتن درآمده یا مدت طولانی بدون تغذیه مانده باشد، در حالت Cold Start است. یک تا سه دقیقه صبر در فضای باز، کاملاً طبیعی است. بعد از اولین Fix، اگر باتری پشتیبان شارژ بماند، شروع‌های بعدی بسیار سریع‌تر خواهند بود.

شناخت ماژول و اجزای آن

ماژولی که در این آموزش استفاده می‌کنیم، برد آماده‌ی GY-NEO6MV2 است که تراشه‌ی NEO-6M شرکت سوئیسی u-blox را روی یک PCB کوچک با رگولاتور، حافظه، باتری و کانکتور آنتن قرار داده است. همین برد ساده، کار را برای آردوینو بسیار راحت می‌کند؛ چون تراشه‌ی خام به ولتاژ ۳.۳ ولت، آنتن RF و مدارهای جانبی حساس نیاز دارد.

تراشه‌ی NEO-6M؛ قلب ماژول

NEO-6M یک گیرنده‌ی GPS تک‌سیستمی با ۵۰ کانال موازی است که روی باند L1 و فرکانس ۱۵۷۵.۴۲ مگاهرتز کار می‌کند. حساسیت ردیابی آن به ‎-۱۶۱ دسی‌بل‌میلی‌وات می‌رسد؛ عددی که در زمان معرفی این تراشه بسیار چشمگیر بود و هنوز هم برای پروژه‌های آموزشی و ردیابی عمومی کافی است. دقت افقی معمول آن ۲.۵ متر است و می‌تواند موقعیت را تا پنج بار در ثانیه به‌روزرسانی کند.

بلوک‌دیاگرام ماژول NEO-6M شامل آنتن، تراشه، رگولاتور ۳.۳ ولت، EEPROM، باتری، LED و رابط UART
اجزای اصلی برد و مسیر سیگنال: آنتن وارد تراشه می‌شود، داده از UART خارج می‌شود و تغذیه توسط رگولاتور تأمین می‌گردد.

LED وضعیت؛ ساده‌ترین ابزار عیب‌یابی

روی برد یک LED کوچک وجود دارد که وضعیت گیرنده را نشان می‌دهد. وقتی ماژول در حال جستجوی ماهواره است، LED خاموش می‌ماند یا با ریتم نامنظم چشمک می‌زند. به محض اینکه موقعیت تثبیت شود، LED با فرکانس حدود یک هرتز (یک چشمک در ثانیه) شروع به چشمک زدن منظم می‌کند. این رفتار ساده، اولین چیزی است که در عیب‌یابی باید بررسی کنید.

دو حالت LED ماژول GPS: خاموش یا نامنظم در حال جستجو و چشمک منظم یک هرتز پس از تثبیت موقعیت
اگر LED منظم چشمک می‌زند اما کد شما داده نشان نمی‌دهد، مشکل تقریباً همیشه در سیم‌کشی یا بادریت است، نه در ماهواره.

رگولاتور ۳.۳ ولت و نکته‌ی سطح ولتاژ

تراشه‌ی NEO-6M حداکثر تا ۳.۶ ولت کار می‌کند، اما برد ماژول یک رگولاتور کم‌افت (معمولاً MIC5205 یا معادل آن) دارد که ورودی ۵ ولت آردوینو را به ۳.۳ ولت پایدار تبدیل می‌کند. بنابراین پایه‌ی VCC را می‌توانید با خیال راحت به ۵ ولت وصل کنید.

اما یک نکته‌ی مهم که در بسیاری از آموزش‌ها نادیده گرفته می‌شود: سطح منطقی پایه‌های داده ۳.۳ ولت است. خروجی TXD ماژول (۳.۳ ولت) توسط آردوینو ۵ ولتی به‌عنوان HIGH خوانده می‌شود و مشکلی ندارد. در جهت مقابل، پایه‌ی RXD ماژول باید حداکثر ۳.۶ ولت ببیند. اتصال مستقیم پایه‌ی D3 آردوینو (۵ ولت) به RXD در کوتاه‌مدت معمولاً کار می‌کند، اما برای پایداری بلندمدت بهتر است از یک مقسم مقاومتی ۱ کیلو‌/۲ کیلو یا مبدل سطح منطقی استفاده کنید.

⚠ هرگز ۵ ولت را به پایه‌های RX/TX تراشه‌ی خام ندهید
این هشدار درباره‌ی تراشه‌ی بدون برد است. اگر ماژول شما روی برد آماده با رگولاتور است، فقط پایه‌ی VCC را به ۵ ولت بزنید و هرگز تغذیه‌ی ۵ ولت را به پایه‌های داده تزریق نکنید. همچنین هرگز دو منبع تغذیه را هم‌زمان به VCC وصل نکنید.

حافظه EEPROM و باتری پشتیبان

روی برد یک EEPROM سریال از نوع HK24C32 با ظرفیت ۴ کیلوبایت قرار دارد که از طریق I2C به تراشه متصل است. کنار آن، یک باتری سکه‌ای قابل شارژ (معمولاً MS621FE) دیده می‌شود. این ترکیب، محتوای حافظه‌ی BBR را نگه می‌دارد: آخرین موقعیت، زمان و تنظیمات مداری. نتیجه‌اش شروع سریع‌تر در دفعات بعدی است.

وقتی تغذیه وصل می‌شود، باتری به‌آرامی شارژ می‌شود و می‌تواند اطلاعات را تا حدود دو هفته نگه دارد. اگر باتری خالی یا معیوب باشد، ماژول هر بار Cold Start می‌کند و زمان گرفتن Fix بیشتر می‌شود. این باتری برای ذخیره‌سازی دائمی داده‌های کاربردی طراحی نشده است؛ اگر می‌خواهید مسیر را ذخیره کنید، از حافظه‌ی SD یا EEPROM آردوینو استفاده کنید.

آنتن و کانکتور U.FL

بسته‌ی ماژول معمولاً شامل یک آنتن پچ سرامیکی ۲۵×۲۵ میلی‌متری با حساسیت ‎-۱۶۱ دسی‌بل است که با کابل به کانکتور U.FL روی برد وصل می‌شود. آنتن باید رو به آسمان باشد؛ سطح سرامیکی معمولاً سمت بالاست و صفحه‌ی فلزی پشت آن، نقش زمین را بازی می‌کند.

کانکتور U.FL بسیار ظریف است و تحمل کشش ندارد. قبل از اتصال، کابل را از یکی از سوراخ‌های کناری برد عبور دهید تا فشار مکانیکی روی کانکتور نیفتد. اگر ماژول را داخل جعبه‌ی فلزی می‌گذارید، حتماً آنتن را بیرون جعبه و با کابل مناسب نصب کنید. برای افزایش حساسیت می‌توانید از آنتن اکتیو ۳ ولت با کانکتور U.FL استفاده کنید؛ ماژول تغذیه‌ی بایاس آنتن را فراهم می‌کند.

نمای ماژول GPS NEO-6M پارس دیجیتال از زاویه دوم
نمای برد و تراشه
نمای ماژول GPS NEO-6M همراه با آنتن و کانکتور U.FL
آنتن پچ و کابل U.FL
جزئیات پین‌های ماژول GPS u-blox NEO-6M
پین‌های تغذیه و UART

🛒 ماژول اصل را با اطمینان تهیه کنید
بردهای ارزان‌قیمت بازار گاهی تراشه‌ی بازسازی‌شده یا آنتن بی‌کیفیت دارند. ماژول NEO-6M-0-001 پارس دیجیتال با ضمانت اصالت و دیتاشیت رسمی عرضه می‌شود.

پین‌اوت و مشخصات فنی

برد ماژول فقط چهار پایه‌ی کاربردی دارد و همین سادگی، کار با آن را برای مبتدی‌ها ایده‌آل می‌کند. با این حال، ترتیب قرار گرفتن پین‌ها در نسخه‌های مختلف برد ممکن است متفاوت باشد؛ همیشه برچسب سفید روی PCB را مبنا بگیرید و به ترتیب ظاهری اعتماد نکنید.

پین‌اوت ماژول NEO-6M شامل VCC، RXD، TXD و GND و محل آنتن، تراشه، باتری و LED
چهار پین اصلی ماژول. نام پایه‌ها روی برد چاپ شده است؛ قبل از سیم‌کشی آن را با ذره‌بین یا دوربین گوشی بخوانید.

راهنمای اتصال پین‌های ماژول به آردوینو UNO

پین ماژولنوعاتصال به آردوینوتوضیح
VCCورودی تغذیه5Vرگولاتور داخلی، ولتاژ را به ۳.۳ ولت تبدیل می‌کند
RXDورودی دادهD3فرمان‌ها از آردوینو به ماژول می‌روند (سطح ۳.۳ ولت)
TXDخروجی دادهD2داده‌ی NMEA از ماژول به آردوینو می‌آید
GNDزمینGNDزمین مشترک الزامی است

🔁 منطق کراس‌شدن TX و RX
در ارتباط سریال، خروجی یک طرف به ورودی طرف دیگر می‌رود. پس TXD ماژول به پین RX آردوینو (در کد ما D2) و RXD ماژول به پین TX آردوینو (D3) وصل می‌شود. اگر این دو را جابه‌جا ببندید، ماژول روشن می‌شود ولی هیچ داده‌ای دریافت نمی‌کنید.

جدول مشخصات کامل

مشخصات فنی تراشه و برد NEO-6M

پارامترمقدار
تراشهu-blox NEO-6M-0-001
کانال‌های دریافت۵۰ کانال موازی
فرکانس کاریGPS L1، ۱۵۷۵.۴۲ مگاهرتز
دقت افقی۲.۵ متر (CEP 50%)
حساسیت‎-۱۶۱ dBm در حالت ردیابی، ‎-۱۴۷ dBm در شروع سرد
نرخ به‌روزرسانی۱ هرتز پیش‌فرض، تا ۵ هرتز
زمان تثبیت اولیهHot حدود ۱ ثانیه، Cold حدود ۲۷ ثانیه
ولتاژ تراشه۲.۷ تا ۳.۶ ولت
ولتاژ برد۳.۳ تا ۵ ولت (به لطف رگولاتور)
جریان مصرفیحدود ۴۵ میلی‌آمپر؛ حدود ۱۱ میلی‌آمپر در PSM
رابط‌هاUART، USB، SPI و DDC (I2C)
پروتکل‌هاNMEA 0183، UBX و RTCM
بادریت پیش‌فرض۹۶۰۰ bps (قابل تنظیم تا ۲۳۰۴۰۰)
آنتنکانکتور U.FL، آنتن پچ اکتیو یا پسیو
ابعاد تراشه۱۶ × ۱۲.۲ × ۲.۴ میلی‌متر (بسته‌بندی LCC)
دمای کاری‎-۴۰ تا ۸۵ درجه سانتی‌گراد

برای مطالعه‌ی دقیق‌تر، فایل دیتاشیت NEO-6M را از صفحه محصول پارس دیجیتال دانلود کنید.

قطعات لازم و سیم‌کشی

برای این آموزش به یک آردوینو UNO (یا Nano)، ماژول NEO-6M، چند سیم جامپر و یک کابل USB نیاز دارید. بردبورد اختیاری است اما کار را مرتب‌تر می‌کند. اگر می‌خواهید اتصال پایه‌ی RXD را استاندارد انجام دهید، دو مقاومت ۱ کیلواهم و ۲ کیلواهم هم کنار بگذارید.

مراحل اتصال

  1. آنتن را وصل کنید کابل U.FL را با احتیاط به کانکتور برد بزنید. قبل از آن، کابل را از سوراخ کناری برد عبور دهید تا فشار روی کانکتور نیفتد.
  2. تغذیه را برقرار کنید پایه VCC ماژول را به 5V آردوینو و GND را به GND وصل کنید. LED برد باید روشن شود.
  3. خط داده‌ی ماژول به آردوینو پایه TXD ماژول را به D2 آردوینو وصل کنید. این خط، داده‌های NMEA را به آردوینو می‌آورد.
  4. خط فرمان آردوینو به ماژول پایه RXD ماژول را به D3 وصل کنید. برای پایداری بلندمدت، مقسم ۱k/۲k را بین D3 و RXD قرار دهید.
  5. اتصال را بررسی کنید GND مشترک را فراموش نکنید؛ بدون زمین مشترک، ارتباط سریال برقرار نمی‌شود. سپس ماژول را در فضای باز و رو به آسمان قرار دهید.
  6. کابل USB را وصل کنید برد را به کامپیوتر بزنید و منتظر شناسایی پورت COM بمانید. اگر برد کلون است، ممکن است به درایور CH340 نیاز داشته باشید.

نقشه سیم‌کشی ماژول GPS NEO-6M به آردوینو UNO: VCC به 5V، GND به GND، TXD به D2 و RXD به D3
اتصال چهار سیمه‌ی ماژول به آردوینو. توجه کنید که TXD ماژول به D2 و RXD ماژول به D3 می‌رود.

⚡ دو اشتباه پرهزینه
اول: وصل کردن TXD و RXD به‌صورت مستقیم به پین‌های ۰ و ۱ آردوینو. این پین‌ها به USB و آپلود کد مربوط‌اند و باعث خطای آپلود می‌شوند؛ به همین دلیل از D2 و D3 استفاده می‌کنیم. دوم: روشن کردن ماژول بدون آنتن برای مدت طولانی؛ هرچند آنتن‌نداشتن معمولاً به تراشه آسیب نمی‌زند، اما دریافت سیگنال تقریباً صفر می‌شود و شما را بی‌دلیل سردرگم می‌کند.

نکته‌ی تغذیه و نویز

ماژول جریان کمی می‌کشد، اما به نویز تغذیه حساس است. اگر از آردوینو با USB کامپیوتر تغذیه می‌کنید، معمولاً مشکلی نیست. در پروژه‌های خودرویی یا صنعتی، از یک رگولاتور ۵ ولت با خازن‌های فیلتر استفاده کنید و سیم تغذیه را از سیم‌های موتور و رله دور نگه دارید. سیم‌های طولانی و بدون شیلد نیز می‌توانند کیفیت سیگنال و ارتباط را کاهش دهند.

نصب کتابخانه TinyGPS++

داده‌های خام GPS متنی و پر از فیلدهای تکراری‌اند. برای اینکه خودتان درگیر تجزیه‌ی رشته‌ها نشوید، از کتابخانه‌ی محبوب TinyGPS++ نوشته‌ی Mikal Hart استفاده می‌کنیم. این کتابخانه داده‌های NMEA را می‌خواند، اعتبار آن‌ها را بررسی می‌کند و مقادیری مثل عرض جغرافیایی، ارتفاع، سرعت و زمان را در اختیار شما می‌گذارد.

روش اول: Library Manager

  1. Arduino IDE را باز کنید نسخه‌ی ۲.x یا جدیدتر پیشنهاد می‌شود.
  2. مدیر کتابخانه را باز کنید از منوی Sketch ← Include Library ← Manage Libraries یا آیکون کتاب در نوار کناری.
  3. جستجو و نصب عبارت TinyGPSPlus را جستجو کنید، گزینه‌ی ساخته‌ی Mikal Hart را انتخاب و Install را بزنید.
  4. از نصب مطمئن شوید در کد، خط #include <TinyGPSPlus.h> باید بدون خطا کامپایل شود.

روش دوم: نصب از فایل ZIP

اگر کامپیوتر شما به اینترنت دسترسی ندارد یا نسخه‌ی خاصی را می‌خواهید، کتابخانه را از مخزن GitHub پروژه دانلود کنید و از مسیر Sketch ← Include Library ← Add .ZIP Library فایل ZIP را انتخاب کنید. بعد از نصب، IDE را یک‌بار ببندید و دوباره باز کنید.

📚 کدام کتابخانه را انتخاب کنیم؟
کتابخانه‌های قدیمی‌تر مثل TinyGPS هنوز کار می‌کنند، اما TinyGPSPlus رابط تمیزتر، پشتیبانی از جمله‌های سفارشی و مدیریت بهتر خطا دارد. برای پروژه‌های جدید همان TinyGPSPlus را انتخاب کنید.

در ادامه دو کد داریم: کد اول فقط داده‌ی خام را نمایش می‌دهد تا مطمئن شویم سخت‌افزار درست کار می‌کند؛ کد دوم با TinyGPS++ مقادیر قابل استفاده تولید می‌کند. توصیه می‌کنیم هر دو را به ترتیب اجرا کنید.

کد ۱: خواندن داده‌ی خام GPS

اولین قدم همیشه این است که ببینیم ماژول اصلاً حرف می‌زند یا نه. در این مرحله آردوینو را به یک پل ساده تبدیل می‌کنیم: هر بایتی که از ماژول می‌رسد را مستقیم به USB و سریال مانیتور می‌فرستیم. هیچ کتابخانه‌ای لازم نیست و فقط پورت سریال نرم‌افزاری کافی است.

raw_nmea.ino

#include <SoftwareSerial.h>

// TXD ماژول به D2 و RXD ماژول به D3 وصل می‌شود
const int GPS_RX_PIN = 2;
const int GPS_TX_PIN = 3;
const long GPS_BAUD  = 9600;   // بادریت پیش‌فرض NEO-6M

SoftwareSerial gpsPort(GPS_RX_PIN, GPS_TX_PIN);

void setup() {
  Serial.begin(9600);          // ارتباط با کامپیوتر
  gpsPort.begin(GPS_BAUD);     // ارتباط با ماژول GPS
  Serial.println(F("NEO-6M raw NMEA bridge ready"));
}

void loop() {
  // هر بایت دریافتی را بدون تغییر به سریال مانیتور بفرست
  while (gpsPort.available() > 0) {
    char c = gpsPort.read();
    Serial.write(c);
  }
}

بادریت هر دو پورت ۹۶۰۰ است. در سریال مانیتور هم ۹۶۰۰ را انتخاب کنید؛ در غیر این صورت کاراکترهای نامفهوم می‌بینید.

اجرای کد و انتظار چه چیزی

  1. کد را آپلود کنید برد و پورت صحیح را انتخاب کنید. اگر پورت COM دیده نمی‌شود، درایور USB برد را نصب کنید.
  2. سریال مانیتور را باز کنید بادریت را روی 9600 بگذارید و ماژول را در فضای باز قرار دهید.
  3. چند ثانیه صبر کنید در ابتدا ممکن است فقط باینری‌های عجیب یا جمله‌های ناقص ببینید. این طبیعی است؛ ماژول در حال پیدا کردن ماهواره است.
  4. به دنبال GGA و RMC بگردید وقتی خطوطی شروع شدند با $GPGGA یا $GPRMC، مسیر درست است.

نمونه خروجی سریال

$GPGGA,081437.00,3541.3520,N,05123.3425,E,1,08,0.92,1187.4,M,-20.5,M,,*45
$GPRMC,081437.00,A,3541.3520,N,05123.3425,E,0.18,84.2,021126,,,A*54
$GPGSA,A,3,12,15,18,24,25,29,31,32,,,,,1.42,0.92,1.08*00
$GPGSV,3,1,11,12,48,073,42,15,31,221,38,18,62,312,45,24,12,155,33*7A

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

🧩 اگر هیچ داده‌ای نیامد
سه چیز را به ترتیب بررسی کنید: (۱) بادریت ۹۶۰۰ باشد، (۲) TXD ماژول واقعاً به D2 رفته باشد و GND مشترک باشد، (۳) LED ماژول روشن باشد. اگر LED خاموش است، مشکل تغذیه است؛ اگر روشن است ولی داده نمی‌آید، مشکل سیم داده یا بادریت است. در بخش عیب‌یابی جدول کامل را آورده‌ایم.

تحلیل جمله‌های NMEA

NMEA 0183 یک استاندارد متنی برای تبادل داده‌های دریایی و موقعیت‌یابی است. هر خط داده که با $ شروع می‌شود، یک جمله (Sentence) نام دارد و فیلدهای آن با کاما از هم جدا شده‌اند. این ساختار ساده، خواندنش را برای انسان و میکروکنترلر آسان می‌کند. ماژول NEO-6M به‌طور پیش‌فرض چند جمله‌ی مختلف را با نرخ یک هرتز ارسال می‌کند.

ساختار جمله GPRMC شامل شناسه، زمان، وضعیت، عرض و طول جغرافیایی، سرعت، جهت، تاریخ و چکسام
هر فیلد جمله‌ی GPRMC چه معنایی دارد. چکسام در انتهای خط، صحت داده را تأیید می‌کند.

جمله‌ی $GPRMC

این جمله مهم‌ترین داده‌های ناوبری را دارد: زمان، تاریخ، موقعیت، سرعت و جهت حرکت. حرف A بعد از زمان یعنی داده معتبر است و V یعنی داده هنوز معتبر نیست (Void). اگر سرعت صفر و جهت خالی باشد، معمولاً یعنی گیرنده ثابت است یا هنوز حرکت واقعی را تشخیص نداده است.

فیلدهای نمونه جمله $GPRMC

نمونهمعنی
$GPRMCشناسه‌ی جمله؛ GP یعنی GPS و RMC یعنی Recommended Minimum Navigation Information
123519زمان UTC به شکل ساعت‌دقیقه‌ثانیه; یعنی ۱۲:۳۵:۱۹
Aوضعیت داده: A معتبر، V بی‌اعتبار
4807.038,Nعرض جغرافیایی ۴۸ درجه و ۰۷.۰۳۸ دقیقه شمالی
01131.000,Eطول جغرافیایی ۱۱ درجه و ۳۱.۰۰۰ دقیقه شرقی
022.4سرعت روی زمین بر حسب گره (هر گره ≈ ۱.۸۵۲ کیلومتر بر ساعت)
084.4جهت حرکت نسبت به شمال، بر حسب درجه
230394تاریخ: ۲۳ مارس ۱۹۹۴
003.1,Wمیل مغناطیسی و جهت آن
*6Aچکسام؛ نتیجه‌ی XOR کاراکترهای بین $ و *

جمله‌ی $GPGGA

GGA داده‌های تثبیت موقعیت سه‌بعدی را می‌دهد: کیفیت Fix، تعداد ماهواره‌ها، مقدار HDOP و ارتفاع. این جمله برای تشخیص «آیا موقعیت قابل اعتماد است؟» بسیار کاربردی‌تر از RMC است.

$GPGGA

$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47

ترتیب فیلدها: زمان، عرض، شمال/جنوب، طول، شرق/غرب، کیفیت Fix، تعداد ماهواره، HDOP، ارتفاع، واحد، جدایی ژئوئید، واحد، سن DGPS، شناسه ایستگاه، چکسام.

مقدار کیفیت Fix در جمله GGA

مقدارمعنی
0بدون Fix؛ داده معتبر نیست
1Fix معمولی GPS
2DGPS؛ دقت بهبودیافته با ایستگاه مرجع
4RTK Fix؛ دقت سانتی‌متری (در NEO-6M معمول نیست)
5RTK Float

عدد HDOP هرچه کوچک‌تر باشد بهتر است: زیر ۱ عالی، بین ۱ تا ۲ خوب و بالای ۲ نشانه‌ی هندسه‌ی ضعیف ماهواره‌ها یا محیط شهری است. تعداد ماهواره‌ی ۸ تا ۱۲ در فضای باز طبیعی است. عدد ارتفاع هم نسبت به سطح دریا است و ممکن است با ارتفاع نقشه‌های محلی چند متر اختلاف داشته باشد.

💡 نرخ ارسال را مدیریت کنید
در حالت پیش‌فرض ۱ هرتز، حجم داده برای سریال نرم‌افزاری آردوینو کاملاً قابل مدیریت است. اگر نرخ را به ۵ هرتز افزایش دهید، حجم جمله‌ها زیاد می‌شود و ممکن است بافر نرم‌افزاری پر شود. در این حالت یا جمله‌های غیرضروری (مثل GSV) را غیرفعال کنید یا از پورت سریال سخت‌افزاری بردهایی مثل Mega و Leonardo استفاده کنید.

کد ۲: دریافت مختصات با TinyGPS++

حالا نوبت کد اصلی است. این برنامه داده‌ها را می‌خواند، اعتبار آن‌ها را بررسی می‌کند و هر یک ثانیه یک گزارش خوانا روی سریال مانیتور چاپ می‌کند. از delay() استفاده نمی‌کنیم تا حلقه‌ی اصلی همیشه در حال خواندن بایت‌های ورودی باشد؛ این نکته در نرخ‌های بالاتر و پروژه‌های واقعی اهمیت زیادی دارد.

gps_neo6m.ino

#include <TinyGPSPlus.h>
#include <SoftwareSerial.h>

const int  GPS_RX_PIN = 2;      // TXD ماژول
const int  GPS_TX_PIN = 3;      // RXD ماژول
const long GPS_BAUD   = 9600;

TinyGPSPlus    gps;
SoftwareSerial gpsPort(GPS_RX_PIN, GPS_TX_PIN);
unsigned long  lastPrint = 0;
bool           warned    = false;

void setup() {
  Serial.begin(115200);         // سریال مانیتور
  gpsPort.begin(GPS_BAUD);      // سریال ماژول
  Serial.println(F("Pars Digital | NEO-6M GPS"));
  Serial.println(F("Waiting for satellites..."));
}

void loop() {
  // هر کاراکتر باید به کتابخانه داده شود
  while (gpsPort.available() > 0) {
    gps.encode(gpsPort.read());
  }

  // هر ۱۰۰۰ میلی‌ثانیه یک گزارش، بدون توقف حلقه
  if (millis() - lastPrint >= 1000) {
    lastPrint = millis();
    printStatus();
  }

  // اگر بعد از ۸ ثانیه هیچ کاراکتری نیامده باشد (فقط یک‌بار هشدار می‌دهیم)
  if (!warned && millis() > 8000 && gps.charsProcessed() < 10) {
    warned = true;
    Serial.println(F("No GPS data: check TXD->D2, GND and baud rate."));
  }
}

void printStatus() {
  Serial.print(F("Fix: "));
  Serial.println(gps.location.isValid() ? F("YES") : F("NO"));

  Serial.print(F("Lat: "));
  if (gps.location.isValid()) Serial.print(gps.location.lat(), 6);
  else                        Serial.print(F("--"));
  Serial.println();

  Serial.print(F("Lng: "));
  if (gps.location.isValid()) Serial.print(gps.location.lng(), 6);
  else                        Serial.print(F("--"));
  Serial.println();

  Serial.print(F("Altitude: "));
  Serial.print(gps.altitude.meters(), 1);
  Serial.println(F(" m"));

  Serial.print(F("Speed: "));
  Serial.print(gps.speed.kmph(), 1);
  Serial.println(F(" km/h"));

  Serial.print(F("Course: "));
  Serial.print(gps.course.deg(), 1);
  Serial.println(F(" deg"));

  Serial.print(F("Satellites: "));
  Serial.println(gps.satellites.value());

  Serial.print(F("HDOP: "));
  Serial.println(gps.hdop.hdop(), 2);

  Serial.print(F("Date: "));
  if (gps.date.isValid()) {
    Serial.print(gps.date.day());
    Serial.print('/');
    Serial.print(gps.date.month());
    Serial.print('/');
    Serial.print(gps.date.year());
  } else {
    Serial.print(F("--/--/----"));
  }
  Serial.println();

  Serial.print(F("Time UTC: "));
  if (gps.time.isValid()) {
    print2(gps.time.hour());   Serial.print(':');
    print2(gps.time.minute()); Serial.print(':');
    print2(gps.time.second());
  } else {
    Serial.print(F("--:--:--"));
  }
  Serial.println();

  Serial.print(F("Data age: "));
  Serial.print(gps.location.age());
  Serial.println(F(" ms"));
  Serial.println(F("------------------------------"));
}

void print2(int value) {
  if (value < 10) Serial.print('0');
  Serial.print(value);
}

اگر برد شما چند پورت سخت‌افزاری دارد (مثل Mega یا Leonardo)، به‌جای SoftwareSerial از Serial1 استفاده کنید و پین‌های ۱۹ و ۱۸ را برای TX/RX در نظر بگیرید.

خروجی نمونه

Serial Monitor · 115200

Pars Digital | NEO-6M GPS
Waiting for satellites...
Fix: NO
Lat: --
Lng: --
Altitude: 0.0 m
Speed: 0.0 km/h
Satellites: 0
HDOP: 0.00
Date: --/--/----
Time UTC: --:--:--
Data age: 4294967295 ms
------------------------------
Fix: YES
Lat: 35.689198
Lng: 51.389042
Altitude: 1210.4 m
Speed: 0.2 km/h
Course: 0.0 deg
Satellites: 8
HDOP: 0.92
Date: 2/11/2026
Time UTC: 08:14:37
Data age: 980 ms
------------------------------

تا قبل از اولین Fix، مقدار age ممکن است عددی بسیار بزرگ باشد؛ این طبیعی است و به معنی معتبر نبودن داده است.

کد چطور کار می‌کند؟

توابع پرکاربرد TinyGPS++

مهم‌ترین مقادیری که از کتابخانه می‌گیرید

کدخروجی
gps.location.lat()عرض جغرافیایی با ۶ رقم اعشار
gps.location.lng()طول جغرافیایی با ۶ رقم اعشار
gps.altitude.meters()ارتفاع از سطح دریا به متر
gps.speed.kmph()سرعت به کیلومتر بر ساعت
gps.course.deg()جهت حرکت نسبت به شمال
gps.satellites.value()تعداد ماهواره‌های درگیر در Fix
gps.hdop.hdop()شاخص کاهش دقت افقی
gps.location.age()مدت زمان گذشته از آخرین به‌روزرسانی (میلی‌ثانیه)
gps.charsProcessed()تعداد کاراکترهای پردازش‌شده؛ برای تشخیص قطعی اتصال
gps.date و gps.timeتاریخ و ساعت UTC به‌صورت فیلدهای جداگانه
TinyGPSCustomاستخراج مستقیم یک فیلد از هر جمله‌ی دلخواه NMEA

🕒 تبدیل زمان UTC به وقت محلی
ماژول همیشه زمان UTC می‌دهد. برای نمایش ساعت تهران، سه ساعت و نیم به آن اضافه کنید (UTC+3:30). اگر پروژه‌تان ساعت محلی و تغییرات daylight saving ندارد، همین جمع ساده کافی است؛ برای پروژه‌های دقیق‌تر، زمان را از ماژول بگیرید و با منطقه‌ی زمانی محلی مدیریت کنید.

تنظیمات پیشرفته با u-center

وقتی مطمئن شدید ماژول درست کار می‌کند، می‌توانید با نرم‌افزار رایگان u-center از شرکت u-blox تنظیمات عمیق‌تر را تغییر دهید: بادریت، نرخ به‌روزرسانی، فعال یا غیرفعال کردن جمله‌های NMEA و مشاهده‌ی گرافیکی ماهواره‌ها. این نرم‌افزار فقط برای ویندوز ارائه شده است و از سایت رسمی u-blox قابل دانلود است.

اتصال ماژول به کامپیوتر

برای این کار به یک مبدل USB به TTL (مثل CH340، CP2102 یا PL2303) نیاز دارید. ماژول را مستقیم به USB کامپیوتر نزنید؛ پایه‌های آن USB نیستند (البته تراشه USB دارد، اما روی این برد معمولاً به کانکتور دسترسی ندارید). سیم‌کشی مبدل به ماژول به این شکل است:

اتصال ماژول به مبدل USB-TTL برای u-center

مبدل USB-TTLماژول NEO-6Mنکته
TXRXDداده از کامپیوتر به ماژول
RXTXDداده از ماژول به کامپیوتر
GNDGNDزمین مشترک الزامی
5V یا 3.3VVCCاگر مبدل خروجی ۵ ولت دارد، به VCC برد بدهید

🔌 قبل از باز کردن پورت، اتصال را چک کنید
اگر TX و RX را جابه‌جا ببندید، نرم‌افزار پورت را باز می‌کند اما هیچ داده‌ای نمی‌بیند. اگر مبدل شما فقط ۳.۳ ولت می‌دهد، ماژول کار می‌کند اما آنتن اکتیو ممکن است تغذیه‌ی کافی نداشته باشد. در نهایت، هرگز هم‌زمان آردوینو و مبدل USB-TTL را به پین‌های داده ماژول وصل نکنید.

کار با نرم‌افزار

  1. پورت را انتخاب کنید در نوار ابزار Communication، فلش کنار آیکون را بزنید و پورت COM مبدل را انتخاب کنید. بادریت پیش‌فرض ۹۶۰۰ است.
  2. داده را ببینید در پنجره‌ی Text Console جمله‌های NMEA به‌صورت خام نمایش داده می‌شوند. اگر کاراکترهای عجیب دیدید، بادریت را تغییر دهید.
  3. ماهواره‌ها را ببینید در بخش Satellite View، آسمان و موقعیت ماهواره‌ها با رنگ و شماره نمایش داده می‌شود. سبز بودن میله‌ها یعنی سیگنال دریافت شده است.
  4. موقعیت را روی نقشه ببینید بعد از Fix، نمای Map موقعیت را روی نقشه‌ی آنلاین یا نقشه‌ی کالیبره‌شده نشان می‌دهد.
  5. تنظیمات را تغییر دهید از منوی View به Configuration بروید؛ می‌توانید نرخ به‌روزرسانی را به ۵ هرتز، بادریت را به ۱۱۵۲۰۰ و جمله‌های غیرضروری را غیرفعال کنید.
  6. ذخیره کنید تغییرات را در حافظه‌ی ماژول ذخیره کنید تا بعد از قطع تغذیه باقی بمانند. سپس بادریت کد آردوینو را با بادریت جدید هماهنگ کنید.

🧠 تغییر بادریت را فراموش نکنید
اگر در u-center بادریت را به ۱۱۵۲۰۰ تغییر دهید و ذخیره کنید، کد آردوینو با ۹۶۰۰ دیگر داده نمی‌خواند. همیشه بعد از تغییر تنظیمات، مقدار GPS_BAUD را در کد به‌روز کنید یا با u-center به حالت قبلی برگردید.

عیب‌یابی و گرفتن Fix

بیشتر مشکلات GPS در همان دقیقه‌ی اول خودشان را نشان می‌دهند و تقریباً همیشه یکی از این سه دسته‌اند: تغذیه، سیم‌کشی داده یا محل نصب. جدول زیر بر اساس تجربه‌ی پشتیبانی پارس دیجیتال تنظیم شده است.

عیب‌یابی سریع مشکلات رایج NEO-6M

نشانهعلت احتمالیراه‌حل
LED ماژول اصلاً روشن نمی‌شودتغذیه قطع است یا GND وصل نیستVCC را به 5V و GND را به GND بزنید؛ با مولتی‌متر ولتاژ ۳.۳ ولت روی برد را چک کنید
LED روشن است اما هیچ داده‌ای نمی‌آیدTXD و RXD جابه‌جا شده یا بادریت اشتباه استTXD ماژول را به D2 و RXD را به D3 وصل کنید؛ بادریت را ۹۶۰۰ بگذارید
کاراکترهای نامفهوم روی سریالعدم تطابق بادریت سریال مانیتور و کدهر دو را روی یک عدد (معمولاً ۹۶۰۰) تنظیم کنید
مقدار Location: Not Available برای مدت طولانیعدم دید آسمان یا Cold Startماژول را در فضای باز و رو به آسمان بگذارید و ۱ تا ۳ دقیقه صبر کنید
Fix می‌شود اما مختصات می‌پردHDOP بالا، محیط شهری یا آنتن ضعیفآنتن را بالاتر ببرید؛ داده‌های با HDOP بالای ۲ را فیلتر کنید
تاریخ ۲۰۰۰ و ساعت ۰۰:۰۰هنوز Fix نشده استزمان و تاریخ فقط بعد از دریافت اولین Fix معتبر می‌شوند
کد آپلود نمی‌شوداستفاده از پین‌های ۰ و ۱ یا اشغال پورتاز D2 و D3 استفاده کنید؛ هنگام آپلود ماژول را از پین‌های داده جدا کنید
بعد از چند دقیقه ارتباط قطع می‌شودافت ولتاژ USB یا سیم‌های بلندتغذیه‌ی پایدار ۵ ولت با خازن و سیم کوتاه استفاده کنید
LED چشمک منظم دارد ولی کد داده نداردمشکل فقط در مسیر داده استسیم TXD، پین D2 و GND مشترک را دوباره بررسی کنید

مقایسه سه محل نصب ماژول GPS: فضای باز و رو به آسمان، داخل ساختمان و زیر بدنه فلزی
محل نصب، بیشتر از هر تنظیمی روی کیفیت دریافت اثر دارد. آنتن باید دید مستقیم به آسمان داشته باشد.

چک‌لیست هفت‌قدمی برای گرفتن Fix

  1. آنتن را چک کنید کابل U.FL کامل جا افتاده باشد و آنتن رو به بالا باشد.
  2. ماژول را بیرون ببرید پشت شیشه یا داخل اتاق، شانس Fix را به‌شدت کم می‌کند.
  3. تغذیه‌ی پایدار بدهید از پورت USB ضعیف یا پاوربانک کم‌جریان استفاده نکنید.
  4. یک تا سه دقیقه صبر کنید مخصوصاً اگر ماژول مدت‌ها خاموش بوده است.
  5. خروجی خام را ببینید با کد اول مطمئن شوید جمله‌های NMEA می‌آیند.
  6. HDOP را بررسی کنید اگر بالای ۲ است، موقعیت را برای پروژه‌های حساس قبول نکنید.
  7. تنظیمات را تغییر ندهید تا وقتی همه‌چیز با تنظیمات پیش‌فرض کار کند؛ بعد سراغ u-center بروید.

🚫 اگر ماژول روی خودرو نصب می‌کنید
بدنه‌ی فلزی خودرو سیگنال را مسدود می‌کند. آنتن را زیر شیشه‌ی جلو (نه زیر آهن)، روی داشبورد یا روی سقف نصب کنید و کابل را از مسیرهای پرنویز مثل سیم‌های جرقه و موتور دور نگه دارید. تغذیه را نیز از یک مبدل ۱۲ به ۵ ولت با فیوز بگیرید.

پروژه‌های پیشنهادی با NEO-6M

بعد از اینکه مختصات را روی سریال دیدید، بهترین راه تثبیت یادگیری، ساختن یک پروژه‌ی کوچک است. این پنج ایده از ساده به پیشرفته مرتب شده‌اند:

۱. دیتالاگر مسیر با کارت SD

هر ۵ ثانیه مختصات، سرعت و زمان را در فایل CSV روی کارت SD ذخیره کنید. بعداً می‌توانید مسیر را در Google Earth یا QGIS رسم کنید. فقط به ماژول SD، یک رگولاتور ۳.۳ ولت و دقت در سطح ولتاژ پین‌ها نیاز دارید.

۲. سرعت‌سنج و کورس‌متر

با gps.speed.kmph() و gps.course.deg() یک سرعت‌سنج ساده بسازید و روی نمایشگر OLED نشان دهید. برای پروژه‌های دوچرخه و ربات عالی است. مقاله‌ی راه‌اندازی نمایشگر OLED کمکتان می‌کند.

۳. ساعت دقیق GPS

ماژول زمان UTC دقیق را از ماهواره می‌گیرد و نیازی به RTC ندارد. با یک نمایشگر و چند خط کد، ساعتی بسازید که حتی بعد از قطع برق هم دقیق است. فقط توجه کنید که بدون Fix، زمان معتبر نیست.

۴. ردیاب خودرو یا موتور با GSM

مختصات را با ماژول GSM مثل SIM800L یا ماژول‌های 4G به سرور بفرستید. این پروژه به مدیریت تغذیه، سیم‌کارت داده و یک سرویس دریافت داده نیاز دارد. برای نسخه‌ی حرفه‌ای، به‌جای ارسال مداوم، از حالت‌های خواب و ارسال دوره‌ای استفاده کنید.

۵. ژئوفنس و هشدار خروج از محدوده

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

🧰 برای پروژه‌های جدی‌تر
اگر پروژه‌ی شما به دقت بالاتر، چند سیستم ماهواره‌ای (GPS+GLONASS) یا نرخ ۱۰ هرتز نیاز دارد، NEO-6M ممکن است کافی نباشد. در بخش بعدی مقایسه‌ی کوتاهی آورده‌ایم. برای انتخاب قطعه‌ی مناسب پروژه، می‌توانید از مشاوره‌ی فروشگاه تکنولوژی پارس دیجیتال هم استفاده کنید.

مقایسه و انتخاب ماژول

NEO-6M در سال‌های اخیر جای خود را به نسل‌های جدیدتر داده است، اما هنوز برای یادگیری، پروژه‌های دانشگاهی و ردیابی عمومی انتخاب اقتصادی و منطقی است. جدول زیر به شما کمک می‌کند بفهمید چه زمانی باید سراغ گزینه‌ی دیگری بروید.

مقایسه‌ی کلی NEO-6M با چند گزینه‌ی رایج

ویژگیu-blox NEO-6Mu-blox NEO-M8Nماژول‌های چندسیستمه‌ی اقتصادی
سیستم‌های ماهواره‌ایGPSGPS، GLONASS، Galileo، BeiDouمعمولاً GPS + BeiDou
تعداد کانال۵۰۷۲حدود ۳۲
حداکثر نرخ به‌روزرسانی۵ هرتز۱۰ هرتز۱ تا ۱۰ هرتز (وابسته به مدل)
دقت افقی معمول۲.۵ مترحدود ۲.۵ مترحدود ۲.۵ متر
قیمتاقتصادیبالاتراقتصادی
مناسب برایآموزش، پروژه‌ی دانشگاهی، ردیاب سادهپروژه‌های حرفه‌ای، چندسیستمه، دقت بالاترپروژه‌های ارزان با نیاز به چند سیستم

جمع‌بندی انتخاب: اگر اولین پروژه‌ی GPS شماست یا می‌خواهید مفهوم NMEA و سیم‌کشی سریال را یاد بگیرید، NEO-6M انتخاب درستی است. اگر قرار است محصول نهایی بسازید و به دریافت پایدار در محیط شهری، چند سیستم ماهواره‌ای و نرخ بالاتر نیاز دارید، سراغ NEO-M8N یا ماژول‌های چندسیستمه بروید.

📌 یک نکته‌ی مهم درباره‌ی «دقت»
عدد ۲.۵ متر یک مقدار معمول در شرایط ایده‌آل است. در خیابان‌های پر ساختمان، زیر درخت و داخل خودرو، خطا می‌تواند چند برابر شود. هیچ ماژول GPS ارزانی دقت سانتی‌متری ندارد؛ برای آن به RTK و اصلاحات خاص نیاز است.

پرسش‌های متداول

آیا ماژول GPS به اینترنت یا سیم‌کارت نیاز دارد؟

نه. گیرنده‌ی GPS کاملاً مستقل است و سیگنال را مستقیم از ماهواره‌ها می‌گیرد. اینترنت یا سیم‌کارت فقط وقتی لازم می‌شود که بخواهید موقعیت را به سرور بفرستید؛ مثلاً در یک ردیاب GSM.

چرا داخل خانه یا کنار پنجره موقعیت تثبیت نمی‌شود؟

سیگنال GPS بسیار ضعیف است و دیوار، سقف و شیشه‌ی رنگ‌شده آن را به‌شدت کم می‌کنند. برای دریافت پایدار باید آنتن دید مستقیم به آسمان داشته باشد. کنار پنجره ممکن است گاهی چند ماهواره ببیند، اما زمان Fix طولانی و دقت پایین خواهد بود.

دقت واقعی NEO-6M چقدر است؟

دقت افقی معمول آن حدود ۲.۵ متر در فضای باز است. در محیط شهری با ساختمان‌های بلند، خطا می‌تواند به ۵ تا ۱۰ متر یا بیشتر برسد. برای پروژه‌های آموزشی و ردیابی عمومی این دقت کافی است، اما برای نقشه‌برداری دقیق مناسب نیست.

آیا می‌توانم آنتن دیگری به ماژول وصل کنم؟

بله. هر آنتن GPS اکتیو ۳ ولت با کانکتور U.FL یا آنتن پسیو سازگار قابل استفاده است. برای مسیرهای طولانی یا نصب روی سقف خودرو، آنتن اکتیو با کابل بلندتر گزینه‌ی بهتری است. کانکتور U.FL را با احتیاط جابه‌جا کنید.

حداقل چند ماهواره برای موقعیت‌یابی لازم است؟

برای موقعیت سه‌بعدی حداقل چهار ماهواره لازم است. در عمل گیرنده برای پایداری و کاهش خطا با ۶ تا ۱۰ ماهواره کار می‌کند. اگر تعداد ماهواره‌ها کم و HDOP بالا باشد، مختصات ممکن است بپرد.

تفاوت NEO-6M با NEO-M8N چیست؟

NEO-M8N نسل جدیدتر است و از چند سیستم ماهواره‌ای (GPS، GLONASS، Galileo و BeiDou)، کانال بیشتر و نرخ بالاتر پشتیبانی می‌کند. NEO-6M ساده‌تر و ارزان‌تر است و برای یادگیری و پروژه‌های عمومی انتخاب اقتصادی محسوب می‌شود.

چرا تاریخ ۲۰۰۰ و ساعت ۰۰:۰۰ نمایش داده می‌شود؟

تا زمانی که گیرنده به Fix نرسیده باشد، داده‌ی تاریخ و ساعت معتبر نیست. TinyGPS++ در این حالت مقدار پیش‌فرض نشان می‌دهد. بعد از دریافت اولین Fix و چند ثانیه صبر، زمان UTC درست نمایش داده می‌شود.

آیا برای ردیاب خودرو مناسب است؟

بله، به شرطی که آنتن در محل مناسبی نصب شود و تغذیه‌ی پایدار داشته باشید. NEO-6M به‌تنهایی فقط موقعیت می‌دهد؛ برای ارسال داده به سرور به ماژول GSM/4G، سیم‌کارت داده و مدیریت توان نیاز دارید. برای محصول تجاری، ماژول‌های چندسیستمه و طراحی صنعتی را جدی بگیرید.

جمع‌بندی و خرید

در این آموزش از مفهوم سه‌گانه‌سازی شروع کردیم، سخت‌افزار ماژول NEO-6M را شناختیم، چهار سیم را درست وصل کردیم و در دو مرحله به داده‌ی خام NMEA و سپس مختصات قابل استفاده رسیدیم. اگر مراحل را دنبال کرده باشید، حالا یک گیرنده‌ی GPS کارآمد دارید که می‌تواند پایه‌ی پروژه‌های بزرگ‌تر باشد.

سه نکته را همیشه به خاطر بسپارید: آنتن باید آسمان را ببیند، GND مشترک فراموش نشود و بادریت دو طرف ارتباط یکی باشد. تقریباً همه‌ی مشکلاتی که کاربران گزارش می‌کنند به همین سه موضوع برمی‌گردد.

ماژول GPS NEO-6M را از پارس دیجیتال تهیه کنیدماژول u-blox NEO-6M-0-001 با ضمانت اصالت، دیتاشیت رسمی و پشتیبانی فنی، آماده‌ی ارسال به سراسر کشور است. اگر در انتخاب قطعه یا راه‌اندازی پروژه شک دارید، قبل از خرید از ما بپرسید.🛒 خرید و مشاهده مشخصات فروشگاه تکنولوژی مقالات آموزشی بیشتر

اگر این مقاله برایتان مفید بود، آن را برای دوستانتان بفرستید یا در شبکه‌های اجتماعی به اشتراک بگذارید. سوال فنی دارید؟ در بخش نظرات همین مقاله یا از طریق صفحه‌ی تماس پارس دیجیتال بپرسید تا تیم فنی پاسخ دهد.

تیم فنی پارس دیجیتال
تأمین قطعات الکترونیک، طراحی و پشتیبانی پروژه‌های IoT، ردیابی و سخت‌افزار. این مقاله بخشی از مجموعه‌ی آموزش‌های ماژول در وبلاگ فنی پارس دیجیتال است.
مشاهده‌ی همه‌ی مقالات ←

مقالات مرتبط

آموزش راه‌اندازی نمایشگر OLED با آردوینو
راه‌اندازی نمایشگر OLED با آردوینو

راه‌اندازی بردهای ESP8266 و ESP32 با آردوینو
راه‌اندازی ESP8266 و ESP32 با آردوینو

راه‌اندازی سروو موتور با آردوینو
راه‌اندازی سروو موتور با آردوینو

پارس دیجیتال
دستیار پارس دیجیتال
آنلاین • پاسخگوی فوری