در سلسله آموزش های ماژول GPS مدل NEO6M، قسمت هفتم به دیگر پکت مهم و کاربردی این ماژول، GPVTG می پردازیم. در آموزش های پیشین پکت های مختلف و کاربردی نظیر GPRMC، GPGGA، GPGSV و… پرداختیم. همانطور که گفته شد، ماژول GPS مدل NEO6M داده های خود را طبق استاندارد NMEA در خروجی قرار می دهد. این پکت ها را به همراه فیلدهای آن در قسمت پیشین مورد بررسی قرار دادیم. در این قسمت به بررسی پکت GPVTG و فیلدهای اطلاعاتی آن می پردازیم. در ادامه این آموزش، با مرجع تخصصی ماژول GPS به زبان فارسی، دیجی اسپارک همراه باشید.
GPVTG و فیلدهای اطلاعاتی
پکت GPVTG یکی از پکت های کاربردی جهت تعیین جهت و سرعت متحرک است. به کمک این پکت می توانیم سرعت متحرک را بر حسب کیلومتر بر ساعت و KNOT بدست آوریم. به عنوان یک مثال، داده های زیر را مشاهده نمایید.
$GPVTG,77.52,T,,M,0.004,N,0.008,K,A*06
در ادامه، جدول زیر شرح کاملی از فیلدهای اطلاعاتی پکت فوق را نمایش می دهد.
شرح | مقدار |
فیلد پیشوند یا هدر پکت | $GPVTG |
جهت حرکت متحرک نسبت به کره زمین(نسبت به جهت های واقعی کره زمین) | ۵۲٫۷۷ |
فیلد مربوط به فیکس که عبارت T به معنای TRUE (فیکس نسبت به جهت واقعی و نه مغناطیسی زمین) است. | T |
در اینجا مقدار جهت حرکت متغیر نسبت به جهت های مغناطیسی قرار داده می شود. در اینجا این مقدار در خروجی قرار نگرفته است.. | – |
فیلد مربوط به فیکس که عبارت M به معنای MAGNETIC (فیکس نسبت به جهت مغناطیسی و نه واقعی زمین) است. | M |
این متغیر سرعت متحرک را در واحد KNOT در خروجی قرار می دهد. | ۰۰۰۴٫۰ |
عبارت N در این فیلد نشان می دهد فیکس برای واحد KNOT معتبر است. | N |
این متغیر سرعت متحرک را بر حسب کیلومتر بر ساعت نمایش می دهد. | ۰۰۸٫۰ |
عبارت K در این فیلد نشان می دهد فیکس برای واحد کیلومتر بر ساعت معتبر است. | K |
این پارامتر وضعیت فیکس را نمایش می دهد. مقادیر مختلف برای این فیلد عبارتند از:
N: بدون فیکس A: فیکس با حداقل(کمترین) دقت D: در حال اصلاح خطا مقادیر اندازه گیری شده E: در این مد ماژول در تلاش برای تصحیح خطا در محیط هایی با پوشش ضعیف نظیر تونل ها و مکان های مسقف مثل پارکینگ هاست. |
A |
فیلد check sum جهت کنترل خطا
|
*۰۶ |
پس از مشاهده و بررسی فیلدهای اطلاعاتی پکت VTG، نوبت به استخراج این پکت ها در برنامه و برنامه نویسی می رسد. در قسمت های بعدی به این موضوع می پردازیم.
فیلتر کردن پکت های NMEA
همانطور که پیشتر مشاهده نمودید، ماژول GPS پکت ها را به صورت دائم در سریال قرار می دهد. زمانیکه بخواهید با میکروکنترلرها داده ها را بخوانید، از آنجاییکه ماژول GPS تمام پکت ها را با هم فرستاده و این مورد می تواند سبب پر شدن بافر سریال شود، بنابراین باید داده هایی که به آن ها احتیاج نیست فیلتر شوند. دستورات زیر سبب فیلتر شدن بافر از سایر داده ها شده و تنها داده های مربوط به GPVTG ارسال می شوند.
$PUBX,40,GLL,0,0,0,0*5C $PUBX,40,RMC,0,0,0,0*47 $PUBX,40,GSV,0,0,0,0*59 $PUBX,40,GSA,0,0,0,0*4E $PUBX,40,GGA,0,0,0,0*5A
با ارسال دستورات فوق به ماژول GPS، داده ها فیلتر شده و تنها داده های مربوط به GPVTG در بافر قرار می گیرند. بدین ترتیب روال برنامه نویسی ساده تر شده و بافر سریال سبک خواهد شد. در قسمت بعدی به یک نمونه کد جهت دریافت GPVTG و جداسازی داده های مربوط به طول و عرض جغرافیایی، می پردازیم.
اجرای یک برنامه برنامه
در این قسمت به بررسی یک نمونه برنامه می پردازیم. در این برنامه داده های NMEA به جز GPVTG را فیلتر می کنیم. سپس با خواندن سریال مانیتور، GPVTG را دریافت کرده و نمایش می دهیم.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
در کد فوق به کمک کتابخانه سریال نرم افزاری، از طریق پایه های ۸ و ۹ با ماژول GPS ارتباط برقرار می سازیم. سپس دستورات مربوط به غیر فعال سازی داده هایی غیر از GPVTG را ارسال می کنیم. در نهایت با دریافت GPVTG، آن را در سریال مانیتور نمایش می دهیم.
لوازم مورد نیاز
جمع بندی
در سلسله آموزش های ماژول GPS قسمت هفتم به معرفی پکت GPVTG پرداختیم. پکت GPVTG یکی از پکت های بسیار مهم و کاربردی در استاندارد NMEA به شمار می رود. در این قسمت از سلسله آموزش، ضمن توضیح، تشریح و معرفی کاربردهای این پکت کلیدی، فیلدهای اطلاعاتی آن را که حاوی اطلاعات مهم و ارزشمند از جهت حرکت و سرعت متحرک است را، بررسی نمودیم. همچنین در ادامه، به طراحی یک برنامه تحت آردوینو جهت دریافت و مشاهده این پکت بر روی سریال مانیتور پرداختیم. با مطالعه این کدها و الگو برداری از آن، شما می تواند در پلتفرم های مختلف نظیر ARM و AVR نیز ارتباط با GPS را فراهم کرده و داده های آن را بخوانید.
دیگر آموزشهای راه اندازی ماژول GPS
راه اندازی و کار با ماژول GPS مدل NEO6M: بخش اول معرفی
راه اندازی ماژول GPS مدل NEO6M: بخش دوم تغذیه و اتصال ماهواره
راه اندازی ماژول GPS مدل NEP6M: بخش سوم خواندن دیتای GPS GPRMC
راه اندازی و کار با ماژول GPS مدل NEO6M: بخش چهارم GPGSV
راه اندازی و کار با ماژول GPS مدل NEO6M: قسمت پنجم پکت GPGGA
راه اندازی و کار با ماژول GPS مدل NEO6M: قسمت ششم پکت GSA
راه اندازی ماژول GPS مدل NEO6M: قسمت هشتم نرم افزار UCENTER
راه اندازی و کار با ماژول GPS مدل NEO6M: قسمت نهم پروژه عملی
راه اندازی و کار با ماژول GPS شرکت U-BLOX: قسمت دهم مدل Neo8MN
کار با ماژولهای GPS شرکت U-BLOX: قسمت یازدهم: راه اندازی Neo8MN
کار با ماژولهای GPS شرکت U-BLOX: قسمت دوزادهم پروژه ردیاب با Neo8MN
چنانچه مطالب این آموزش را گنک یافتید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در مطالب درج شده و یا کدها وجود دارد میتوانید از همین طریق اطلاع رسانی کنید.