همه نام جی پی اس را شنیدهایم و بارها از تکنولوژی GPS روی گوشیهای هوشمند استفاده کردهایم. اما قطعهای به نام ماژول GPS وجود دارد که با استفاده از آن میتوانید پروژههای جذاب مکانیابی را اجرا کنید.
جی پی اس در واقغ سیستم موقعیت یاب جهانی است که از 24 ماهواره تشکیل شده است. ما به راحتی میتوانیم آردوینو را با جی پی اس برای مکان یابی استفاده کنیم. در این مقاله از مجله جم ترونیک ما به شما آموزش راه اندازی ماژول GPS با آردوینو را ارائه میدهیم.
GPS چیست؟
جیپیاس درواقع سیستمی تشکیلشده از بیشتر از ۳۰ ماهواره است که درحال گردش در مدار زمین هستند. این ماهوارهها هرلحظه درحال ارسال و دریافت اطلاعات هستند و بههمین دلیل ما از مکان لحظهای آنها خبر داریم. اطلاعات مکانی و زمانی ماهوارهها در هرلحظه به سمت زمین ارسال میشود و جایگاه آنها مشخص است.
یک گیرنده جیپیاس این سیگنالها را دریافت کرده و فاصلهاش را نسبت به سه ماهواره محاسبه میکند، پس از آن با استفاده از سهضلعیبندی که یکی از انواع مثلثبندی است، موقعیت خودش در زمین را محاسبه میکند. زمانیکه بهصورت زنده موقعیت یک دستگاه را مشاهده میکنید، این عملیات در هرلحظه انجام میشود.
ماژول gps چیست؟
ماژول gps تراشهای است که دارای پردازنده و آنتن است و سیگنالها را مستقیما از ماهوارهها و بهشکل امواج رادیویی دریافت میکند. این ماژول از هر ماهواره اطلاعاتی را دریافت میکند و اگر بتواند حداقل چهارتا از ماهوارهها را شناسایی کند، میتواند بهصورت دقیق مکان و زمان را محاسبه کند.
درواقع این ماژول تراشهای است که از آن در دستگاههای دیجیتالی و الکترونیکی مختلف استفاده میشود تا دستگاه بتواند از gps پشتیبانی کند. در موبایلها و دستگاههای هوشمند از انواع این ماژول استفاده شده است و بههمین دلیل میتوانید بهراحتی لوکیشن و زمان را بفهمید.
بهترین ماژول GPS برای رابط آردوینو
یک دستگاه جی پی اس از دادههای مستقیم ماهوارهها برای مکان یابی نقطهای روی زمین از طریق فرآیند لایه بندی استفاده میکند. گیرنده جی پی اس از سیگنالهای رادیویی برای اندازه گیری فواصل سه جانبه استفاده میکند. فرکانسهای RF اختصاصی دادههای ارسال شده توسط ماهوارهها را مستقیماً از طریق پردازندهها و آنتنهای کوچک موجود در ماژولهای مخصوص به چی پی اس دریافت میکنند. ماژولها موقعیت و زمان را به دقت محاسبه میکنند.
ما میتوانیم با هر ماژول جی پی اس که دارای ارتباط سریال باشد، رابط را انجام دهیم، اما محبوبترین ماژول جی پی اس ماژول GPS U-BLOX Neo 6M است. ماژول U-BLOX Neo 6M فقط از چهار پین استفاده میکن که شامل VCC، GND، RX و TX هستند. بدین دلیل که ماژولها سیگنالها را از طریق یک اتصال سریال ارسال میکنند. این سریال همان پروتکلی است که توسط آردوینو در نوشتن دستور Serial.begin استفاده میشود.
معرفی ماژول GPS NEO6M
ماژول gps NEO 6M دارای تراشه U-blox NEO 6M است و علیرغم اندازه کوچکش، کاربردهای بسیاری دارد. این ماژول دارای یک آنتن اضافه است و بههمین دلیل حساسیت بالایی دارد.
ماژول gps NEO6M میتواند تا ۲۲ ماهواره را از طریق ۵۰ شبکه مختلف شناسایی کند و بیشترین میزان حساسیت تشخیص را بین مدلهای دیگر شرکت دارد. این مدل میتواند سیگنال -۱۶۱ دسیبل را تنها با مصرف ۴۵ میلیآمپر تشخیص دهد.
برخلاف مدلهای دیگر، این ماژول gps میتواند ۵ لوکیشن را با دقت ۲.۵ متر در یک ثانیه آپدیت کند. همچنین با استفاده از موتور یوبلاکس ۶، TTFF آن به کمتر از یک ثانیه میرسد.
از بهترین ویژگیهای این ماژول gps، حالت ذخیره نیروی آن است. با فراهم شدن امکان خاموش و روشن کردن تنها بخشهایی از گیرنده، میزان مصرف نیرو فقط به ۱۱ میلیآمپر میرسد. این ویژگی باعث میشود تا بتوان از این ماژول در دستگاههایی مانند ساعتهای مچی هم استفاده کرد.
پایهها
- VCC: پین برق
- RX: پین گیرنده
- TX: پین فرستنده
- GND: پین زمین
سختافزار
- نمایشگر LED: چشمک زدن برای نشان دادن وضعیت؛ یک چشمک در هرثانیه به معنی پیدا کردن ماهواره و موقعیت است و خاموشبودن نشان میدهد که ماژول درحال گشتن به دنبال ماهوارهها است.
- رگولاتور ۳.۳ ولتی: ولتاژ عملکرد این ماژول بین ۲.۷ تا ۳.۶ ولت است اما در این ماژول از رگولاتور MIC5205 استفاده شده است.
- پینها: پینهای این ماژول توانایی تحمل ولتاژ حداکثر ۵ ولتی را دارند و بههمین دلیل میتوان این ماژول را بهراحتی به پین ۵ولتی آردوینو وصل کرد.
- EEPROM: یک رام با حافظه ۴ کیلوبایت که از طریق پروتکل 12C به ماژول متصل شده است.
- باتری: یک باتری قابل شارژ
- آنتن: آنتنی با حساسیت -۱۶۱ دسیبل برای دریافت سیگنالهای رادیویی از ماهوارهها
اتصال ماژول NEO6M به آردوینو
تصویر ۲
پس از آشنایی با این ماژول gps باید آن را به آردوینو وصل کنید تا بتوانید از آن روی دستگاههای دیگر استفاده کنید. در ادامه نحوه انجام این کار را شرح دادهایم.
قطعات لازم
- آردوینو
- ماژول gps NEO6M
- سیمهای رابط
کدنویسی
پس از اتصال ماژول به آردوینو، باید آن را تنظیم کنید؛ برای این کار میتوانید کد خودتان را بنویسید یا از کد زیر استفاده کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
/* * Rui Santos * Complete Project Details https://randomnerdtutorials.com */ #include <SoftwareSerial.h> // The serial connection to the GPS module SoftwareSerial ss(4, 3); void setup(){ Serial.begin(9600); ss.begin(9600); } void loop(){ while (ss.available() > 0){ // get the byte data from the GPS byte gpsData = ss.read(); Serial.write(gpsData); } } |
توضیح کد
در این کد پین ۴ برای RX و پین ۳ برای TX مقداردهی شده است؛ اگر از پینهای دیگری استفاده میکنید، خط زیر از کد را عوض کنید.
1 |
SoftwareSerial ss(4, 3); |
همچنین اگر ماژولتان از بادریت ۹۶۰۰ پشتیبانی نمیکند، خط زیر از کد را براساس بادریت ماژولتان عوض کنید.
1 |
ss.begin(9600); |
با این بخش از کد، دیتا پس از دریافتشدن از ماژول، به سریال مانیتور فرستاده میشود.
1 2 3 4 5 6 7 8 9 |
while (ss.available() > 0){ // get the byte data from the GPS byte gpsData = ss.read(); Serial.write(gpsData); } |
آموزش راه اندازی ماژول GPS UBlox NEO-M8N با آردوینو
معرفی ماژول GPS Ublox-NEO-M8N
مدل دیگری از ماژول gps ساخته شرکت U-Blox که در آن از موتور M8 استفاده شده است. این مدل دارای حساسیت بالاتر نسبت به مدل 6M دارد و موقعیت مکانی را با سرعت و دقت بالاتر محاسبه میکند. این مدل با حساسیت -۱۶۷ دسیبل کار میکند.
با استفاده از این ماژول gps میتوان در مناطق عمیق مانند درهها هم موقعیت مکانی را با دقت بالا محاسبه کرد. ماژول NEO M8N از تمام سیستمهای ماهوارهها پشتیبانی میکند. با استفاده از این ماژول میتوان تا ارتفاع ۵۰ کیلومتر نسبت به سطح دریا و سرعت حداکثر ۵۰ متر بر ثانیه، موقعیت مکانی و زمان را با دقت بالا محاسبه کرد.
پایهها
- VCC: پایه منبع تغذیه
- Tx
- Rx
- GND
سختافزار
- باتری قابل شارژ
- فلش داخلی برای بهروز رسانی فریمور
- حافظه ROM
- اوسیلاتور ۳۲ کیلوهرتزی که از یک کریستال استفاده میکند؛ درصورت قطع برق به ماژول و وجود باتری، با استفاده از این اوسیلاتور میتوان دادهها را روی ROM ذخیره کرد.
- عملکرد براساس پروتکل ارتباطی UART
- پشتیبانی از USB بهعنوان یک جایگزین برای UART
- آنتن داخلی
خرید ماژول Ublox-NEO-M8N GPS
مرحله 2: رابط ماژول GPS با آردوینو Uno
برای رابط، اتصالات را به صورت زیر انجام دهید:
- Vcc ماژول GPS را به پین منبع تغذیه (5 ولت) آردوینو Uno وصل کنید.
- Rx (پین گیرنده) ماژول GPS را به پین D3 Uno وصل کنید.
- Tx (پین فرستنده) ماژول GPS را به پین D4 Uno وصل کنید.
- GND (Ground Pin) ماژول GPS را به GND Uno وصل کنید.
آردوینو Uno: از صفر تا صد + آموزش راهاندازی
مرحله 3: دانلود و نصب کتابخانهها
کتابخانههای زیر را دانلود و در نرم افزار Arduino IDE نصب کنید.
- کتابخانه سریال نرم افزار
- کتابخانه TinyGPS برای آردوینو
مرحله 4: نرم افزار آردوینو (IDE)
کد نمونه را در نرم افزار آردوینو (IDE) باز کنید. در زبانه File، نشانگر را روی Examplesببرید، TinyGPSPlus-master را انتخاب کنید و سپس روی DeviceExample کلیک کنید.
مرحله 5: گرفتن خروجی نهایی
همانطور که در بالا نشان داده شده است، خروجی را در پنجره سریال Arduino IDE دریافت خواهید کرد. اینها جملات NMEA در انواع مختلف هستند.
مرحله 6: رمزگشایی ساختار پیام NMEA
همه پیامهای NMEA با کاراکتر $ شروع میشوند و هر فیلد داده با کاما از هم جدا میشود. $GNGGA پیام اصلی NMEA است. موقعیت 3 بعدی و دادههای دقیق را ارائه میدهد.
حالا به رمزگشایی میرویم:
- GN: بعد از $ موقعیت GPS را نشان میدهد. GGA برای دادههای اصلاح سیستم موقعیت یابی جهانی است. کاراکترهای قبل از کاما اول نوع پیام را نشان میدهد. همه پیامها با قالب NMEA-0183 نسخه 3.01 مطابقت دارند.
- 074132: نشان دهنده زمانی است که مکان ثابت گرفته شده است، 07:41:32 UTC
- 84511، N: عرض جغرافیایی 18 درجه 37.84511 ( دقیقه شمالی )
- 30436، E: طول جغرافیایی 073 درجه 52.30436 ( دقیقه شرقی )
- 1: کیفیت ثابت (صفر نامعتبر، 1 = رفع GPS، 2 = رفع DGPS، 3 = رفع PPS، 4 = سینماتیک بلادرنگ، 5 = شناور RTK، 6 = تخمین زده شده (حساب مرده)، 7 = حالت ورودی دستی، 8 = حالت شبیه سازی)
- 10: تعداد کل ماهوارهها
- 17: رقیق سازی افقی موقعیت
- 8,M: ارتفاع، بر حسب متر از سطح دریا
- -67.7,M: ارتفاع ژئوئید (به معنی سطح دریا) بالاتر از بیضی WGS84
- فیلد خالی: زمان بر حسب ثانیه از آخرین به روزرسانی DGPS
- فیلد خالی: شماره شناسه ایستگاه DGPS
- *60: دادههای جمع بندی بررسی، همیشه با * شروع میشود.
کلام آخر
این پروژه بر اساس مقاله ماژول GPS با آردوینو توسط Priyanka Dixit ساخته شده است. برای اطلاعات بیشتر در مورد GPS، نحوه کارکرد آن، توضیح اصطلاحات کلیدی طول و عرض جغرافیایی، تفاوت بین تراشه GPS و ماژول GPS و موارد دیگر، مقالات دیگر ما را بخوانید. برای خرید محصولات آردوینو به فروشگاه جم ترونیک مراجعه کنید. برای تهیه و خرید ماژول GPS در انواع مختلف کلیک کنید.
سلام ممنون می شم راهنمایی کنید که چطور میتونم ماژول GPS را به میکروکنترلر متصل کنم؟
جناب رحمتی جهت متصل کردن یک ماژول GPS به یک میکروکنترلر، شما باید ابتدا بسته به ماژول GPSی که شما استفاده میکنید، باید پینهای مربوط به اتصال دادههای GPS از جمله TX، RX، VCC و GND را به میکروکنترلر خود وصل کنید. سپس، میتوانید با استفاده از رابط ارتباطی سریال برای مثال UART، اطلاعات GPS را دریافت کنید و پردازش کنید.
چطورمیتوان دادههای ماژول GPS را برای استفاده در برنامههای کاربردی مانند نقشهبرداری و یا جستجوی مسیر، پردازش کرد؟
برای این کار شما میتوانید با استفاده از کتابخانهها و APIهای موجود برای پردازش دادههای GPS مانند NMEA و یا UBX ، اطلاعات موقعیت GPS را دریافت کنید و آنها را برای استفاده در برنامههای کاربردی مانند نقشهبرداری و جستجوی مسیر پردازش کنید. همچنین میتوانید از سرویسهای نقشهبرداری مثل Google Maps API برای نمایش موقعیت شیء شما بر روی نقشه استفاده کنید.