سلام به همه مایکروالکامی ها. در قسمت اول این سرس آموزش به معرفی و بررسی ماژول GPS مدل NEO6M پرداخته شد. در این قسمت از سری آموزش راه اندازی ماژول NEO-6M به بررسی کد های خروجی و نحوه استفاده از آن پرداخته خواهد شد. پس با من تا انتهای مطلب همراه باشید. همچنین شما میتوانید سایر مطلب من رو از این قسمت مطالعه کنید. همچنین قسمت بعدی این آموزش از این لینک قابل دسترس است.
وسایل مورد نیاز
کد های خروجی ماژول NEO6M
همانطور که در قسمت قبلی بررسی شد، کد های خروجی این ماژول یکسری دیتا بنام پکت های NMEA میباشد. برای استفاده از آنها نیاز به دانستن اطلاعات هر کدام از آنها میباشد. در مطالب قبلی کد های NMEA معرفی گردیده است که حتما آن را مطالعه کنید. خروجی تمام ماژول های GPS همین کد های NMEA میباشد که هر کدام از آنها اطلاعاتی مانند ساعت، تاریخ، سرعت، ارتفاع سطح دریا، طول و عرض جغرافیایی و… را در اختیار کاربر قرار میدهد. در موقعی که ماژول NEO-6M در حالت Cold Start راه اندازی شود خروجی ماژول به شکل زیر است.
در صورتی که ماژول راه اندازی کامل شود و بدرستی به ماهواره ها کانکت شود، وضعیت خروجی ماژول معتبر خواهد بود. تصویر زیر نمونهای از خروجی ماژول در حالت نهایی و پایدار میباشد.
بررسی کد های NMEA ماژول NEO6M
کد های NMEA با $ شروع شده و هر بخش با کاما از یکدیگر جدا میشود. هر کد NMEA با عبارت ابتدای آن و قبل از کاما اول شناخته خواهدشد. بعنوان مثال GPGGA$ که این پکت معرف اطلاعات اساسی و پایه ماژول GPS بوده که دقت و موقعیت را مشخص خواهد کرد. GP بیانگر GPS و GL بیانگر GLONASS است. برای دانلود داکیومنت NMEA از این لینک اقدام کنید.
GPRMC$
این پکت در واقع حداقل دیتای توصیه شده و مورد نیاز در خروجی ماژول برای عمل موقعیت یابی میباشد. در واقع RMC مخفف Recommended Minimum data for GPS میباشد. به مثال زیر توجه نمایید.
$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A
ردیف | مشخصات |
0 | ID پیام (GPRMC$) |
1 | ساعت (UTC) |
2 | وضعیت | A=active یا V=void |
3 | عرض جغرافیایی |
4 | N (شمال) یا S (جنوب) |
5 | طول جغرافیایی |
6 | E (شرق) یا W (غرب) |
7 | سرعت حرکت برروی زمین برحسب knots |
8 | زاویه ردیابی برحسب درجه |
9 | تاریخ بصورت ddmmyy |
10 | تغییرات مغناطیسی برحسب درجه |
11 | E یا W |
12 | کد checksum که همیشه با *شروع میشود |
GPVTG$
این پکت معرف Vector track an Speed over the Ground و به معنی اطلاعات سرعت برروی زمین است. به مثال زیر توجه کنید.
$GPVTG,,T,,M,0.00,N,0.00,K*4E
ردیف | مشخصات |
0 | ID پیام (GPVTG$) |
1 | زاویه مسیر |
2 | T = True |
3 | زاویه مسیر |
4 | M = Magnetic |
5 | سرعت برحسب Knots |
6 | N = Knots |
7 | سرعت برحسب Km بر ساعت |
8 | K = Kilometres Per Hour |
9 | Checksum |
GPGGA$
این پکت حاوی اطلاعات ثابت موقعیت یابی محلی شامل زمان، طول و عرض جغرافیایی، اطلاعات ثابت مربوط به گیرنده GPS و … میباشد. به مثال زیر توجه نمایید.
$GPGGA,172814.0,3723.46587704,N,12202.26957864,W,2,6,1.2,18.893,M,-25.669,M,2.0,0031*4F
ردیف | مشخصات |
0 | ID پیام (GPGGA$) |
1 | ساعت (UTC) |
2 | عرض جغرافیایی |
3 | N (شمال) یا S (جنوب) |
4 | طول جغرافیایی |
5 | E (شرق) یا W (غرب) |
6 | شاخص کیفیت GPS
Fixed not available :0 GPS Fix :1 Differential GPS fix :2 |
7 | تعداد ماهواره ها، 00 – 12 |
8 | دقت افقی |
9 | ارتفاع آنتن در بالا/زیر سطح متوسط دریا (geoid) |
10 | واحد ارتفاع آنتن برحسب متر |
11 | جهت توضیحات به داکیومنت NMEA مراجعه شود |
12 | واحد پارامتر ردیف قبلی برحسب متر |
13 | جهت توضیحات به داکیومنت NMEA مراجعه شود |
14 | Differential reference station ID, 0000-1023 |
15 | Differential reference station ID, 0000-1023 |
GPGSA$
این پاکت بیانگر اطلاعات کلی ماهواره یا Overall Satellite data میباشد. با مثال زیر توجه کنید.
$GPGSA,<1>,<2>,<3>,<3>,,,,,<3>,<3>,<3>,<4>,<5>,<6>*<7><CR><LF>
ردیف | مشخصات |
0 | ID پیام (GPGSA$) |
1 | Mode 1, M = manual, A = automatic |
2 | Mode 2, Fix type, 1 = not available, 2 = 2D, 3 = 3D |
3 | PRN number, 01 through 32 for GPS, 33 through 64 for SBAS, 64+ for GLONASS |
4 | PDOP: 0.5 through 99.9 |
5 | HDOP: 0.5 through 99.9 |
6 | VDOP: 0.5 through 99.9 |
7 | سرعت برحسب Km بر ساعت |
8 | Checksum |
GPGSV$
این پکت شامل اطلاعات جزئی ماهواره های GPS مانند ارتفاع هر ماهواره ای که ردیابی می شود است. (پکت GNGSV$ برای گیرنده های GNSS میباشد.) به مثال زیر توجه کنید.
$GPGSV,4,1,13,02,02,213,,03,-3,000,,11,00,121,,14,13,172,05*67
ردیف | مشخصات |
0 | ID پیام (GPGSV$) |
1 | تعداد کل پیام ها |
2 | شماره پیام |
3 | ماهواره های در دسترس |
4 | شماره ماهواره |
5 | ارتفاع برحسب درجه (حداکثر 90 درجه) |
6 | آزیموت، درجه از شمال واقعی، 000 تا 359 درجه |
7 | SNR برحسب dB، بین 00 تا 99 (null در حالت غیر مسیر یابی) |
8-11 | Information about second SV, same format as fields 4 through 7 |
12-15 | Information about third SV, same format as fields 4 through 7 |
16-19 | Information about fourth SV, same format as fields 4 through 7 |
20 | Checksum |
GPGLL$
این پکت شامل طول و عرض جغرافیایی میباشد. به مثال زیر توجه کنید.
$GPGLL,5107.0013414,N,11402.3279144,W,205412.00,A,A*73
ردیف | مشخصات |
0 | ID پیام (GPGLL$) |
1 | عرض جغرافیایی |
2 | N (شمال) یا S (جنوب) |
3 | طول جغرافیایی |
4 | E (شرق) یا W (غرب) |
5 | زمان (UTC) |
6 | وضعیت (A: Data Valid و V: Data Invalid) |
7 | Checksum |
معرفی ابزار آنلاین برای دیکد کردن کد های NMEA
برای دیکد کردن های NMEA بصورت آنلاین میتوانید از این سایت اقدام نمایید. همچنین برای دیکد کردن پکت های GPRMC و GPGGA نیز میتوانید از این سایت استفاده کنید.
نتیجه گیری
در این مطلب به تحلیل و بررسی کد های خروجی ماژول GPS مدل NEO6M پرداخته شد. با دانستن اینکه هر پکت NMEA بیانگر چه اطلاعاتی میباشد میتوانیم اطلاعات مورد نیاز و مهم در امر موقعیت یابی و مسیر یابی را استخراج کنیم. در قسمت بعدی با استفاده از این کد ها، موقعیت را پیدا خواهیم کرد.
امیدوارم از این آموزش کمال بهره را برده باشید. در صورتی که هرگونه نظر یا سوال داشتید درباره این آموزش لطفا اون رو در انتهای همین صفحه در قسمت دیدگاه ها قرار بدید. در کوتاه ترین زمان ممکن به اون ها پاسخ خواهم داد. اگر این مطلب براتون مفید بود، اون رو حتما به اشتراک بگذارید. همینطور میتونید این آموزش را پس از اجرای عملی توی اینستاگرام با هشتگ microelecom# به اشتراک بگذارید و پیج مایکروالکام (microelecom@) رو هم منشن کنید.