20.04.2026

GPS-modullar bilan ishlash [18+]

GPS-modullar

GPS-modullar sun’iy yo’ldoshdan ma’lumot qabul olish, rasshifrovka qilish va uning asosida o’z koordinatalarini aniqlash uchun mo’ljallangan modullar hisoblanadi. Ular GPS (yoki GLONASS) servislari yordamida faqat ma’lumot qabul qilish uchun mo’ljallanganligi sababli, ular yordamida Arduino qurilmalarini masofadan bevosita boshqarib bo’lmaydi.

Internet, nRF24L1+, LoRa, GSM kabi uzoq masofadan boshqaruv texnologiyalari bilan birgalikda qo’llaganda sana va aniq vaqtni, Arduino qurilmalarining koordinatalarini, ulargacha bo’lgan masofa, ularning tezligi kabi ma’lumotlarni aniqlashda GPS-modullardan unumli foydalanish mumkin. Bunday ma’lumotlar esa, boshqariladigan avto/uchish/suzish apparatlari, yo’qolishi mumkin bo’lgan qimmatbaho buyumlar, qushlar yoki hayvonlarni topish, ularning harakat traektoriyasini aniqlash hamda turli onlayn servislarga yoki SD-kartalarga saqlash va shunga o’xshash ko’plab loyihalarni yaratishda foydalanilishi mumkin.

NEO-6M, NEO-7M, NEO-8M – UBLOX kompaniyasi tomonidan ishlab chiqarilgan, mustaqil Arduino qurilmalarini yaratishda qo’llaniladigan, eng ko’p tarqalgan GPS-navigator modullari.

Koordinataning qanchalik aniqligi qabul qilinayotgan sun’iy yo’ldoshlar soniga bog’liq. Ishonchli ma’lumotga ega bo’lish uchun ularning soni 4 tadan kam bo’lmagani ma’qul. Ushbu modullar bir-biridan tashqi o’lchami, EEPROM-xotira mavjudligi, energiyatejamkorligi, kanallari soni va narxiga ko’ra farq qiladi. Ularning taxminiy parametrlari quyidagicha bo’ladi:

  • Ishchi kuchlanishi: 3-5V;
  • EEPROM-xotira (konfiguratsiya parametrlarini saqlab turish uchun);
  • ma’lumot yangilanish chastotasi – 1…5 GHz;
  • sezgirligi: 161 dBm (standart antenna bilan);
  • kanallar soni: 50 ta;
  • mikrokontroller bilan bog’lanish standart tezligi: 9600 bod;
  • gorizontal koordinata aniqligi: 2,5 metr;
  • Svetodiodli signal indikatori;
  • o’lchami: 23 x 30 mm.

NMEA (National Marine Electronics Association) formati.

NMEA navigatsiya uskunalari, aloqa va boshqa axborot tarmoqlari ma’lumotlarini uzatish standarti hisoblanadi. U GPS-joylashuvni aniqlaydigan ma’lumotlarni real vaqtda uzatadi. Ammo bu ma’lumotlar bilan birga u NMEA formatidagi ko’plab boshqa ma’lumotlarni ham uzatadi (quyidagi rasmga qarang).

NMEA bir nechta satrlarni (jumlalarni) o’z ichiga oladi, ko’pincha bu ma’lumotlar to’plamidan bizga faqat bitta satr kerak bo’ladi. Ushbu satr $GNGGA (ba’zi modullarda GPGGA) bilan boshlanadi va koordinatalar, vaqt va boshqa foydali ma’lumotlarni o’z ichiga oladi. Ushbu ma’lumotlar sobit global joylashishni aniqlash ma’lumotlariga (Global Positioning System Fix Data) tegishli.

Biz $GNGGA qatoridan kerakli ma’lumotlarni qatordagi vergullarni hisoblash orqali olishimiz mumkin. Masalan, agar $GNGGA qatorini topsak va uni massivda saqlagan bo’lsak, unda kenglik ikkita verguldan keyin, uzunlik esa to’rtta verguldan keyin topilishi mumkin. Rasshifrovkadan so’ng kenglik va uzunlik qiymatlari alohida qatorlarga joylashtirilishi mumkin.

Quyida $GNGGA qatoriga misolni rasshifrovkasi (identifikatori) bilan keltiramiz: $GNGGA,185128.000,4022.75832,N,07144.37873,E,1,13,0.8,532.9,M,0.0,M,,*73
yoki, NMEA formatida: $GNGGA,HHMMSS.SSS,latitude,N,longitude,E,FQ,NOS,HDP,altitude,M,height,M,,checksum data
Quyidagi jadvalda ushbu GPS ma’lumotlarining tavsifi keltirilgan.

Identifikator Izoh
$GNGGA Global joylashishni aniqlash tizimining sobit ma’lumotlari
HHMMSS.SSS Vaqt: soat, daqiqa, soniya va millisekund formatida
Latitude Shimoliy kenglik (koordinata)
N Yo’nalish: N=North (shimolga), S=South (janubga)
Longitude Sharqiy uzoqlik (koordinata)
E Yo’nalish: E= East (sharqqa), W=West (g’arbga)
FQ Belgilangan sifat ma’lumotlari (Fix Quality Data)
NOS Foydalanilgan sun’iy yo’ldosh raqami
HPD Gorizontal tekislikdagi pozitsiyani aniqlashda aniqlikni kamaytirish omili (Precision Horizontal Dilution)
Altitude Dengiz sathidan balandlik
M Meter (o’lchov birligi, metr)
Height Height (geoidning WGS 84 ellipsoididan balandligi)
Checksum Nazorat summasi ma’lumotlari

Navbatdagi jadvalda GPS-moduldan elektron qurilmaga jo’natiladigan NMEA formatidagi xabarlarning qisqacha vazifasi keltirilgan.

Xabar Izoh
AAM AAM yo’l nuqtasiga kelish
ALM almanax ma’lumotlari
APA aavtopilot ma’lumotlari
APB bavtopilot ma’lumotlari
BOD belgilangan joyga azimut
DTM ishlatilayotgan ma’lumotlar bazasi
GGA ruxsat etilgan yechim haqida ma’lumot
GLL kenglik va uzunlik ma’lumotlari
GSA sun’iy yo’ldosh haqida umumiy ma’lumot
GSV sun’iy yo’ldosh haqida batafsil ma’lumot
MSK asosiy qabul qilgichni boshqarish uchun uzatish
MSS asosiy qabul qilgichning holati
RMA RMA Lorantizimining tavsiya etilgan ma’lumotlar to’plami
RMB tavsiya etilgan GPS navigatsiya ma’lumotlari to’plami
RMC tavsiya etilgan minimal GPS ma’lumotlar to’plami
RTE marshrut ma’lumotlari
VTG harakat va tezlik vektori
WCV yo’nalish nuqtasi yaqinidagi tezlik ma’lumotlari
WPL yo’nalish nuqtasi ma’lumotlari
XTC trekdan uzoqlashish xatoligi
XTE trekdan uzoqlashishing o’lchangan xatoligi
ZTG UTC vaqti va belgilangan joyga kelish uchun qolgan vaqt
ZDA sana va vaqt

1-misol. Ushbu misolda GPS-modul qabul qilayotgan ma’lumotlarni o’qish va ularni portga chiqarish uchun oddiy sketchni ko’rib chiqamiz. Bunda GPS-modul uchun hech qanday bibliotekadan foydalanmaymiz, shuning uchun, ma’lumotlar NMEA formatida ifodalanadi. Natija yuqoridagi rasm ko’rinishida bo’ladi. Misol “SoftwareSerial” bibliotekasi qo’llanilmagan (1-sketch) va qo’llanilgan (2-sketch) holatlar uchun alohida keltirilgan.

Modul ishga tushganidan keyin, u avtomatik ravishda sun’iy yo’ldoshlarni izlashniga urinadi (sovuq start vaqti). U birinchi marta ishga tushganda, odatda moduldagi ichki batareyka zaryadsiz bo’lishi mumkin, shuning uchun izlash jarayoni bir necha o’nlab daqiqa, hatto soatlab davom etishi mumkin. Modul avtomatik ravishda topilgan sun’iy yo’ldoshlar ro’yxatini shaklantirib, ichki EEPROM xotirasiga (agar ushbu modelida mavjud bo’lsa) saqlab boradi. Shuning uchun, navbatdagi ishga tushirishlarda ularni qayta izlashga uzoq vaqt sarflanmaydi.

1-eslatma: ESP8266 mikrokontrollerlari asosidagi modul va platalarda “SoftwareSerial.h” bibliotekasini NEO-6M moduli bilan birga qo’llashda xatolik yuz berishi mumkin. Tanlangan ESP8266 platasi uchun “SoftwareSerial.h” bibliotekasi qo’llanilganda, GPS-moduldagi natijalarni olib bo’lmasa, 1-sketchdan foydalanish tavsiya etiladi.
2-eslatma. GPS-modulning RX pinini ko’pincha Arduino platalariga ulashning hojati yo’q. Chunki, modul faqat qabul qilingan ma’lumotni mikrokontrollerga uzatishga mo’ljallangan. Lekin, agar modul sozlamalarini dasturiy o’zgartirish zarurati tug’ilsa, RX pinidan foydalanishga tog’ri keladi.

Kerakli materiallar:

1) Wemos D1 mini, maket platasi, USB-kabel, o’tkazgichlar;
2) NEO-6M GPS-moduli.

Sxema:

Sketch 1-varianti (“SoftwareSerial.h” bibliotekasidan foydalanilmagan):

Sketch 2-varianti (“SoftwareSerial.h” bibliotekasidan foydalanilgan):

Sketchlar ishga tushirilganda, port monitorida har sekundda yuqoridagi rasmda keltirilgan kabi texnik ma’lumotlar ko’rinadi.

Xuddi shunday ma’lumotlarni va ketma-ket port orqali NEO-xx modullari yordamida GPS/GLONASS sun’iy yo’ldoshlaridan qabul qilinayotgan boshqa ko’plab boshqa texnik ma’lumotlarni turli formatlarda hamda visual ko’rinishlarda UBLOX kompaniyasining Windows uchun mo’ljallangan u-center ilovasi (yuklab olish uchun saytga havola) yordamida ham kuzatish mumkin. Buning uchun, ketma-ket monitori boshqa dasturda (masalan, Arduino IDE da) ochilmagan bo’lishi kerak. Xususan dastur yordamida, kiruvchi ma’lumotlar (chap tomonda), topilgan sun’iy yo’ldoshlar soni va joylashuvi, ularning signali sifati, janubiy keng;ik, sharqiy uzoqlik, hozirgi sana hamda aniq vaqt va boshqa ma’lumotlarmi onlayn kuzatish mumkin. Asosiysi, ushbu dastur yordamida NEO-xx modullarning ishga yaroqliligini aniqlab olish mumkin.

2-misol. Ushbu misolda GPS-moduldan olingan NMEA formatidagi ma’lumotlar asosida topilgan sun’iy yo’ldoshlar soni, ma’lumot aniqlik darajasi (0 ga yaqinligi), shimoliy kenglik (latitude), sharqiy uzoqlik (longitude), joriy sana va aniq vaqt (UTC bo’yicha), dengiz sathidan balandlik, joriy harakat yo’nalishi va tezligini ko’rsatish dasturini ko’rib chiqamiz.

Qulaylik uchun “TinyGPSPlusPlus” (sketchda ko’rsatilishi: “TinyGPS++.h“) Arduino ichki bibliotekasidan foydalanamiz, “SoftwareSerial” bibliotekasidan esa, foydalanmaymiz. Kerakli materiallar va bog’lanish sxemasi o’zgarmaydi. Bundan tashqari, modul bino (xona)ning ichkarisida va derzaga yaqin holatda bo’lgan vaziyatlar uchun natijalar alohida keltirilgan (aksincha, signal paydo bo’lishini ma’lum vaqt kutishga to’g’ri kelardi).

Natija:
1-video (modul bino ichkarisida joylashgan holat):

2-video (modul derazaga yaqin joylashgan holat):

Natijadan ko’rish mumkinki, vaqt o’tishi bilan aniqlangan sun’iy yo’ldoshlar soni ortishi bilan, ma’lumotlar ham aniqlashaib boradi.

Yuqoridagi misolga “iarduino_GPS_NMEA” ichki bibliotekasini qo’llab, “DataAll” namunaviy sketchi yordamida ham yuqoridagiga o’xshash ma’lumotlarni olishimiz mumkin (kerakli materiallar va sxema o’zgarmaydi).

Sketch:

Natija:

Добавить комментарий