GPS модуль GMM-U1 від GlobalTop

Зараз область застосуваннясупутникової навігаційної системи GPS досить широка. Але використовувати GPS можна не тільки для навігації, але і для інших цілей. Наприклад, якщо використовувати GPS модуль у зв'язці з модулем GSM, можна зробити GPS трекер, який буде за запитом видавати свої координати. Він застосовується в автомобільних протиугінних системах, системах стеження за вантажами і т.д. Також із супутників можна отримати точний час, дату, курс, швидкість та інші дані. У цій статті я розповім про GPS модуль GMM-U1.

Як видно, модуль досить компактний, але, незважаючи на це, дуже легко запаюється, оскільки крок його висновків 1,2 мм.

Ось основні можливості даного модуля:

  • 66 каналів для пошуку/супроводу супутників.
  • Частота L1 (1575 МГц).
  • Висока чутливість -165 дБм, має вбудований LNA (Low Noise Amplifier - Малошумний підсилювач), який дозволяє використовувати модуль як з активними, так і з пасивними антенами.
  • Інтерфейси UART (зі швидкістю від 4800 до 115200) та USB.
  • Підтримка AGPS (Технологія, що дозволяє значно зменшити час холодного старту).
  • Підтримка DGPS(Технологія, що дозволяє збільшити точність GPS)
  • Точність позиціонування GPS-> У реальному часі. З'явиться ось таке віконце:

globaltop

Тут необхідно вибрати інтервал опитування. Я поставив одну секунду. І після цього натискаємо Пуск. Далі програма сама визначить, якого порту підключений модуль і який швидкості він працює.

3) Виходимо у головне вікно програми і бачимо, що у лівій колонці, у пункті Тимчасові мітки з'явився пункт RealTime GPS. Заходимо в нього, робимо подвійний клік по Position і на карті з'являється поточне розташування:

сума
Тепер поговоримо про те, як можна підключити модуль до мікроконтролера. Зробити це можна у вигляді інтерфейсу UART. Так ось, відразу після включення модуль починає відсилати по UART рядки з даними (протокол NMEA0183). Нижче наведу розшифрування цих рядків.

Кожен рядок починається із символів $GP, далі йде назва рядка, дані, а після всіх даних стоїть *, після якої йде контрольна сума. Дані поділяються між собою комами. Всього таких рядків 7. Також за допомогою спеціальних команд їх можна підключати або відключати. Про це розповім згодом.

Отже, усі рядки по порядку.

  • GGA – назва рядка. Рядок GGA містить у собі час за UTC, позицію та дані про достовірність координат.
  • 064951.000 - час за UTC. 06:49:51.000
  • 2307.1256 – широта.
  • N - Вказує, північна широта або південна. N – північна, S – південна.
  • 12016.4438 – довгота.
  • E – вказує, західна чи східна довгота. E – східна, W – західна.
  • 1 - покажчик, який говорить про те, чи зафіксована позиція. 0 – позиція невідома, 1 – позиція зафіксована, 2 – позиція зафіксована та використовуються дані DGPS.
  • 8 - кількість використовуваних супутників. Від 0 до 14
  • 0.95 – горизонтальна точність у метрах (HDOP).
  • 39.9 – висота над рівнем моря.
  • M – одиниці виміру висоти. Метри.
  • 17.8 – геоїдальна відмінність.
  • M – метри.
  • Час, який минув після останнього оновлення даних DGPS. Відсутня.
  • 65 - Контрольна сума.

2. $GPGSA,A,3,29,21,26,15,18,09,06,10. 2.32,0.95,2.11*00

  • GSA – містить інформацію про точність визначення координат та активних супутників.
  • A – режим перемикання між 2D/3D фіксацією. A – автоматичний, M – Ручний.
  • 3 – режим фіксації. 1 – фіксація недоступна, 2 – 2D, 3 – 3D.
  • 29 – номер супутника, сигнал якого модуль приймає по 1 каналу.
  • те ж саме для другого каналу
  • те саме для 12-го каналу.
  • 2.32 – точність позиціонування в метрах (PDOP)
  • 0.95 – горизонтальна точність у метрах (HDOP)
  • 2.11 – вертикальна точність у метрах (VDOP)
  • 00 - Контрольна сума.

  • GSV – містить інформацію про видимих ​​і використовуваних супутників, їх положення, якість сигналу.
  • 3 – кількість повідомлень. Вся інформація не влазить в одне повідомлення, тому надходять три повідомлення.
  • 1 – номер повідомлення. Від 1 до 9
  • 09 – кількість видимих ​​супутників.
  • 29 – номер супутника
  • 36 – висота супутника у градусах.
  • 029 - азимут істинний (супутника щодо антени) у градусах.
  • 42 - відношення сигнал/шум (0-99). Якщо 0 – супутник не використовується.
  • Те саме для інших супутників ...
  • 7D - Контрольна сума.

  • RMC – найважливіше повідомлення. Містить інформацію про місцезнаходження, час, дату, швидкість.
  • 064951.000 - час за UTC. 06:49:51.000
  • A – достовірність даних. A – дані достовірні, V-дані не достовірні.
  • 2307.1256 – широта.
  • N - Вказує, північна широта або південна. N – північна, S – південна.
  • 12016.4438 – довгота.
  • E – вказує, західна чи східна довгота. E – східна, W – західна.
  • 0.03 - швидкість щодо Землі (вузлів на годину).
  • 165.48 - курс (колійний кут).
  • 260406 – дата. 24.04.06.
  • 3,05,W - магнітне відмінювання. Відсутня.
  • A – режим роботи модуля. A – автономний, D – з DGPS.
  • 2C – Контрольна сума.

  • VTG – інформація про курс та швидкість щодо Землі.
  • 165.48 - курс (колійний кут).
  • T – дані достовірні.
  • M – точно не знаю, що це за параметр, але в модулі GMM-U1 він недоступний.
  • 0.03, N - швидкість (вузлів на годину).
  • 0,06, K - швидкість (Км / год)
  • A – режим роботи модуля. A – автономний, D – з DGPS.
  • 37 – Контрольна сума.

  • GLL – інформація про місцезнаходження, час визначення координат.
  • 2307.1256 – широта.
  • N - Вказує, північна широта або південна. N – північна, S – південна.
  • 12016.4438 – довгота.
  • E – вказує, західна чи східна довгота. E – східна, W – західна.
  • 182134.000 – час UTC на момент визначення координат. 18:21:34.000.
  • A – достовірні дані.
  • 57 - Контрольна сума.

  • ZDA – інформація про час за UTC, датою та локальним часовим поясом.
  • 182855.000 – час за UTC. 18:28:55.000.
  • 08,09,2011 – дата. 08/09/2011.
  • Локальний часовий пояс (зсув щодо UTC). У цьому модулі чомусь немає :(.
  • 56 – Контрольна сума.

Налаштування модуля.

Для налаштування модуля є спеціальні команди. Ось, наприклад, команда гарячого рестарту:

Розглянемо докладно, як формуються команди. Спочатку йдуть символи $PMTK, після них йде тризначний код команди (від 000 до 999), далі через кому йдуть атрибути команди (якщо є), а потім контрольна сума.Після контрольної суми потрібно відправити ще два байти: 0x0D та 0x0A. Без них команда не буде виконана!

Контрольну суму потрібно розраховувати самостійно. Для того, щоб отримати контрольну суму потрібно провести побітову операцію.EOR в асемблері) всіх символів команди між знаками $ та *.

Нижче наведу команди, необхідні зміни швидкості UART.

  • $PMTK251,4800 * 14 - 4800
  • $PMTK251,9600*17 - 9600
  • $PMTK251,14400*29 - 14400
  • $PMTK251,19200*22 - 19200
  • $PMTK251,38400*27 - 38400
  • $PMTK251,57600*2C – 57600
  • $PMTK251,115200*1F – 115200

Повний список команд можна знайти у файлі Commands.pdf, що лежить у архіві.

І наостанок розповім про те, як перевести координати, отримані за UART від модуля у формат, придатний для введення в Яндекс.Карти/Google Maps. Отже, 2307.1256,N означає 23 градуси та 071256 хвилин. Необхідно обчислити 071 256 хвилин/60. Далі (1187,6/10000) +23 = N23.11876. Те саме робимо з довготою і отримуємо:

N23.11876

E12.27406

Для Яндекс Карт потрібно ввести в рядок пошуку спочатку широту, а потім після пробілу довготу для Google Maps навпаки.