Neo 6m gps подключение

Neo 6m gps подключение

Работа с GPS-модулем на базе NEO-6M из Arduino

Существует немало GPS-модулей и шилдов для Arduino, но многие из них довольно недешевы. Если вам в вашем проекте по каким-то причинам нужен GPS, самым дешевым (не в ущерб качеству!) из известных мне вариантов будет модуль на базе чипа NEO-6M. На AliExpress такие модули продаются за 230 рублей (4 $) с учетом доставки в Россию. Давайте же попробуем разобраться, как с ними работать.

Примечание: Как правило, GPS не работает в доме. Чтобы поймать сигнал от спутников, с модулем нужно выйти на улицу или на балкон, или хотя бы положить его рядом с окном. Кроме того, GPS может плохо ловить в облачную погоду. Учтите также, что даже на открытом воздухе и в хорошую погоду при первом включении модулю может потребоваться несколько минут на инициализацию.

К Arduino модуль подключается не сложно, так как питается он от 5 В, а данные передает по UART на скорости 9600 бод. Когда модуль находит достаточное количество спутников для определения своего местоположения, он начинает мигать синим светодиодом и передавать по UART раз в секунду что-то вроде:

Тут на глаз несложно найти текущие координаты (5546.79229,N и 03749.47557,E), а также дату (170617) и время в UTC (160709). Цифры в конце строк после звездочки — это контрольные суммы. Стоит отметить, что если модуль еще не определил свои GPS-координаты, он передает по UART немного другие данные. Подробное описание того, как декодировать все эти данные можно найти в документе под названием U-blox 6 Receiver Description Including Protocol Specification [PDF].

Несмотря на то, что написать свой парсер достаточно просто, их написано и отлажено уже достаточно, чтобы не тратить на это свое время. Лично я воспользовался библиотекой TinyGPSPlus. Код прошивки:

const int DELAY = 100 ;
const int SWITCH_TIME = 5000 ;

LiquidCrystal_I2C lcd ( 0x3F , 16 , 2 ) ;
SoftwareSerial gps_serial ( A3, A2 ) ; /* RX, TX */
TinyGPSPlus gps_parser ;

void setup ( )
<
Serial. begin ( 9600 ) ;
gps_serial. begin ( 9600 ) ;
lcd. begin ( ) ;
>

String twoDigits ( int x ) <
if ( x 10 ) return "0" + String ( x ) ;
else return String ( x ) ;
>

int currentModeTime = 0 ;
bool showLocation = false ;

void loop ( ) <
while ( gps_serial. available ( ) > 0 ) <
char temp = gps_serial. read ( ) ;
Serial. write ( temp ) ;
gps_parser. encode ( temp ) ;
>

String lat = "Unknown " ;
String lng = "location " ;
if ( gps_parser. location . isValid ( ) ) <
lat = "Lat: " + String ( gps_parser. location . lat ( ) , 6 ) ;
lng = "Lng: " + String ( gps_parser. location . lng ( ) , 6 ) ;
>

String date = "Unknown date " ;
if ( gps_parser. date . isValid ( ) ) <
date = twoDigits ( gps_parser. date . day ( ) ) + "/" +
twoDigits ( gps_parser. date . month ( ) ) + "/" +
String ( gps_parser. date . year ( ) ) + " " ;
>

String time = "Unknown time " ;
if ( gps_parser. time . isValid ( ) ) <
time = twoDigits ( gps_parser. time . hour ( ) ) + ":" +
twoDigits ( gps_parser. time . minute ( ) ) + ":" +
twoDigits ( gps_parser. time . second ( ) ) + " UTC " ;
>

if ( showLocation ) <
lcd. setCursor ( 0 , 0 ) ;
lcd. print ( lat ) ;
lcd. setCursor ( 0 , 1 ) ;
lcd. print ( lng ) ;
> else < // show date and time
lcd. setCursor ( 0 , 0 ) ;
lcd. print ( date ) ;
lcd. setCursor ( 0 , 1 ) ;
lcd. print ( time ) ;
>

delay ( DELAY ) ;
currentModeTime + = DELAY ;
if ( currentModeTime >= SWITCH_TIME ) <
lcd. clear ( ) ;
showLocation = ! showLocation ;
currentModeTime = 0 ;
>
>

Соответствующее устройство в действии:

Работа с использованным здесь экранчиком ранее была подробно описана в заметке Об использовании экранчиков 1602 с I2C-адаптером.

В общем, к обычно, ничего супер сложного. Полную версию исходников к этой заметке ищите на GitHub. А с какими GPS-модулями вам доводилось работать?


В этой статье я расскажу про подключение 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 и локальный часовой пояс. После идентификатора сообщения следуют поля, содержащие значения параметров, в конце сообщения после символа “*” находится контрольная сумма. Поля разделяются запятыми, некоторые значения в полях могут отсутствовать, при этом запятые в сообщении не удаляются.

Читайте также:  Книга рецептов для мультиварки bork

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

Ниже приведен скриншот окна программы с сообщениями, полученными от GPS модуля.

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

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

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 минут
N N – северная, S – южная
06125.49498 Долгота: 061 градусов, 25.49498 минут
E E – восточная, 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 минут
N N – северная, S – южная
06125.49498 Долгота: 061 градусов, 25.49498 минут
E E – восточная, 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 минут
N N – северная, S – южная
06125.49498 Долгота: 061 градусов, 25.49498 минут
E E – восточная, W – западная
170840.00 Время UTC: 17ч. 08м. 40.00 сек.
A Статус достоверности: A – достоверные данные, V – недостоверные данные
*65 Контрольная сумма

Теперь рассмотрим подключение GPS модуля к микроконтроллеру, для вывода информации я решил использовать LCD дисплей Nokia 5110, так как буду выводить значительное количество символов. Ниже приведена схема подключения:

Микроконтроллер PIC16F628A и LCD дисплей питаются напряжением 3,3В, для того чтобы избежать согласования уровней между линиями ввода/вывода дисплея и микроконтроллера. Чтение сообщений с GPS приемника осуществляется встроенным в микроконтроллер модулем USART. Светодиод HL1 служит индикатором приема и мигает при получении сообщения GPRMC.

Читайте также:  Как сделать игровой автомат своими руками

GPS-модули позволяют вашему автономному устройству отслеживать свои координаты и параметры перемещения. Такая функциональность важна для всевозможных трекеров, умных ошейников и рюкзаков. В этой статье мы сделали попытку краткого обзора GPS-модулей и программ для работы с GPS на компьютере. Подключение к ардуино рассмотрено на примере наиболее популярного модуля NEO 6.0

Обзор программ для работы с GPS на компьютере

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

U-Center

Ссылка на скачивание – https://www.u-blox.com/en/product/u-center-windows

Программа u-center используется для работы с GNSS-проемниками от фирмы U-Blox. С помощью этого программного обеспечения можно тестировать точность позиционирования, изменять конфигурацию ресивера и проводить общую диагностику, обрабатывать полученные данные и отображать их в режиме реального времени. Координаты приемник получает с помощью GPS, ГЛОНАСС. Полученную информацию можно экспортировать и показывать в картах Google Maps, Google Earth. Программа позволяет создавать двухмерные диаграммы, гистограммы и другие виды графиков. u-center можно использовать при работе с несколькими приемниками.

Возможности программного обеспечения U-Center:

  • Работа с Windows;
  • Чтение NMEA , SiRF данных, UBX;
  • Вывод полученных данных в виде текста и графиков;
  • Запись данных, и воспроизведение;
  • Полное управление модулем GPS;
  • Возможность изменения конфигурации GPS-модуля;
  • Запись новой конфигурации в модуль;
  • Запись конфигурации в файл формата .txt;
  • Обновление прошивки модуля;
  • Возможность холодного, теплого и горячего старта модуля.

Программа позволяет оценивать работоспособность приемника, анализировать его быстродействие и устанавливать его настройки. Помимо U-Center могут использоваться и другие программы, например, Visual GPS, Time Tools GPS Clock и другие.

Visual GPS

Эта программа используется для отображения GPS данных по протоколу NMEA 0183 в графическом виде. Программа позволяет записывать лог GPS данных в файл. Существует два режима работы в программе – в первом Visual GPS связывается с приемником GPS, а во втором Visual GPS считывает показания NMEA из файла. Программа имеет 4 основных окна – Signal Quality (качество сигнала), Navigation (навигация), Survey (исследование), Azimuth and Elevation (азимут и высота).

Time Tools GPS Clock

Эта программа работает на Windows и любых рабочих станциях, она проверяет время со стандартного приемника времени NMEA GPS, который подключен к компьютеру, и позволяет синхронизировать время на ПК. Отображается информация о времени, дате, состоянии GPS, полученная от приемника. Недостатком программы является невозможность высокоточного определения времени, так как GPS-устройства не имеют секундного импульса для последовательного порта компьютера.

GPS TrimbleStudio

Ссылка на скачивание http://softwaretopic.informer.com/trimble-gps-studio/

Программное обеспечение используется для работы с приемником Copernicus в Windows. Программа отображает принимаемые навигационные данные. Полученные координаты можно отобрать на картах Google Maps, Microsoft Visual Earth. Все установленные настройки приемника можно сохранить в конфигурационном файле

Fugawi

Ссылка на скачивание http://www.fugawi.com/web/products/fugawi_global_navigator.htm

Программа используется для планирования маршрута, GPS навигации в реальном времени. Программа позволяет записывать и сохранять маршруты и путевые точки на картах. Навигация производится как на суше, так и на воде и в воздухе. В программе используются различные виды цифровых карт – топографические карты, стандарты NOAA RNC, отсканированные копии бумажных карт, Fugawi Street Maps.

3D World Map

Ссылка на скачивание www.3dwamp.com

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

Обзор GPS-модулей для Ардуино

Для работы с Ардуино существует большое количество различных GPS-модулей. С их помощью можно определять точное местоположение (географические координаты, высота над уровнем моря), скорость перемещения, дату, время.

Модуль EM-411. Устройство создано на базе высокопроизводительного чипа SiRF Star III, который обладает низким потреблением энергии. Модуль имеет большой объем памяти для сохранения данных альманаха, поддерживает стандартный протокол NMEA 0183. Время холодного старта составляет около 45 секунд.

VK2828U7G5LF. Этот модуль построен на базе чипа Ublox UBX-G7020-KT. С его помощью можно получать координаты по GPS и ГЛОНАСС. В приемнике имеется встроенная память, в которую можно сохранять настройки. Модуль оснащен встроенной керамической антенной, работает по протоколу NMEA 0183. Напряжение питания модуля 3,3-5В.

SKM53 GPS. Один из самых дешевых модулей, обладающий низким потреблением тока. Время холодного запуска примерно 36 секунд, горячего – 1 секунда. Для позиционирования используются 66 каналов, для слежения 22 канала. В модуле имеется встроенная GPS антенна, устройство обеспечивает высокую производительность навигации при различных условиях видимости.

Читайте также:  Кран на трубе в каком положении закрыт

Neo-6M GPS. Приемник производится компанией u-blox. В этом модуле используются новейшие технологии для получения точной информации о местоположении. Напряжение питания модуля 3-5В. Линейка устройств представлена типами G, Q, M, P, V и T со своими уникальными характеристиками. Время холодного старта около 27 секунд.

locosys 1513. Этот модуль поддерживает работу с GPS, ГЛОНАСС, Galileo, QZSS, SBAS. Базируется на чипе MediaTek MT333, который обладает низким энергопотреблением, высокой чувствительностью и стабильной работой в различных условиях. В приемнике имеется поддержка текстового протокола управления. Время холодного старта примерно 38 секунд.

Arduino GPS модуль GY-NEO6MV2

Модуль использует стандартный протокол NMEA 0183 для связи с GPS приемниками. Приемник представляет собой плату, на которой располагаются модуль NEO-6M-0-001, стабилизатор напряжения, энергонезависимая память, светодиод и аккумулятор.

Технические характеристики модуля:

  • Напряжение питания 3,3-5В;
  • Интерфейс UART 9600 8N1 3.3V;
  • Протокол NMEA;
  • Вес модуля 18 гр.;
  • Наличие EEPROM для сохранения настроек;
  • Наличие встроенной батареи;
  • Возможность подключения антенны к разъему U-FL;
  • Время холодного старта примерно 27 секунд, время горячего старта – 1 секунда;
  • Наличие более 50 каналов позиционирования;
  • Частота обновления 5 Гц;
  • Рабочие температуры от -40С до 85С.

Модуль широко используется для коптеров, определения текущего положения малоподвижных объектов и транспортных средств. Полученные координаты можно загрузить в карты Google Maps, Google Earth и другие.

После холодного старта модуля начинается скачивание альманаха. Время загрузки – не более 15 минут, в зависимости от условий и количество спутников в зоне видимости.

Распиновка: GND (земля), RX (вход для данных UART), TX (выход для данных UART), Vcc – питание от 3,3В до 5 В.

Для подключения потребуются модуль GY-NEO6MV2, плата Ардуино, провода, антенна GPS. Соединение контактов: VCC к 5V, GND к GND, RX к 9 пину на Ардуино, TX к 10 пину. Затем Ардуино нужно подключить к компьютеру через USB.

Для работы потребуется подключить несколько библиотек. SoftwareSerial – требуется для расширения аппаратных функций устройства и обработки задачи последовательной связи. Библиотека TinyGPS используется для преобразования сообщений NMEA в удобный для чтения формат.

Проверка работы через программу U-Center

Как упоминалось выше, модуль производится компанией u-blox, поэтому для настройки приемника используется программа U-Center.

При подключении к UART приемник отправляет сообщения при помощи протокола NMEA раз в секунду. С помощью программы можно настраивать передаваемые сообщения.

Чтобы настроить модуль, нужно подключить его через USB-UART(COM-UART) преобразователь. Настроить подключение можно с помощью меню Receiver-Port . Как только будет установлено соединение, загорится зеленый индикатор. Приемник начнет устанавливать соединения со спутниками, после чего на экране появятся текущие координаты, время и другая информация. Все сообщения появляются в окне Messages. В меню View – Messages можно выбрать сообщения, которые будут передаваться к микроконтроллеру. В зависимости от поставленной задачи, можно уменьшить количество отправляемых сообщений, что увеличит скорость обработки данных и облегчит алгоритм разбора сообщений контроллером.

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

Посмотреть передающиеся данные можно через меню View.

Все сообщения начинаются символом $, следующие за ним символы – идентификаторы сообщения. GP- это глобальная система, следующие 3 буквы показывают, какая информация содержится.

RMC – наименьшая навигационная информация (время, дата, координаты, скорость, направление).

GGA – зафиксированная информация позиционирования. Записаны время, координаты, высота, статус определения местоположения, количество спутников.

Проверка работы через Arduino IDE

Работать с модулем можно также через стандартную среду разработки Arduino IDE. После подключения модуля к плате, нужно загрузить скетч и посмотреть на результат. Если на мониторе появится бессвязный набор знаков, нужно отрегулировать скорость интерфейса Ардуино с компьютером и скорость интерфейса модуля с контроллером.

Скетч для вывода данных о местоположении.

После того, как код будет залит, нужно подождать несколько секунд (время холодного старта), чтобы устройство смогло определить местоположение и начать показывать координаты. Как только устройство начнет свою работу, на плате будет мигать светодиод.

В мониторе порта появятся данные широты и долготы. Также будет получено значение текущей даты и времени по Гринвичу. Установить свой часовой пояс можно вручную – это делается в строке Serial.print(static_cast(hour+8));

Заключение

Как видим, для начал работы с GPS не требуется каких-то совсем уж сложных манипуляций. На помощь приходят готовые модули или шилды, взаимодействующие с Arduino через UART. Для облегчения написания скетчей можно использовать готовые библиотеки. Кроме того, любой GPS-модуль можно протестировать без Ардуино, подключив к компьютеру и воспользовавшись специальным софтом. Обзор наиболее популярных программ мы привели в этой статье.

Ссылка на основную публикацию
Lenovo yoga 330 11igm обзор
Несмотря на некоторые недостатки дисплея, например, недостаточную шахматную контрастность, маленький и долгоиграющий ноутбук Lenovo Yoga 330-11IGM может стать идеальным дорожным...
Honor view 10 dns
Команда DNS сообщает о начале акции – «Купи смартфоны Honor с дополнительными аксессуарами – получи скидку 4000 рублей!» Давно задумываетесь...
Hover в css что это
Internet Explorer Chrome Opera Safari Firefox Android iOS 6.0+ 8.0+ 1.0+ 4.0+ 1.0+ 1.0+ Краткая информация Применяется Не определено Ссылка...
Lenovo как зайти в boot menu
Boot Menu (меню загрузки) можно вызывать при включении на большинстве ноутбуков и компьютеров, данное меню является опцией BIOS или UEFI...
Adblock detector