Меню

Датчики gps для ардуино

NEO 6M GPS модуль подключение к Ардуино

GPS модуль NEO-6MV2.
Как определить свои координаты, узнать скорость и направление движения.
Сколько километров до точки назначения. Найти стороны света используя компас.
Всё это можно узнать, подключив GPS модуль NEO-6M к Ардуино.
И всё это абсолютно бесплатно не используя интернет.

Посмотрев это видео вы узнаете как получать.
Свои координаты, скорость движения, дату и время, количество спутников, направление частей света.
Узнаем сколько километров до пункта назначения, а конкретно до моей дачи и в каком направлении двигаться. И всё это без подключения к интернету, то есть абсолютно бесплатно.
Я расскажу, как подключить GPS модуль NEO-6M. Это конечно не самый лучший датчик, но он довольно точен и главное не дорогой.
Сначала мы просто проверим, работает ли он.
А в конце видео я расскажу с какими проблемами мне пришлось столкнуться и как я их решил.

Сначала выведем данные в программу U-CENTER.
Для этого вам надо скачать программу от разработчика чипа U-BLOX на котором и создан этот модуль.
Вот ссылка на их сайт

Программа u-center

Эта программа визуально показывает ваши координаты и месторасположение на карте, какие спутники найдены, определение частей света, часы, скорость и качество приёма сигналов от спутников. И многое другое.
Здесь так же можно, настраивать датчик, прошивать и сбрасывать до заводских настроек.
Я особо не вникал в эту программу, и если у вас появится интерес, то я могу изучить её и сделать про неё дополнительное видео.
Вам не обязательно устанавливать программу. Можно сразу подключить к Ардуино и получать все данные. Но для общего понимания лучше посмотреть, хотя бы на этом видео.

GPS модуль можно подключить с помощью переходника USB-UART или с помощью обычной Ардуино.
Я подключу вторым способом. Для этого сначала надо загрузить в Ардуино пустой скетч.
Затем подключить модуль так.
Контакты TX на датчике соединить с TX на Ардуино, а контакты RX на датчике соединить с RX на Ардуино.
То есть прямое подключение.

Теперь в программе выбираем порт на котором подключена Ардуино и выбираем скорость 9600 бод.
В эту программу также можно загружать данные из модуля и смотреть маршрут вашего передвижения.

Схема подключения, она очень простая, и на ней осталось много пустого места, но я надеюсь, что в следующих видео эта пустота будет заполнена.
Для работы нам понадобится библиотека SoftwareSerial.
В Ардуино реализована аппаратная поддержка интерфейса последовательной передачи данных через выводы 0 и 1 (которые также используются для связи с компьютером по USB). А так как мы хотим смотреть в мониторе порта, что у нас происходит в модуле, то нам надо подключить его к программному порту UART.
Вот это как раз и обеспечивает эта библиотека. Позволяя почти любые цифровые выводы работать как последовательный порт.
Я использовал выводы D10, D11.

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

Я вывел ряд параметров которые как мне показалось будут вам интересны.
Здесь можно указать координаты места назначения и модуль будет показывать расстояние и направление на него. Я указал координаты своей дачи. Напишите как далеко вы находитесь от этих координат.
Посмотрим, кто живёт дальше всех, а кто ближе.

Читайте также:  Мерседес спринтер датчик распредвала расположение

Так же я вывел

  • количество спутников,
  • Точность по горизонту,
  • Широта и долгота,
  • Дата и время,
  • Высота над уровнем моря,
  • Направление движения (компас),
  • Скорость в километрах,
  • Направление,
  • Расстояние до дачи,
  • Направление к даче,

Чтобы значения не бегали очень быстро, я сделал интервал в 1 секунду. Это обычный delay().
Теперь надо сказать, что такое холодный запуск.
При первом включении датчик должен найти спутники и спозиционировать себя на местности. У этого датчика он довольно медленный. Правда других датчиков у меня не было, может у всех так.
Если модуль запускается с того же места, где и был остановлен, то поиск будет занимать меньше времени, так как в памяти были сохранены последние координаты.

Теперь я прокручу поиск координат, а то это процесс оказался очень долгим.
Вот сколько времени понадобилось чтобы модуль нашёл спутники. Правда он лежит у меня на подоконники и если бы он был на улице, процесс прошёл бы гораздо быстрее. Но что есть то есть.
14 минут.

Вы видите, как несколько скриншотов после того как модуль нашёл спутники. Данные постоянно прыгали, потому, что датчик хоть и видел 4 или 5 спутников, но показания не всегда были лучше.
А вот карта движения. Здесь я линейкой измерил расстояние. Расхождение из-за того что я не точно установил точки начала и конца.
Но эти плавающие данные возможно были из-за того, что модуль находится в помещении, а на улице приём будет лучше. В следующих видео я подключу к нему SD карту и посмотрю как он будет сохранять маршрут.

Так как я только купил этот модуль, то планирую ещё протестировать его.

В следующих видео, я покажу как

  • подключить к датчику LCD индикатор для вывода значений на экран.
  • Подключу датчик к ESP8266 и создам страницу с данными. Выведу на карту свою геопозицию.
  • Подключу SD карту для сохранения маршрута, и потом считаю значения и выведу пройденный маршрут на GOOGLE карту.
  • Есть ещё несколько интересных задумок, пока не скажу, так что подписывайтесь и не пропустите новые видео.

Теперь коротко про работу скетча.
Для работы понадобится вот такая библиотека и обязательно с плюсами. Это более новая библиотека и она лучше. Пока я тестировал этот датчик, то проверил несколько библиотек, но мне больше всего понравилась именно эта.
Про SoftwareSerial я уже рассказывал. Про пины D10 и D11, вроде тоже говорил.
Главное, не забудьте, что если будете пробовать примеры из этой библиотеки, не забудьте установить скорость 9600, иначе у вас ничего не будет работать.

Сюда нужно вставить координаты места назначения в формате Широта и долгота. Остальное я вроде написал по русски.

В архиве будет лежать ещё один скетч. Он позволяет получать необработанные данные, которые потом можно конвертировать другие форматы или загружать на сайты, которых очень много в интернете и которые из этих данных могут строить маршруты.

Читайте также:  Датчик дождя ниссан тиида как работает

Ну, а теперь как и обещал рассказываю с какими проблемами я столкнулся и как удалось их решить.
Пришлось поискать на зарубежных форумах.

1. Библиотека. Есть несколько библиотек. Я их все попробовал, но больше всего мне понравилась TinyGPS++.h . Именно с плюсами. Потому, что есть просто TinyGPS.
2. Второе, это вывод информации, а точнее его отсутствие. При первом подключении даже не мигал светодиод. Потом я прочитал, что светодиод начинает мигать только после того как модуль найдёт спутники. А то я уже думал что у меня не рабочий датчик.
Оказалось, что аккумулятор на плате полностью разряжен, и для работы ему надо подзарядиться. Первые признаки жизни появились примерно минут через 30 — 40.
Сначала появилась дата. А потом, примерно через минут через 15 появились координаты.
Так, что если вы включили и у вас в течении часа ничего нет, ото не переживайте, возможно ещё не всё так плохо.
3. Приём в комнате. Если у вас не находит спутники, то поднесите к окну. У меня в комнате ловит 1 спутник и то не всегда. Около окна 6 спутников.

4. Подключение к UART аппаратная или программная. Проверьте правильность соединения RX-TX, TX-RX. То есть в перехлёст. Если вы используете SoftwareSerial.h то вам доступны почти все цифровые входы. Без библиотеки толь стандартные RX TX, пмны 0 и 1
5. Скорость вывода. Во всех примерах стоит скорость 4800 бод. При такой скорости не работает. Нужно установить 9600 бод.
6. Время в формате UTC. То есть не соответствует вашему региону. В следующих видео, когда буду выводить на экран, будем учиться изменять на свой регион для установки истинного времени.

Вот вроде и всё. Больше проблем не видел. Датчик работает хорошо. Ну если не считать, что координаты он начинает определять минут через 10. Повторюсь, на улице я его пока не тестировал.

Источник

GPS/GLONASS v1 (Troyka-модуль)

Модуль GPS/GLONASS v1 принимает сигналы спутников глобального позиционирования — GPS, GLONASS и Galileo — и рассчитывает свои географические координаты, скорость перемещения, высоту над уровнем моря и точное локальное время.

Данные передаются на управляющую электронику в текстовом формате NMEA по интерфейсу UART.

Видеообзор

Принцип работы систем спутниковой навигации

Спутники непрерывно передают навигационные сигналы на дециметровых волнах. В сигнал входят метки точного времени и координаты самого спутника.

Навигатор, по задержке прохождения сигнала со спутника рассчитывает точное расстояние до него. Затем повторяет эту операцию для остальных известных спутников. Эти данные сводятся вместе — так получается точное значение координат приёмника.

Для работы навигаторов нужно открытое небо с минимум четырьмя спутниками в прямой видимости. Чтобы система работала по всей планете в каждой орбитальной группировке приходится держать более двух десятков спутников.

GPS-модуль общается с управляющей платой с помощью NMEA-сообщений (от «National Marine Electronics Association») — это стандарт передачи данных оборудования навигации, связи и других информационных сетей.

Подключение и настройка

GPS/GLONASS-модуль общается с управляющей платой по протоколу UART. В зависимости от управляющей платформы выберите вариант подключения GPS-модуля.

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

HardwareSerial

На управляющей плате Iskra JS и Arduino платах с микроконтроллером ATmega32U4 / ATSAMD21G18 , данные по USB и общение через пины 0 и 1 осуществляется через два раздельных UART. Это даёт возможность подключить GPS-модуль к аппаратному UART на пинах 0 и 1 .

Список поддерживаемых плат:

При подключении удобно использовать Troyka Shield. С Troyka Slot Shield можно обойтись без лишних проводов.

SoftwareSerial

Некоторые платы Arduino, например, Uno, прошиваются через пины 0 и 1 . Это означает невозможность использовать одновременно прошивку/отладку по USB и общение с GPS-модулем. Решение проблемы — программный UART. Подключите пины TX и RX GPS-модуля к другим контактам управляющей платы и используйте библиотеку SoftwareSerial.

Для примера подключим управляющие пины GPS-модуля TX и RX — на 4 и 5 контакты управляющей платы.

При подключении удобно использовать Troyka Shield. С Troyka Slot Shield можно обойтись без лишних проводов.

HardwareSerial Mega

На платах форм-фактора Arduino Mega 2560 аппаратный UART, который отвечает за передачу данных через пины 1 и 0 , отвечает также за передачу по USB. Это означает невозможность использовать одновременно UART для коммуникации с GPS-модулем и отладки по USB.

Но на платах такого форм-фактора есть ещё дополнительно 3 аппаратных UART:

Список поддерживаемых плат:

Подключим GPS-модуль к объекту Serial1 на пины 18 и 19 на примере платы Arduino Mega 2560.

Примеры работы

Рассмотрим примеры работы GPS-модуля в зависимости от управляющей платформы.

Пример для Arduino HardwareSerial

В качестве примера выведем в Serial данные с GPS-модуля. Распарсим строки в отдельные переменные и сохраним их. Для этого скачайте и установите библиотеку TroykaGPS.

Пример для Arduino SoftwareSerial

В отличии от аппаратного UART (HardwareSerial), за работу программного UART (SoftwareSerial) отвечает микроконтроллер, который назначает другие пины в режим работы RX и TX , соответственно и данные которые приходят от модуля GPS обрабатывает сам микроконтроллер во время программы. По умолчанию скорость общения GPS-модуля равна 115200 , что значительно выше чем позволяет библиотека SoftwareSerial. В итоге часть информации которая приходит с GPS-модуля будет утеряна.

Решение понизить скорость общения GPS-модуля с управляющей платой. Из описание команд управления GPS-модулем найдём NMEA-команду понижение скорости до 9600 бод.

Данную команду придётся выполнять при каждом новом включении GPS-модуля. В качестве примера выведем в Serial данные с GPS-модуля. Распарсим строки в отдельные переменные и сохраним их. Для этого скачайте и установите библиотеку TroykaGPS

Пример кода для Iskra JS

Выведем данные о координатах, высоте над уровнем моря, количестве видимых спутников и точном времени в консоль Web IDE.

Каждую секунду в консоль будет выводится информация от модуля.

Элементы платы

Модуль NL3333

NL3333 – навигационный приемник НАВИА, выполненный в оригинальном форм-факторе 8.7×9.5 мм на базе чипсета MediaTek MT3333.

Приемник использует весь спектр GNSS систем: GPS, GLONASS и Galileo. NL3333 отличается высокой чувствительностью, малым энергопотреблением и быстрым временем первой фиксации (TTFF). Связь с модулем осуществляется через UART, данные выводятся по протоколу NMEA.

Контакты подключения трёхпроводных шлейфов

На модуле выведены две группы Troyka-контактов.

Источник

Adblock
detector