مکان یاب GPS

راه اندازی و کار با ماژول GPS مدل NEO6M: قسمت پنجم پکت GPGGA

gps-neo6m-tutorial-step-five-gpgga-digispark
نوشته شده توسط معین صابری

در سلسله آموزش های ماژول NEO6M، قسمت پنجم به دیگر پکت مهم و کلیدی این ماژول، GPGGA می پردازیم. در قسمت های قبلی به پکت های NMEA و توضیحات آن پرداختیم. در قسمت های پیشین به فرمت داده های GPRMC و GPGSV و فیلدهای اطلاعاتی آن را از نظر گذراندیم. در این قسمت از این سلسله آموزش، پکت GPGGA را بررسی می کنیم. این پکت حاوی فیلدهای اطلاعاتی حیاتی و کاربردی بوده که در این قسمت از سلسله آموزش به آن می پردازیم. مطابق آموزش های پیشین، ابتدا فیلدهای این پکت را تشریح کرده و سپس با ارائه یک مثال برنامه نویسی، نحوه استخراج پکت GPGGA را مورد بررسی قرار خواهیم داد. بنابراین در ادامه این آموزش، با مرجع تخصصی ماژول GPS به زبان فارسی، دیجی اسپارک همراه باشید.

 


پکت GPGGA و فیلدهای اطلاعاتی


یکی از پکت های بسیار مهم، پکت GPGGA است. این پکت داده های مشترک زیادی با پکت GPRMC داشته، اما به کمک این پکت می توانیم ارتفاع خود را از سطح دریا، بدست آوریم. به عنوان یک نمونه، پکت GPGGA به شکل زیر دریافت می گردد.

در ادامه به فیلدهای این پکت می پردازیم.

توضیح مقدار فیلد
هدر و یا پیشوند داده ها $GPGGA
این فیلد زمان(UTC) را به فرمت زیر نمایش می دهد.

hhmmss.sss

در عبارت فوق h به معنای ساعت، m به معنای دقیقه و s به معنای ثانیه است. در این قسمت ساعت ۹ و ۲۷ دقیقه و ۲۵ ثانیه است.

 

۰۰٫۹۲۷۲۵۰
این فیلد عرض جغرافیایی را بر حسب دقیقه و درجه به شکل زیر نمایش می دهد.

ddmm.mmmm

در عبارت فوق d به معنای درجه و m به معنای دقیقه است. در اینجا ۴۷ درجه و عبارات پس از آن دقیقه است.

۴۷۱۷٫۱۱۳۹۹
این فیلد جهت در عرض جغرافیایی را نمایش می دهد. عبارت N شمال و S بیانگر جنوب است. N
این فیلد طول جغرافیایی را بر حسب درجه و دقیقه نمایش می دهد. طول جغرافیایی در این فیلد به فرمت زیر است.

dddmm.mmmm

در اینجا ۰۰۸ درجه و پس از آن دقیقه است.

۰۰۸۳۳٫۹۱۵۹۰
این فیلد جهت در طول جغرافیایی را نمایش می دهد. عبارت E شرق و W غرب است. E
این فیلد وضعیت فیکس به ماهواره را نمایش می دهد. مقادیر معتبر به همراه توضحیات عبارتند از:

۰: به ماهواره فیکس نشده

۱: به ماهواره متصل شده و در مد استاندارد مشغول به کار است.

۲: به ماهواره متصل شده، مشغول تصحیح خطا و در مد استاندارد(SPS) مشغول به کار است.

۶:در این مد ماژول در تلاش برای تصحیح خطا در محیط هایی با پوشش ضعیف نظیر تونل ها و مکان های مسقف مثل پارکینگ هاست.

۱
این عدد تعداد ماهواره های استفاده شده را نمایش می دهد. در اینجا ۸ ماهواره استفاده شده است. ۸
این عدد مقدار تعدیل دقت را به صورت افقی نمایش می دهد. ۰۱۱٫
این متغیر ارتفاع از سطح دریا را بر حسب متر نمایش می دهد. ۶٫۴۹۹
این عبارت بیان می کند که ارتفاع اندازه گیری شده بر حسب متر است. M
این پارامتر ارتفاع را از سطحی بیضوی اندازه می گیرد.  برای اطلاعات بیشتر روی این لینک کلیک کنید. ۰٫۴۸
این عبارت بیان می کند که ارتفاع از سطح بیضوی اندازه گیری شده بر حسب متر است. M
عدد مربوط به شناسه(ID) ایستگاه GPS ۰
فیلد مربوط به CHECK SUM خطا *۵B

 

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

 


فیلتر کردن پکت های NMEA


همانطور که پیشتر مشاهده نمودید، ماژول GPS پکت ها را به صورت دائم در سریال قرار می دهد. زمانیکه بخواهید با میکروکنترلرها داده ها را بخوانید، از آنجاییکه ماژول GPS تمام پکت ها را با هم فرستاده و این مورد می تواند سبب پر شدن بافر سریال شود، بنابراین باید داده هایی که به آن ها احتیاج نیست فیلتر شوند. دستورات زیر سبب فیلتر شدن بافر از سایر داده ها شده و تنها داده های مربوط به GPGGA ارسال می شوند.

 

جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.

 

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

 


نمونه برنامه خواندن پکت GPGGA


در این قسمت به بررسی یک نمونه برنامه می پردازیم. در این برنامه داده های NMEA به جز GPGGA را فیلتر می کنیم. سپس با خواندن سریال مانیتور، GPGGA را دریافت کرده و نمایش می دهیم.

 

جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.

 

در کد فوق به کمک کتابخانه سریال نرم افزاری، از طریق پایه های ۸ و ۹ با ماژول GPS ارتباط برقرار می سازیم. سپس دستورات مربوط به غیر فعال سازی داده هایی غیر از GPGGA را ارسال می کنیم. در نهایت با دریافت GPGGA، آن را در سریال مانیتور نمایش می دهیم.

 


لوازم مورد نیاز


ماژول GPS مدل NEO6M

انواع برد آردوینو

انواع برد ESP

میکروکنترلر ARM

میکروکنترلر AVR

 


جمع بندی


در سلسله آموزش های ماژول GPS قسمت چهارم به معرفی پکت GPGGA پرداختیم. پکت GPGGA یکی از پکت های بسیار مهم و کاربردی در استاندارد NMEA به شمار می رود. در این قسمت از سلسله آموزش، ضمن توضیح، تشریح و معرفی کاربردهای این پکت کلیدی، فیلدهای اطلاعاتی آن را که حاوی اطلاعات مهم و ارزشمند از دقت و وضعیت فیکس و سایر اطلاعات در رابطه با ماهواره هاست، بررسی نمودیم. همچنین در ادامه، به طراحی یک برنامه تحت آردوینو جهت دریافت و مشاهده این پکت بر روی سریال مانیتور پرداختیم. با مطالعه این کدها و الگو برداری از آن، شما می تواند در پلتفرم های مختلف نظیر ARM و AVR نیز ارتباط با GPS را فراهم کرده و داده های آن را بخوانید.

 

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

 

درباره نویسنده

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه