مکان یاب GPS

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

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

در سلسله آموزش های ماژول 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 ارسال می شوند.

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

 


اجرای یک برنامه برنامه


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

 

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

 

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

 


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


ماژول GPS مدل NEO6M

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

انواع برد ESP

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

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

 


جمع بندی


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

 

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

 

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

معین صابری

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

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

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