1. Главная страница » Компьютеры »

Gy neo6mv2 neo 6m

Автор: | 16.12.2019

Gy neo6mv2 neo 6m

Здравствуйте. В этой статье я расскажу Вам о своем опыте подключения к Arduino GPS-модуля, о том с какими проблемами я при этом столкнулся и как эти проблемы были решены.

GPS-модуль интересен не только тем, что определяет координаты, высоту над уровнем моря, время по Гринвичу, ряд других географических параметров Вашего местоположения. Когда у меня получилось установить связь с модулем, я был рад, в первую очередь тому, что установил связь с космосом. Спутники GPS движутся по геостационарной орбите – а это катастрофически высоко – почти 36 000 км.

Итак, у меня есть GPS-модуль GY- neo6mv2. Существует библиотека для работы с этим модулем, прямая ссылка на библиотеку есть в конце статьи. Ставлю библиотеку, открываю стандартный скетч для тестирования модуля, который шел в комплекте с библиотекой. Логично предположить, что он готов к работе. Подключаю свой GPS-модуль к Arduino по рекомендуемой схеме.

Gy neo6mv2 neo 6m

Загружаю скетч в контроллер, смотрю на результат. Видно, что монитор последовательного порта предлагает к прочтению бессвязный набор символов.

Gy neo6mv2 neo 6m

Редактирую стандартный скетч. Выставляю в коде скетча скорость интерфейса Arduino с ПК 9600 бод. Пробую снова. Теперь набор символов осмысленный, но не видно данных с самого модуля.

Gy neo6mv2 neo 6m

Снова редактирую скетч. Теперь выставляю скорость интерфейса модуля с контроллером – тоже 9600 бод. После нового компилирования и загрузки видно, что данные с модуля всё-таки начали поступать.

Gy neo6mv2 neo 6m

Полученной связью как-то нужно воспользоваться. Подключим дисплей, и выведем на него значение координат своей локации.

Gy neo6mv2 neo 6m

В этот же стандартный скетч в четырех местах вставляю дополнительный код, для инициализации дисплея и вывода на дисплей нужных данных.

Gy neo6mv2 neo 6m

Когда я искал информацию по этому устройству, нашел несколько роликов, где автор залил в контроллер неработающий стандартный скетч, увидел в мониторе звездочки, и на этом, почему – то, успокоился. Я постарался построить изложение так, чтобы этого было достаточно для успешного запуска модуля.

Gy neo6mv2 neo 6m
В этой статье я расскажу про подключение GPS приемника к микроконтроллеру, на примере модуля u-blox GY-NEO6MV2. Приемник представляет из себя небольшую плату на которой расположены модуль NEO-6M-0-001, стабилизатор напряжения 3.3В, EEPROM память, аккумулятор и светодиод. Модуль продается вместе с активной антенной квадратной формы. Как и все GPS приемники, для передачи данных, модуль использует широко распространенный интерфейс UART, что облегчает его сопряжение с микроконтроллером.

Связь с GPS приемниками осуществляется по протоколу NMEA 0183, это текстовый стандарт связи, использующийся в морском (навигационном) оборудовании. Протокол NMEA 0183 включает в себя множество различных сообщений и команд, я рассмотрю несколько основных сообщений, связанных с глобальной системой позиционирования.

Модуль можно приобрести здесь , есть более дешевый вариант собранный на красной плате с маленькой антенной, можно заказать тут .

По стандарту NMEA все сообщения начинаются с символа “$” и заканчиваются спецсимволами – возврат каретки (шестнадцатеричное значение 0x0D) и – перевод строки (шестнадцатеричное значение 0x0A). Первые два символа после “$” являются идентификатором системы, следующие три символа – идентификатор сообщения, например $GPZDA, где GP – глобальная система позиционирования, ZDA – означает, что сообщение содержит информацию о дате по UTC и локальный часовой пояс. После идентификатора сообщения следуют поля, содержащие значения параметров, в конце сообщения после символа “*” находится контрольная сумма. Поля разделяются запятыми, некоторые значения в полях могут отсутствовать, при этом запятые в сообщении не удаляются.

Для того чтобы увидеть сообщения которые выдает GPS модуль, я подключил его к компьютеру через USB-UART преобразователь на чипе PL2303. Для подключения использовал только один вывод на GPS модуле, выход передатчика TX, так как отправлять команды на модуль я не буду, только принимать сообщения. В качестве терминальной программы использовал Terminal v1.9b by Bray. По умолчанию модуль настроен на скорость 9600 бит/сек, в программе необходимо установить следующие настройки: 8 бит данных, без проверки четности, один стоповый бит, управление потоком отключаем.

Ниже приведен скриншот окна программы с сообщениями, полученными от GPS модуля.
Gy neo6mv2 neo 6m
В зависимости от количества видимых спутников, данный модуль выдает от 6 до 8 сообщений, которые обновляются каждую секунду (стандартное время для большинства приемников). При достаточном количестве спутников и устойчивом сигнале на модуле начинает мигать светодиод.

Читайте также:  Jlh 1969 класс усилитель схема

Информация о координатах местоположения, времени и скорости в разных сообщениях могут дублироваться. Рассмотрим назначение полей каждого сообщения:

RMC – минимальная рекомендуемая навигационная информация, содержит информацию о времени, дате, координатах местоположения, скорости и направлении курса.

$GPRMC,170840.00,A,5509.68339,N,06125.49498,E,0.204,,311015. A*7D
170840.00Время UTC: 17ч. 08м. 40.00 сек.
AСтатус достоверности: A – достоверные данные, V – недостоверные данные
5509.68339Широта: 55 градусов, 09.68339 минут
NN – северная, S – южная
06125.49498Долгота: 061 градусов, 25.49498 минут
EE – восточная, W – западная
0.204Горизонтальная скорость (узлов в час)
Направление курса относительно истинного севера (градусы)
311015Дата: 31 октября 2015 года
Магнитное склонение (градусы)
Направление склонения: E – восточное, W – западное
AРежим: A – автономный, D – дифференциальный, E – аппроксимация, N – недостоверные данные
*7DКонтрольная сумма

VTG – текущее направление курса и скорость относительно Земли.

$GPVTG,,T,,M,0.204,N,0.378,K,A*29
­­­–Направление курса (градусы)
TКурс относительно истинного севера
Направление курса (градусы)
MКурс относительно магнитного севера
0.204Горизонтальная скорость
NЕдиница измерения скорости (узлов в час)
0.378Горизонтальная скорость
KЕдиница измерения скорости (километров в час)
AНеизвестный параметр
*29Контрольная сумма

GGA – зафиксированные данные глобальной системы позиционирования, содержит информацию о времени, координатах местоположения, высоте, статусе определения координат, количестве использованных спутников.

$GPGGA,170840.00,5509.68339,N,06125.49498,E,1,07,2.41,186.2,M,-13.5,M,,*77
170840.00Время UTC: 17ч. 08м. 40.00 сек.
5509.68339Широта: 55 градусов, 09.68339 минут
NN – северная, S – южная
06125.49498Долгота: 061 градусов, 25.49498 минут
EE – восточная, W – западная
1Статус определения координат: 0 – позиция не определена, 1 – позиция определена, 2- позиция определена с повышенной точностью (DGPS)
07Количество использованных спутников
2.41Снижение точности в горизонтальной плоскости (HDOP)
186.2Высота над уровнем моря
MЕдиница измерения высоты (метры)
-13.5Геоидальное различие — различие между земным эллипсоидом WGS-84 и уровнем моря (геоидом)
MЕдиница измерения геоидального различия (метры)
Время с момента последнего обновления DGPS (секунды), 0 – DGPS не используется
*77Контрольная сумма

GSA – Уровень точности определения координат и активные спутники, содержит информацию о режиме работы, спутниках, снижении точности в различных плоскостях.

$GPGSA,A,3,06,29,23,26,02,09,31. 3.48,2.41,2.51*0D
AРежим 1: М – ручной 2D или 3D, A – автоматический 2D-разрешено переключение 2D/3D
3Режим 2: 1 – позиция не определена, 2 – 2D позиция определена, высота не определена, 3 – 3D позиция и высота определена
06Идентификатор 1-го спутника использованного для определения координат
29Идентификатор 2-го спутника использованного для определения координат
……
­–Идентификатор 12-го спутника использованного для определения координат
3.48Снижение точности по местоположению (PDOP)
2.41Снижение точности в горизонтальной плоскости (HDOP)
2.51Снижение точности в вертикальной плоскости (VDOP)
*0DКонтрольная сумма

GSV – Информация о видимых спутниках, содержит число видимых спутников, их идентификаторы, высота, азимут, уровень сигнала.

$GPGSV,3,1,11,02,13,325,27,03,34,182,17,06,19,287,23,07,15,237,15*70
3Количество сообщений GSV, (от 1 до 3), зависит от количества видимых спутников
1Порядковый номер сообщения, (от 1 до 3)
11Количество видимых спутников
02Идентификатор спутника
13Высота спутника (градусы)
325Азимут спутника (градусы)
27Уровень сигнала, отношение сигнал/шум от 00 до 99 дБ, 0 – нет сигнала.
03,34,182,17То же самое для 2-го спутника
06,19,287,23То же самое для 3-го спутника
07,15,237,15То же самое для 4-го спутника
*70Контрольная сумма

GLL – географическая позиция – широта/долгота, содержит информацию о времени, координатах местоположения.

$GPGLL,5509.68339,N,06125.49498,E,170840.00,A,A*65
5509.68339Широта: 55 градусов, 09.68339 минут
NN – северная, S – южная
06125.49498Долгота: 061 градусов, 25.49498 минут
EE – восточная, W – западная
170840.00Время UTC: 17ч. 08м. 40.00 сек.
AСтатус достоверности: A – достоверные данные, V – недостоверные данные
*65Контрольная сумма

Теперь рассмотрим подключение GPS модуля к микроконтроллеру, для вывода информации я решил использовать LCD дисплей Nokia 5110, так как буду выводить значительное количество символов. Ниже приведена схема подключения:
Gy neo6mv2 neo 6m
Микроконтроллер PIC16F628A и LCD дисплей питаются напряжением 3,3В, для того чтобы избежать согласования уровней между линиями ввода/вывода дисплея и микроконтроллера. Чтение сообщений с GPS приемника осуществляется встроенным в микроконтроллер модулем USART. Светодиод HL1 служит индикатором приема и мигает при получении сообщения GPRMC.

Gy neo6mv2 neo 6m

  • Цена: $10.00
  • Перейти в магазин

Данная плата содержит на себе GPS-модуль NEO-6M от u-blox и была приобретена пару месяцев назад с целью создания GPS-логгера своими руками.

В статье описывается «комплект» с модулем, программа u-center, немного USB-to-TTL-адаптер CH340G, а также проводится срвнение записи трека.

Читайте также:  Linux как найти файл по имени

В «комплект» входит: сам модуль u-blox NEO-6M, стабилизатор напряжения (чтоб можно было питат от 5В) и активная керамическая антенна. ИМХО, реальная цена раза в два ниже, поскольку есть более дешевый конкурент — VK172 ($8.58) — с поддержкой ГЛОНАСС и USB-интерфейсом — $8.58, например. Может, и в нём есть UART, но его я в руках не держал.
Антенна телепается на тонком на экранированном кабеле длинной 2.5 см. Сильно телепать ею не стоит: за два дня телепаний у меня нарушился контакт экрана кабеля с землей антенны — и спутники перестали ловиться. Пришлось её разбирать и восстанавливать контакт экрана. Разбирается активная антенна при помощи паяльника ватт на 40-60, снимаем припой лёгкими прикосновениями к краям металлической крышки, одновременно подковыривая её:
Gy neo6mv2 neo 6m(фото сделано через пару месяцев, взято из из этого обзора).

Практика показала, что, несмотря на металлическую пластину с обратной стороны, положение антенны в пространстве на точность определения позиции слабо влияет. Близкое расположение домов, и низкая скорость, как мне показалось, сильнее снижает точность. Если стоять на одном месте, начинают появляться точки на 5-30 метров от реальной позиции.

В описании сказано.

А ничего там не сказано, продавец снимает с себя всю ответственность =)
Модуль NEO-6M питается от напряжения 3.3В, он может выйти из строя при подключении к большему напряжению или некорректно работать при меньшем, но здесь имеется стабилизатор — и питать можно от 5В. Также, есть энергонезависимая память и батарейка:
Gy neo6mv2 neo 6mСветодиод — зелёный, по умолчанию «мигает при 3D-виксации», настроить его поведение можно из приложения u-ctnter.
Пробовал подключать к 3.3В — вместо нужных данных, выдает текстовые сообщения с какой-то информацией, думаю, мощности не хватает. Вывод контактов J1 состоит из:
GND — минуса питания,
TX — линии передачи данных (от модуля),
RX — линии приёма данных (модулем),
VCC — плюса питания (5В).

Из всех особенностей UART для взаимодействия с данным модулем нужно знать только одну — скорость работы, у меня она установлена в 9600 бод. Из коробки пакетика, модуль, когда поймает, выдает такую информацию:

Это — текстовые сообщения протокола NMEA, подробнее о них можно почитать в Википедии, они могут немного отличаться от задокументированных.
По сути, этот модуль — микроконтроллер, который анализирует данные со спутников и производит действия, заданные в его настройках — не только выводит текущее положение… Есть подозрение, что он может вести объект по заданному маршруту (по треку, сохранённому в его памяти). Такие модули используют любители квадрокоптеров, они должны знать о нём больше.

CH340

Подключить GPS-модуль к компьютеру (или планшету) через USB можно с помощью USB to TTL модуля CH340 ($0.60) — это переходник USB-UART с возможностью выбора напряжения питания: 3.3 или 5В.
Gy neo6mv2 neo 6mС верхней стороны, имеются три светодиода: питания — красный и два одинаковых синих, мигающих в унисон передаче или приёма данных… Так как цвета светодидов одинаковы, отличить передачу от приёма можно, разве что, выучив их расположение =)
С торца имеются следующие контакты:
первые три контакта — вывод плюса питания: ненужный соединяется с VCC, нужный — со входом питания устройства;
TXD — линия передачи данных (от компьютера к внешнему устройству);
RXD — линия приёма данных (от устройства);
GND — минус питания.

Таким образом, для подключения GPS-модуля к компьютеру, нужно соединить: RX с TXD; TX с RXD; GND с GND; VCC с 5V,
затем вставить USB в компьютер. После подключения к компьютеру и установки драйверов (кажется, сами ставятся), появляется виртуальный COM-порт, при подключении к новому USB-порту, создается еще один COM-порт…
После установки драйверов запускаем программу, указываем скорость обмена данными и выбираем в нужный COM-порт:
Gy neo6mv2 neo 6m
Показано на примере программы разработчика GPS-модуля, но в любой другой программе работы с COM-портом, будет то же самое. Если после сопряжения устройств ожидаемых данных не появляется (в терминале), то можно попробовать изменить скорость порта: вдруг мы забыли ее правильно вставить.
После работы — сначала в программе отключиться от пота, затем выдернуть USB; имхо, так более безопасно. Если ошибаюсь, — поправьте; также, могу слишком подробно описывать очевидные вещи, но я хотел бы изъясняться максимально понятно для минимально осведомлённого читателя.

Читайте также:  Intel cmd n3050 boxnuc5cpyh 940289

Этим же модулем можно «прошивать» и популярный микроконтроллер Arduino.
Вообще-то, можно было на один из компьютерных COM-портов или на LPT-порт резисторов напаять и не покупать модуль… Но его еще можно к планшету с OTG подключать! Кстати, не всякая программа поддерживает данный адаптер; я успешно мониторил порт пргграммой UsbTerminal,
если скорость низкая (выбранного бодрейта недостаточно для объемов передачи данных), плохой контакт или неправильно настроены биты чётности, то будут теряться части строк;
если же бодрейт на двух устройствах не одинаков, то будут выводиться либо «крякозябрики», либо вообще не будет виден никакой вывод…

u-center

Разработчик модуля предоставляет специализированную программу для работы с ним, скачать её и другие программы можно бесплатно с официального сайта — www.u-blox.com/en/evaluation-software-and-tools — однако, их использование требует не только понимания английского, но и знания предметной области.

Посмотреть на передающиеся данные, можно открыв одну из консолей, или все вместе:
Gy neo6mv2 neo 6mчерез меню, иконку или нажав соответствующий хоткей.
Gy neo6mv2 neo 6m
Настройки сообщений, GPS-модуля находятся в окне View -> Messages, иконкой или по F9:
Gy neo6mv2 neo 6m
Когда приходит то или иное сообщение, подсвечивается соответствующая ветка, из меню этого дерева можно отключать или подключать ненужные сообщения. Стоит отметить, что интерфейс программы рассчитан на множество разных модулей и некоторые функции не будут работать с нашим, например, даже если мы разрешим сообщения GLRMC, они не будут приходить, так как модуль не поддерживает ГЛОНАСС. Особо продвинутые отключают все NMEA-, подключают нужные UBX-сообщения — и экономят на этом гигабиты трафика и километры строк кода!

Кстати, у автора видео такой же модуль. Как видно из того же видео, можно настроить скорость работы GPS-модуля из окна
UBX -> CFG -> PRT:
Gy neo6mv2 neo 6m
А из UBX -> CFG -> RATE, путем подбора Measurement Period выставляется значение Navigation Frequency — на сколько я понял, это частота, с которой данные приходят в порт, если выставить 0.5 Гц, то порция данных будет отправляться нам по порту раз в две секунды.
Gy neo6mv2 neo 6m
Если нужно сохранить текущую конфигурацию устройства, выбираем из меню Receiver -> Action -> Save Config, после чего можно проверить, сохранилась ли конфигурация, отключив его (USB) и подключив обратно.

Там имеется еще много всякоразных настроек, как то частота кварцевого резонатора или энергосбережение; я еще не разбираюсь в них на столько, чтобы кому-то рассказывать. К сожалению, на русском я не нашел подробного описания настроек, применимого к реальным задачам. Но для их понимания можно прочесть документацию и подумать, как ими пользоваться.

Тест в реальных условиях

Подключив данный GPS-модуль и MicroSD-карту к Arduino Promini, я собрал GPS-логгер:
Gy neo6mv2 neo 6m
Положил его в сумку вместе с планшетом Asus MemoPad 7, запустил запись трека и прокатился на велике по району, по пути выехал к огородом, где нет домов, затем вернулся обратно, сделав круг и заехал в пару дворов.
Gy neo6mv2 neo 6mБелым пунктиром отмечен путь, который не зафиксировал ни модуль, ни планшет; синяя линия — планшет, красная — модуль.
Постояв минуты три, мне надоело ждать, когда GPS на планшете стартанёт — и я поехал в огороды, вернувшись обратно, достал планшет, посмотрел, как там дела — и трек на нём начал записываться с этого места.

Оцениваю работу данного модуля по записи велотрека как достойную замену телефонного, главным образом, потому что он стартует быстрее; однако его поведение при стационарном положении меня немного пугает. Трек с него был получен путем конвертирования упомянутых выше NMEA-сообщений в GPX-файл посредством команды:

-x discard,hdop=1.2 — фильтр по hdop, теоретически, чем меньше величина — тем больше менее достоверных точек удаляется из трека; практически же, если поставить в 1, — удалятся все позиции.
За время поездки (20 минут), аккумулятор пятилетней давности BL-5CP (телефона Nokia 1616), от которого питается микроконтроллер, записывающий лог, разрядился с 4.10 до 3.97В. Ток GPS-модуля при старте, если верить дешёвому мультиметру DT832, составляет 70мА.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *