در سلسله آموزش های ماژول GPS مدل NEO6M، به دیگر پکت مهم و کاربردی، GPGSA می پردازیم. در آموزش های قبلی پکت های کاربردی که اطلاعات جغرافیایی را در اختیار ما قرار میدهند، مورد بررسی قرار گرفتند. در این آموزش به کمک پکت GSA میزان دقت (تعدیل دقت) جغرافیایی را محاسبه می کنیم. مبحث تعدیل دقت یا DOP که مخفف عبارت Dilution Of Precision است، مبحثی مهم بوده که مربوط به کاهش دقت GPS می شود. از آنجاییکه بحث هندسه ماهواره ها و نحوه قرارگیری آن ها در کنار هم بر تعدیل دقت تاثیر می گذارد، لذا این پکت بسیار کلیدی و کاربردی خواهد بود. در ادامه این آموزش، با مرجع تخصصی ماژول GPS به زبان فارسی، دیجی اسپارک همراه باشید.
تعریف تعدیل دقت DOP
همانطور که اطلاع دارید، جهت دریافت داده های جغرافیایی ماژول های گیرنده سیگنال های داده را از ماهواره ها دریافت می کنند. ماهواره های GPS در مدار زمین دائم در حال گردش هستند و داده های خود را با گیرنده ها مخابره می کنند. در این بین، عوامل مختلفی در کاهش دقت اثر گذار هستند. از جمله این عوامل می توان به موارد زیر اشاره نمود.
- وضعیت جوی
- وضعیت ساختمان ها و سازه ها
- فاصله بین ماهواره های در حال گردش که کاهش فاصله سبب کاهش دقت و افزایش فاصله سبب افزایش دقت می شود.
همانطور که گفته شد، پکت GPGSA حاوی اطلاعاتی مهم در رابطه با تعدیل دقت است. این پکت میزان دقت کاهش یافته محاسبه شده را در فرمت های زیر بر می گرداند.
HDOP: این پارامتر دقت تعدیل شده در راستای افق را بر می گرداند.
VDOP: این پارامتر دقت تعدیل شده را به صورت عمودی بیان می کند.
PDOP: این پارامتر تعدیل دقت موقعیت ۳ بعدی را بیان می کند.
در ادامه، جدول زیر مقادیر تعدیل دقت را به ازای حالت های مختلف نمایش می دهد. این جدول برگرفته از ویکی پدیاست.
مطابق جدول فوق، مقادیر مختلف برای DOP مشخص شده است. همانطور که پیشتر گفته شد، پکت GPGSA دارای فیلدهای اطلاعاتی ارزشمندی است که در قسمت بعدی به آن می پردازیم.
پکت GSA و فیلدهای اطلاعاتی
در این قسمت به بررسی فیلدهای اطلاعاتی پکت GPGSA می پردازیم. به عنوان یک مثال، این پککت به صورت زیر در ترمینال دریافت می گردد.
$GPGSA,A,3,23,29,07,08,09,18,26,28,,,,,1.94,1.18,1.54*0D
جدول زیر این فیلدها را به همراه توضیحات آن ها نمایش می دهد.
توضیح | مقدار فیلد |
هدر و یا پیشوند مشخص کننده پکت | $GPGSA |
این متغیر وضعیت کاری ماژول را نمایش می دهد. مقدار A یعنی ماژول می تواند بین حالت ۲ و ۳ بعدی سوییچ کند. در صورتیکه این مقدار M شود، ماژول یا در حالت ۲ و یا در حالت ۳ بعدی فعال خواهد بود. | A |
این متغیر وضعیت فیکس ماژول به ماهواره را نشان می دهد. مقادیر زیر برای فیکس تعریف می شوند.
۱:فیکس نشده ۲: فیکس دو بعدی ۳: فیکس سه بعدی |
۳ |
از این فیلد تا فیلد شماره ۱۵(با شروع شمارش فیلدها از ۱) شماره ماهواره های استفاده شده نمایش داده می شود. | |
این متغیر عدد مربوط به PDOP، تعدیل دقت سه بعدی موقعیت را نمایش می دهد. | ۱٫۹۴ |
این متغیر عدد مربوط HDOP، تعدیل دقت به صورت افقی را نمایش می دهد. | ۱۸٫۱ |
این متغیر عدد مربوط به VDOP، تعدیل دقت به صورت عمودی را نمایش می دهد. | ۵۴٫۱ |
این متغیر مربوط به فیلد CHECK SUM و یا کنترل خطا را نمایش می دهد. | *۰D |
پس از معرفی فیلدها، نوبت به اجرای یک نمونه برنامه می رسد. مطابق آموزش های پیشین، ابتدا به فیلتر پکت ها می پردازیم. پس از آن به اجرای یک نمونه برنامه جهت استخراج پکت GPGSA خواهیم پرداخت.
فیلتر کردن پکت های NMEA
همانطور که پیشتر مشاهده نمودید، ماژول GPS پکت ها را به صورت دائم در سریال قرار می دهد. زمانیکه بخواهید با میکروکنترلرها داده ها را بخوانید، از آنجاییکه ماژول GPS تمام پکت ها را با هم فرستاده و این مورد می تواند سبب پر شدن بافر سریال شود، بنابراین باید داده هایی که به آن ها احتیاج نیست فیلتر شوند. دستورات زیر سبب فیلتر شدن بافر از سایر داده ها شده و تنها داده های مربوط به GPGSA ارسال می شوند.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
با ارسال دستورات فوق به ماژول GPS، داده ها فیلتر شده و تنها داده های مربوط به پکت GPGSA در بافر قرار می گیرند. بدین ترتیب روال برنامه نویسی ساده تر شده و بافر سریال سبک خواهد شد. در قسمت بعدی به یک نمونه کد جهت دریافت GPGSA و جداسازی داده های مربوط به طول و عرض جغرافیایی، می پردازیم.
نمونه برنامه خواندن پکت GPGSA
در این قسمت به بررسی یک نمونه برنامه می پردازیم. در این برنامه داده های NMEA به جز پکت GPGSA را فیلتر می کنیم. سپس با خواندن سریال مانیتور، GPGSA را دریافت کرده و نمایش می دهیم.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
در کد فوق به کمک کتابخانه سریال نرم افزاری، از طریق پایه های ۸ و ۹ با ماژول GPS ارتباط برقرار می سازیم. سپس دستورات مربوط به غیر فعال سازی داده هایی غیر از GPGGA را ارسال می کنیم. در نهایت با دریافت GPGGA، آن را در سریال مانیتور نمایش می دهیم.
لوازم مورد نیاز
جمع بندی
در سلسله آموزش های ماژول GPS قسمت چهارم به معرفی پکت GPGSA پرداختیم. پکت GPGSA یکی از پکت های بسیار مهم و کاربردی در استاندارد NMEA به شمار می رود. در این قسمت از سلسله آموزش، ضمن توضیح، تشریح و معرفی کاربردهای این پکت کلیدی، فیلدهای اطلاعاتی آن را که حاوی اطلاعات مهم و ارزشمند از میزان دقت داده هاست، بررسی نمودیم. همچنین در ادامه، به طراحی یک برنامه تحت آردوینو جهت دریافت و مشاهده این پکت بر روی سریال مانیتور پرداختیم. با مطالعه این کدها و الگو برداری از آن، شما می تواند در پلتفرم های مختلف نظیر ARM و AVR نیز ارتباط با GPS را فراهم کرده و داده های آن را بخوانید.
چنانچه مطالب این آموزش را گنک یافتید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در مطالب درج شده و یا کدها وجود دارد میتوانید از همین طریق اطلاع رسانی کنید.