Подключение GPS-модуля ublox NEO-6M к Arduino
Хотите наделить свой Arduino способностью точно определять своё местоположение на планете? GPS-модуль NEO-6M может именно это — и даже больше.
Этот маленький, но мощный GPS-модуль идеально подходит для всевозможных увлекательных проектов, таких как отслеживание транспортных средств, логирование местоположений или даже отправка метеозонда в путешествие.
Что делает NEO-6M таким особенным? Он удивительно прост в использовании, потребляет мало энергии и не бьёт по карману. Именно поэтому он стал любимцем среди любителей электроники и DIY-энтузиастов.
В этом руководстве мы пошагово проведём вас через подключение модуля к Arduino, чтение данных GPS в реальном времени и понимание того, как всё это работает.
Готовы добавить отслеживание местоположения в ваш проект Arduino? Давайте начнём!
Как работает GPS?
GPS (Global Positioning System — Глобальная система позиционирования) — это спутниковая навигационная система, которая помогает вашему телефону или GPS-устройству определить, где именно вы находитесь на Земле.
В созвездии GPS находится не менее 24 специальных спутников, вращающихся вокруг Земли. Эти спутники постоянно передают радиосигналы на Землю. Каждый сигнал содержит два важных элемента информации: точное положение спутника в пространстве и точное время отправки сигнала.
Ваше GPS-устройство прослушивает эти сигналы от спутников. Когда устройство принимает сигнал, оно вычисляет, сколько времени потребовалось сигналу для перемещения от спутника к устройству. Поскольку радиоволны распространяются со скоростью света, устройство может использовать это время для определения расстояния до каждого спутника.
И вот здесь становится интересно! Зная расстояние от минимум трёх различных спутников, ваше GPS-устройство может точно определить ваше местоположение с помощью процесса, называемого трилатерацией. Представьте это так: каждое измерение расстояния создаёт воображаемую сферу вокруг каждого спутника. Ваше местоположение — это точная точка пересечения всех этих сфер.
В реальных GPS-системах обычно используется четвёртый спутник для ещё большей точности. Этот дополнительный спутник помогает исправить ошибки синхронизации внутренних часов вашего устройства. Даже микросекундные погрешности синхронизации могут сместить ваше местоположение на сотни метров! С четырьмя спутниками, работающими вместе, ваш GPS может определить не только где вы находитесь на карте (широту и долготу), но и вашу высоту — насколько высоко вы находитесь над уровнем моря.
Обзор оборудования
Микросхема NEO-6M GPS
В основе модуля лежит GPS-микросхема от U-blox — NEO-6M.
Эта мощная микросхема может отслеживать до 22 спутников и обрабатывать до 50 каналов слежения одновременно. Она достигает наивысшего в отрасли уровня чувствительности слежения (-161 дБм), что означает способность обнаруживать очень слабые спутниковые сигналы.
Микросхема обеспечивает достойную производительность с различным временем запуска в зависимости от состояния:
Холодный старт (когда нет сохранённых данных): около 27 секунд для определения местоположения
Тёплый старт (когда есть некоторые сохранённые данные): около 25 секунд
Горячий старт (когда модуль использовался недавно): всего около секунды, что означает быстрое определение местоположения после кратковременного отключения питания
Модуль обменивается данными с микроконтроллерами (такими как Arduino) по протоколу UART. Он поддерживает широкий диапазон скоростей связи от 4800 до 230400 бод, со значением по умолчанию 9600 бод.
Вот технические характеристики:
Тип приёмника |
50 каналов, GPS L1(1575,42 МГц) |
|---|---|
Точность горизонтального позиционирования |
2,5 м |
Частота обновления навигации |
1 Гц (максимум 5 Гц) |
Время захвата |
Холодный старт: 27 с, Горячий старт: 1 с |
Чувствительность навигации |
-161 дБм |
Протокол связи |
NMEA, UBX Binary, RTCM |
Скорость последовательного порта |
4800-230400 (по умолчанию 9600) |
Рабочая температура |
-40°C ~ 85°C |
Рабочее напряжение |
2,7 В ~ 3,6 В |
Рабочий ток |
45 мА |
Импеданс TXD/RXD |
510 Ом |
Для получения дополнительной информации обратитесь к техническому описанию ниже.
Светодиодный индикатор фиксации местоположения
На модуле есть маленький светодиод, показывающий состояние GPS:
Не мигает: модуль всё ещё ищет спутники
Мигает раз в секунду: местоположение зафиксировано (модуль видит достаточно спутников для определения вашего точного местоположения)
Источник питания
Микросхема NEO-6M требует напряжение от 2,7 до 3,6 В для работы. К счастью, модуль включает стабилизатор MICREL MIC5205 Ultra-Low Dropout 3,3 В. Более того, логические выводы модуля толерантны к 5 В, что означает возможность прямого подключения к Arduino или любому другому 5 В микроконтроллеру без необходимости преобразователя уровней.
Модуль потребляет около 45 мА тока при нормальной работе. Однако он также имеет функцию Power Save Mode (PSM), позволяющую отключать части микросхемы, когда они не нужны. В режиме PSM он может потреблять всего 11 мА, что делает его идеальным для устройств с батарейным питанием, таких как GPS-часы или трекеры.
Батарея и EEPROM
Модуль включает микросхему EEPROM HK24C32 объёмом 4 КБ и небольшую перезаряжаемую кнопочную батарею.
Вместе они помогают сохранять важную информацию: данные часов реального времени, последние известные позиции спутников и настройки конфигурации.
Эта сохранённая информация позволяет модулю выполнять «горячий старт» при перезагрузке. Без батареи GPS всегда выполняет «холодный старт», что занимает больше времени для первоначального определения местоположения.
Батарея заряжается автоматически при включении модуля и может хранить сохранённые данные около двух недель даже без питания.
Антенна
Для приёма спутниковых сигналов модуль поставляется с керамической патч-антенной.
Эту антенну можно легко присоединить к маленькому разъёму U.FL на модуле.
Эта антенна хорошо работает на открытом воздухе. Однако при использовании модуля в городских условиях (городских каньонах) или в помещении вы можете рассмотреть использование более мощной внешней активной GPS-антенны.
Распиновка GPS-модуля NEO-6M
GPS-модуль NEO-6M имеет четыре вывода:
GND — это вывод заземления.
TxD (Transmitter) — выход GPS-модуля, отправляющий последовательные данные (такие как NMEA-предложения). Он должен быть подключён к выводу RX (приём) вашего микроконтроллера.
RxD (Receiver) используется для приёма команд от микроконтроллера. Однако он необязателен и обычно не нужен для базовых функций GPS. Если вы хотите его использовать, подключите к выводу TX (передача) вашего микроконтроллера.
VCC обеспечивает питание модуля. Вы можете подключить его напрямую к выводу 5 В на Arduino.
Схема подключения GPS-модуля NEO-6M к Arduino
Теперь, когда мы понимаем, как работает GPS-модуль NEO-6M, давайте подключим его к Arduino.
Сначала проверьте модуль — обычно он поставляется с непаяными штыревыми выводами. Вам нужно будет припаять выводы, прежде чем подключать модуль к макетной плате или соединительным проводам.
Затем выполните подключение питания: подключите вывод VCC GPS-модуля к выводу 5 В, а вывод GND — к выводу GND на Arduino.
Как мы узнали, GPS-модуль NEO-6M обменивается данными по протоколу UART. На Arduino UNO обычно подключают устройства UART к выводам 0 и 1. Однако есть проблема — те же самые выводы используются при подключении Arduino к компьютеру (например, при загрузке кода или просмотре сообщений в мониторе последовательного порта).
Поскольку Arduino UNO имеет только один встроенный UART, нам нужно создать второй специально для нашего GPS-модуля. К счастью, есть простое решение! Мы можем использовать библиотеку SoftwareSerial. Эта библиотека позволяет превратить обычные цифровые выводы в дополнительные выводы UART-связи.
Для этого проекта мы будем использовать цифровые выводы 2 и 3 на Arduino. Подключите вывод TxD GPS-модуля к цифровому выводу 2, а вывод RxD — к цифровому выводу 3 на Arduino.
Наконец, не забудьте прикрепить керамическую патч-антенну к разъёму U.FL на GPS-модуле. Вы можете аккуратно провести тонкий кабель U.FL через одно из монтажных отверстий модуля для его фиксации.
В следующей таблице перечислены подключения выводов:
| NEO-6M GPS Module | Arduino | |
| VCC | 5V | |
| GND | GND | |
| Tx | 2 | |
| Rx | 3 |
Когда всё подключено, вы готовы к программированию!
Код Arduino — чтение данных GPS
Одна из замечательных особенностей GPS-приёмника NEO-6M в том, что он начинает отправлять данные о местоположении сразу после подачи питания. Не нужно нажимать кнопки или менять настройки. Код Arduino ниже просто считывает эти данные и отправляет их в монитор последовательного порта, чтобы вы могли видеть, что GPS-модуль сообщает в реальном времени.
#include <SoftwareSerial.h>
// Choose two Arduino pins to use for software serial
int RXPin = 2;
int TXPin = 3;
// Create a software serial port called "gpsSerial"
SoftwareSerial gpsSerial(RXPin, TXPin);
void setup() {
// Start the Arduino hardware serial port at 9600 baud
Serial.begin(9600);
// Start the software serial port at the GPS's default baud
gpsSerial.begin(9600);
}
void loop() {
// Displays information when a new sentence is available.
while (gpsSerial.available() > 0)
Serial.write(gpsSerial.read());
}
После загрузки кода на Arduino откройте монитор последовательного порта. Убедитесь, что скорость передачи данных установлена на 9600. Если всё подключено правильно и ваш модуль зафиксировал спутники, вы начнёте видеть поток данных на экране. Поначалу это может выглядеть немного странно — просто строки цифр и букв — но это на самом деле стандартные данные GPS в формате NMEA, о котором мы узнаем больше позже.
Объяснение кода
В самом начале кода мы подключаем библиотеку SoftwareSerial. Это важно, потому что обычные последовательные выводы Arduino (выводы 0 и 1) уже используются для связи с компьютером. Поэтому нам нужно второе последовательное соединение для связи с GPS-модулем. Библиотека SoftwareSerial позволяет использовать обычные выводы (например, выводы 2 и 3) для создания этого второго соединения.
#include <SoftwareSerial.h>
Затем мы выбираем два вывода Arduino — вывод 2 для приёма данных и вывод 3 для отправки — и создаём новое последовательное соединение с именем gpsSerial.
// Choose two Arduino pins to use for software serial
int RXPin = 2;
int TXPin = 3;
// Create a software serial port called "gpsSerial"
SoftwareSerial gpsSerial(RXPin, TXPin);
В секции setup() мы устанавливаем скорость как встроенного последовательного порта (используемого для монитора последовательного порта), так и нашего нового GPS-соединения на 9600 бод — это скорость по умолчанию, на которой GPS-модуль отправляет информацию.
void setup() {
// Start the Arduino hardware serial port at 9600 baud
Serial.begin(9600);
// Start the software serial port at the GPS's default baud
gpsSerial.begin(9600);
}
Внутри секции loop() код постоянно проверяет, отправил ли GPS-модуль новые данные. Если да, мы немедленно передаём эти данные в монитор последовательного порта. Эта конфигурация не пытается фильтровать или декодировать данные — она просто показывает вам точно то, что отправляет GPS-модуль.
void loop() {
// Displays information when a new sentence is available.
while (gpsSerial.available() > 0)
Serial.write(gpsSerial.read());
}
NMEA-предложения
Данные, которые вы видите в мониторе последовательного порта от GPS-модуля, приходят в форме NMEA-предложений.
NMEA расшифровывается как National Marine Electronics Association. Эта организация создала стандартный способ передачи GPS-устройствами важной информации: GPS-координат (широта, долгота, высота), скорости, времени и информации о спутниках.
Стандарт NMEA форматируется в строки данных, называемые предложениями. Каждое NMEA-предложение имеет определённую структуру:
Каждое предложение начинается со знака доллара ($)
Далее следует идентификатор, указывающий тип следующей информации (например, $GPRMC или $GPGGA)
Основная часть содержит список значений, разделённых запятыми
В конце предложения часто есть контрольная сумма (обозначенная звёздочкой *), помогающая проверить целостность данных
Ваш GPS-модуль отправляет эти предложения с регулярными интервалами, называемыми частотой обновления. NEO-6M обычно отправляет информацию раз в секунду (частота 1 Гц). Если вам нужны более частые обновления, вы можете настроить модуль на отправку информации до пяти раз в секунду (частота 5 Гц).
Разбор NMEA-предложений
Когда мы подключаем GPS-модули к микроконтроллерам вроде Arduino, им нужно «разобрать» NMEA-предложения. Разбор означает разделение сложного предложения на полезные фрагменты информации, которые мы можем использовать.
Существует много различных типов NMEA-предложений, но два наиболее важных:
$GPRMC: это предложение содержит основную информацию: время, дату, местоположение (широту и долготу), курс и скорость.
$GPGGA: это предложение содержит важную информацию о времени, местоположении, высоте и данных фиксации GPS-приёмника.
NMEA-предложение $GPRMC
Для лучшего понимания структуры NMEA-сообщений рассмотрим пример предложения $GPRMC:
$GPRMC, 123519, A, 4807.038, N, 01131.000, E,022.4, 084.4, 230394, 003.1, W*6A
$ |
Каждое NMEA-предложение начинается с символа $. |
|---|---|
GPRMC |
Global Positioning Recommended Minimum Coordinates |
123519 |
Текущее время в UTC (ччммсс) – 12:35:19 UTC |
A |
Статус: A = активный, V = недействительный |
4807.038 |
Широта 48 град 07,038′ с.ш. |
N |
Индикатор С/Ю: Север |
01131.000 |
Долгота 11 град 31,000′ |
E |
Индикатор В/З: Восток |
022.4 |
Скорость относительно земли в узлах |
084.4 |
Курс в градусах (истинный) |
230394 |
Текущая дата – 23 марта 1994 (ДДММГГ) |
003.1 |
Магнитное склонение в градусах |
W |
Направление магнитного склонения: Запад |
*6A |
Контрольная сумма (необязательна, используется для проверки целостности данных) |
NMEA-предложение $GPGGA
Теперь рассмотрим пример предложения $GPGGA:
$GPGGA, 123519, 4807.038, N, 01131.000, E, 1, 08, 0.9, 545.4, M, 46.9, M, , *47
$ |
Начало NMEA-предложения. |
|---|---|
GPGGA |
Global Positioning System Fix Data |
123519 |
Текущее время в UTC (ччммсс) – 12:35:19 UTC |
4807.038 |
Широта 48 град 07,038′ |
N |
Индикатор С/Ю: Север |
01131.000 |
Долгота 11 град 31,000′ |
E |
Индикатор В/З: Восток |
1 |
Качество фиксации: 0 = нет, 1 = GPS-фиксация, 2 = DGPS-фиксация |
08 |
Количество используемых спутников |
0.9 |
Горизонтальный геометрический фактор ухудшения точности (HDOP) |
545.4 |
Высота над средним уровнем моря |
M |
Единицы высоты (метры) |
46.9 |
Высота геоида над эллипсоидом WGS84 |
M |
Единицы разделения геоида (метры) |
(пустое поле) |
Время обновления DGPS (если есть) |
(пустое поле) |
ID базовой станции DGPS |
*47 |
Контрольная сумма (необязательна, используется для проверки целостности данных) |
Помимо этих базовых предложений, существует множество других типов NMEA-предложений, предоставляющих дополнительную или специализированную информацию. Если вам интересно узнать больше о других NMEA-предложениях, посетите gpsinformation.org.
Установка библиотеки
Хотя NMEA-предложения от GPS-модуля записаны в простом формате с разделением запятыми, разбор этих данных может быть сложным и трудоёмким. Чтобы упростить нашу задачу, мы можем использовать библиотеку, которая берёт на себя всю тяжёлую работу. Один из самых популярных и надёжных вариантов — библиотека TinyGPSPlus.
Эта библиотека помогает извлекать полезную информацию, такую как местоположение, дата, время, высота, скорость и направление, из GPS-модуля с помощью нескольких простых команд.
Для установки библиотеки:
Сначала откройте вашу программу Arduino IDE. Затем нажмите на иконку Менеджер библиотек на левой боковой панели.
Введите «tinygpsplus» в поле поиска для фильтрации результатов.
Найдите библиотеку TinyGPSPlus, созданную Mikal Hart.
Нажмите кнопку Install, чтобы добавить её в вашу Arduino IDE.
Код Arduino — использование библиотеки TinyGPSPlus
После установки библиотеки вы можете скопировать скетч ниже в вашу Arduino IDE.
Этот тестовый скетч считывает информацию от GPS-модуля и отображает ваше текущее местоположение (широту, долготу и высоту) и текущее время UTC (дату и время) в мониторе последовательного порта. Загрузите этот скетч на ваш Arduino, чтобы увидеть, как он работает, прежде чем мы объясним его подробно.
#include <TinyGPSPlus.h>
#include <SoftwareSerial.h>
// Choose two Arduino pins to use for software serial
int RXPin = 2;
int TXPin = 3;
// Create a TinyGPSPlus object
TinyGPSPlus gps;
// Create a software serial port called "gpsSerial"
SoftwareSerial gpsSerial(RXPin, TXPin);
void setup() {
// Start the Arduino hardware serial port at 9600 baud
Serial.begin(9600);
// Start the software serial port at the GPS's default baud
gpsSerial.begin(9600);
}
void loop() {
// This sketch displays information every time a new sentence is correctly encoded.
while (gpsSerial.available() > 0)
if (gps.encode(gpsSerial.read()))
displayInfo();
// If 5000 milliseconds pass and there are no characters coming in
// over the software serial port, show a "No GPS detected" error
if (millis() > 5000 && gps.charsProcessed() < 10) {
Serial.println("No GPS detected");
while (true)
;
}
}
void displayInfo() {
if (gps.location.isValid()) {
Serial.print("Latitude: ");
Serial.println(gps.location.lat(), 6);
Serial.print("Longitude: ");
Serial.println(gps.location.lng(), 6);
Serial.print("Altitude: ");
Serial.println(gps.altitude.meters());
} else {
Serial.println("Location: Not Available");
}
Serial.print("Date: ");
if (gps.date.isValid()) {
Serial.print(gps.date.month());
Serial.print("/");
Serial.print(gps.date.day());
Serial.print("/");
Serial.println(gps.date.year());
} else {
Serial.println("Not Available");
}
Serial.print("Time: ");
if (gps.time.isValid()) {
if (gps.time.hour() < 10) Serial.print(F("0"));
Serial.print(gps.time.hour());
Serial.print(":");
if (gps.time.minute() < 10) Serial.print(F("0"));
Serial.print(gps.time.minute());
Serial.print(":");
if (gps.time.second() < 10) Serial.print(F("0"));
Serial.print(gps.time.second());
Serial.print(".");
if (gps.time.centisecond() < 10) Serial.print(F("0"));
Serial.println(gps.time.centisecond());
} else {
Serial.println("Not Available");
}
Serial.println();
Serial.println();
delay(1000);
}
Вывод в мониторе последовательного порта выглядит так:
Объяснение кода
В начале кода мы подключаем две библиотеки: TinyGPSPlus и SoftwareSerial. Мы также указываем, какие выводы Arduino будут использоваться для связи с GPS-модулем. В данном случае мы используем вывод 2 для приёма данных (RX) и вывод 3 для отправки (TX).
#include <TinyGPSPlus.h>
#include <SoftwareSerial.h>
// Choose two Arduino pins to use for software serial
int RXPin = 2;
int TXPin = 3;
Далее мы создаём объект gps с помощью библиотеки TinyGPSPlus. Этот объект даёт нам доступ к встроенным функциям для извлечения данных о местоположении, времени и многом другом. Затем мы создаём программное последовательное соединение gpsSerial с использованием выбранных ранее выводов.
// Create a TinyGPSPlus object
TinyGPSPlus gps;
// Create a software serial port called "gpsSerial"
SoftwareSerial gpsSerial(RXPin, TXPin);
В секции setup() мы устанавливаем скорость как встроенного последовательного порта (используемого для монитора последовательного порта), так и нашего GPS-соединения на 9600 бод — скорость по умолчанию, на которой GPS-модуль отправляет информацию.
void setup() {
// Start the Arduino hardware serial port at 9600 baud
Serial.begin(9600);
// Start the software serial port at the GPS's default baud
gpsSerial.begin(9600);
}
В функции loop() мы непрерывно проверяем, отправляет ли GPS-модуль какие-либо данные. Как только полная строка данных получена и правильно декодирована, мы вызываем специальную функцию displayInfo() для отображения всей полезной информации на экране.
Также встроена проверка безопасности. Если в течение пяти секунд данные от GPS не поступают, Arduino выводит «No GPS detected», чтобы предупредить вас о возможной проблеме — например, плохом соединении или недостаточном количестве найденных спутников.
void loop() {
// This sketch displays information every time a new sentence is correctly encoded.
while (gpsSerial.available() > 0)
if (gps.encode(gpsSerial.read()))
displayInfo();
// If 5000 milliseconds pass and there are no characters coming in
// over the software serial port, show a "No GPS detected" error
if (millis() > 5000 && gps.charsProcessed() < 10) {
Serial.println("No GPS detected");
while (true)
;
}
}
Функция displayInfo() проверяет, является ли каждый фрагмент информации от GPS достоверным, прежде чем показывать его в мониторе последовательного порта.
Сначала она проверяет достоверность местоположения. Если оно достоверно, функция отображает широту, долготу и высоту. Если нет — показывает «Location: Not Available», сообщая, что GPS всё ещё ищет спутники.
if (gps.location.isValid()) {
Serial.print("Latitude: ");
Serial.println(gps.location.lat(), 6);
Serial.print("Longitude: ");
Serial.println(gps.location.lng(), 6);
Serial.print("Altitude: ");
Serial.println(gps.altitude.meters());
} else {
Serial.println("Location: Not Available");
}
Затем проверяется дата. Если GPS имеет достоверную дату, она отображается в формате месяц/день/год. Если дата ещё не доступна — показывается «Not Available».
Serial.print("Date: ");
if (gps.date.isValid()) {
Serial.print(gps.date.month());
Serial.print("/");
Serial.print(gps.date.day());
Serial.print("/");
Serial.println(gps.date.year());
} else {
Serial.println("Not Available");
}
Далее проверяется время. Если GPS имеет достоверное время, отображаются часы, минуты, секунды и сотые доли секунды в чётком, удобном для чтения формате. Если время ещё не получено — снова показывается «Not Available».
Serial.print("Time: ");
if (gps.time.isValid()) {
if (gps.time.hour() < 10) Serial.print(F("0"));
Serial.print(gps.time.hour());
Serial.print(":");
if (gps.time.minute() < 10) Serial.print(F("0"));
Serial.print(gps.time.minute());
Serial.print(":");
if (gps.time.second() < 10) Serial.print(F("0"));
Serial.print(gps.time.second());
Serial.print(".");
if (gps.time.centisecond() < 10) Serial.print(F("0"));
Serial.println(gps.time.centisecond());
} else {
Serial.println("Not Available");
}
После отображения всей информации код делает короткую паузу перед повторением процесса, давая монитору последовательного порта время обновиться новыми данными.
Другие полезные функции библиотеки TinyGPSPlus
Библиотека TinyGPSPlus имеет множество полезных функций, которые вы можете использовать с объектом TinyGPSPlus для получения различных типов GPS-данных. Ниже приведены некоторые наиболее часто используемые функции:
gps.speed.value(): возвращает текущую скорость относительно земли, измеренную в сотых долях узла. Например, значение 1234 означает скорость 12,34 узла.gps.course.value(): возвращает текущий курс движения или направление движения устройства. Также даётся в сотых долях градуса. Значение 12345 означает 123,45 градусов.gps.satellites.value(): показывает, сколько спутников GPS-модуль видит и использует для определения местоположения. Больше спутников обычно означает более точное позиционирование.gps.hdop.value(): возвращает горизонтальный геометрический фактор ухудшения точности (HDOP). Это число, показывающее, насколько точно определено ваше GPS-местоположение. Меньшие числа означают лучшую точность.gps.age(): показывает возраст данных — как давно GPS-модуль последний раз обновил информацию. Возраст указывается в миллисекундах. Если значение 1500 или более, это может означать потерю сигнала GPS (потеря фиксации).
Пользовательское извлечение данных
Если вы хотите извлечь информацию, не предоставляемую напрямую встроенными функциями TinyGPSPlus, библиотека также поддерживает пользовательское извлечение.
Вот как это сделать:
Вы указываете библиотеке, какое NMEA-предложение вас интересует и какой номер поля вы хотите извлечь.
Например, для получения магнитного склонения (показывающего разницу между истинным и магнитным севером) можно использовать такую строку кода:
TinyGPSCustom magneticVariation(gps, "GPRMC", 10);
Затем для получения значения используйте:
magneticVariation.value();
Программное обеспечение U-center
U-Center, разработанный u-blox, — это мощный и бесплатный программный инструмент для оценки, тестирования производительности и настройки GPS-приёмников u-blox, включая модуль NEO-6M. Однако это программное обеспечение доступно только для компьютеров с Windows.
U-Center предоставляет как структурированные данные в реальном времени, так и графические визуализации от вашего GPS-приёмника. Основные возможности включают:
Обзор спутников — показывает все видимые спутники и уровень сигнала
Обзор навигации — отображает текущее положение, статус фиксации и многое другое
Компас, спидометр, часы и высотомер — полезные инструменты для отслеживания местоположения и движения
Графики — позволяют строить графики любых двух выбранных параметров
Запись и воспроизведение данных — позволяет сохранять и просматривать сеансы GPS-данных
Вы можете скачать U-Center с официального сайта u-blox.
Подключение NEO-6M к U-center
Для использования U-Center с GPS-модулем NEO-6M необходимо сначала подключить модуль к ПК с помощью преобразователя USB-TTL.
На изображении ниже показан NEO-6M, подключённый к ПК через преобразователь PL2303 USB-TTL:
Использование U-center
После успешной установки U-Center вы можете открыть его, перейдя в: Пуск > Все программы > u-blox > u-center > u-center
После запуска программа будет выглядеть примерно так:
Затем найдите панель инструментов связи. Нажмите стрелку рядом со значком порта, чтобы увидеть список всех доступных COM-портов. Выберите порт, к которому подключён ваш GPS-приёмник.
Вы также можете нажать кнопку текстовой консоли для просмотра необработанных NMEA-предложений. Это показывает фактические ASCII-данные от GPS-модуля — очень полезно для быстрой проверки.
Ещё одна интересная возможность U-Center — отображение вашего GPS-положения на Google Maps, как в онлайн-, так и в офлайн-режиме.
Для получения более подробных инструкций и возможностей обратитесь к официальному руководству пользователя U-Center на сайте u-blox.