Neo m8n подключить к смартфону
Сегодня мы научимся подключать и настраивать основной компонент нашего устройства – GPS модуль на базе чипа от компании U-Blox серии NEO-7m.
NEO-7 относится к серии профессиональных модулей позиционирования, сочетает в себе низкое энергопотребление, высокую точность, а также, кроме GPS, поддерживает отечественный ГЛОНАСС.
Так как GPS и ГЛОНАСС модуль может задействовать только в режиме ИЛИ, то первым делом необходимо определиться, что мы будем использовать. Вот сводная таблица некоторых характеристик из официального даташита:
С режимом ГЛОНАСС я просидел в ожидании почти 20 минут, но так больше 5 спутников и не увидел, зафиксировать положение даже в режиме 2D модуль по ним тоже не смог.
Подключение NEO-7 к ESP8266
Общение с модулем реализовано через UART (com порт), поэтому подключить его к нашей плате Wemos D1 мы можем через аппаратный интерфейс (пины RX, TX) либо через софтверный (пины D7, D8).
Давайте для первоначальной настройки подключим NEO-7 через софтверный порт так как аппаратный у нас задействован в соединении с компьютером, и напишем простой «бридж» com порта, который будет перенаправлять данные из GPS на порт компьютера.
SoftwareSerial gps(D7, D8, false, 256);
void setup() Serial.begin(9600);
gps.begin(9600);
>
void loop() while (gps.available() > 0) Serial.write(gps.read());
>
while (Serial.available() > 0) gps.write(Serial.read());
>
>
//---------------------------
Если у вас есть USB – TTL конвертер, то вы можете просто подключить модуль через него к компьютеру и сразу приступить к настройке.
Теперь если вы откроете «Монитор порта» то увидите поток данных в формате NMEA.
Кнопка станет зеленой, а в правой части окна начнут появляться спутники.
Неизвестно кто и что настраивал в этом модуле до нас, поэтому первым делом скинем настройки на дефолтные. Открываем окно конфигурации, «View – Configuration View», выбираем пункт «CFG (Configuration)», ставим переключатель в положение «Revert to default configuration» и нажимаем кнопку «Send».
Теперь переходим в пункт «GNSS (GNSS Config)», отключаем всё кроме GPS и SBAS, жмём «Send».
В пункте «NAV5 (Navigation 5)», устанавливаем «Dynamic Model» в положение «3-Pedestrian», не забываем нажать кнопку «Send».
Увеличим частоту обновления данных, для этого в пункте «RATE (Rates)» вводим в поле «Measurement Period» число 100, и применяем настройки, нажав кнопку «Send». Теперь данные будут прилетать с частотой 10 герц.
В пункте «SBAS (SBAS Settings)», устанавливаем переключатель «PRN Codes» в положение «Auto-Scan» и нажимаем «Send».
На этом основные настройки почти закончены, нам осталось только поднять скорость порта до 115200 бод и сохранить конфигурацию.
Перейдите в пункт «PRT (Ports)», переключите параметр «Protocol out» в положение «0 — UBX», это отключит вывод всех проколов кроме фирменно UBX, тем самым мы разгрузим и модуль NEO, и сам Wemos, для которого мы напишем простой парсер протокола а не будем использовать тяжеловесные сторонние библиотеки. В строке «Baudrate» выберите скорость «115200» и как всегда нажмите кнопку «Send».
Вот и всё, ваш модуль благополучно отвалился! ))) Не пугайтесь, всё в порядке, вы же помните, что изначально мы ставили скорость 9600 а теперь изменили ее на 115200. Откройте скетч, и поправьте в нём строки инициализации портов и загрузите его.
Serial.begin(115200);
gps.begin(115200);
Не забудьте выставить в самом ЮЦентре правильную скорость.
Если вы подключались через USB — TTL конвертер, то сразу просто измените скорость порта.
Сохраним нашу конфигурацию. Откройте пункт «CFG (Configuration)», установите переключатель в положение «Save current configuration» и нажмите кнопку «Send».
Поздравляю, с настройкой мы закончили!
Количество спутников, тип фиксации, текущие дату и время, координаты, скорость, высоту и точность позиционирования.
Теперь у нас есть необходимый минимум для замеров. Урок получился несколько больше чем я планировал изначально, поэтому на сегодня всё, а в следующий раз мы подключим дисплей, напишем что то типа спидометра и проверим это всё в движении на автомобиле.
- геометрические параметры (форм-фактор);
- общие технические данные;
- дополнительные опции.
Форм-фактор
Наименование форм-фактора
MAX
NEO
LEA
CAM
Габаритные размеры, мм
Количество выводов, шт.
Примечание: * — масштаб не соблюден.
Модули форм-фактора МАХ чаще всего находят применение в миниатюрных навигационных решениях. Форм-фактор NEO — это модули для профессиональных применений, где требуется максимальная эффективность в работе. Форм-фактор LEA — это один из старейших форм-факторов u-blox, который поддерживает традиции преемственности (pin-to-pin совместимость от ранней серии к поздней) и по-прежнему популярен у большого количества производителей навигационной аппаратуры. САМ является новейшим форм-фактором u-blox и представлен пока единственным модулем CAM-M8Q. Модуль имеет в своем составе субминиатюрную ГЛОНАСС/GPS-антенну и находит свое применение как в самых маленьких навигационных приборах, так и в устройствах, где спутниковое позиционирование является опцией. Данные типоразмеры GNSS-приемников де-факто стали стандартом для такого типа устройств. Производители, конкурирующие с u-blox, все чаще создают свой продукт в аналогичных форм-факторах.
Краткий обзор технических характеристик
Качество модуля, выраженное в технических параметрах, хорошо подтверждается на практике. На рисунке приведен фрагмент трека, полученного при тестировании модуля NEO-M8N в Зеленограде (Москва). При тестировании использовалась активная антенна, которая была размещена внутри салона легкового автомобиля у лобового стекла.
Кроме того, GNSS-приемники u-blox8 обладают рядом весьма интересных и полезных опций:
- режим энергосбережения;
- совместная работа с GSM/3G-модулями u-blox;
- A-GNSS (технология быстрого старта при помощи дополнительных данных).
Рассмотрим каждую из этих опций более подробно.
Режим энергосбережения
В последнее время портативные навигационные решения (маяки, портативные трекеры) становятся все более популярными. Естественно, вопрос энергопотребления также приобретает особую актуальность. Кроме того, опция POWER SAVE MODE позволяет еще больше снизить энергопотребление. Эффект экономии достигается при переходе питающего напряжения в импульсный режим в тот момент, когда GNSS-приемник переходит из режима «захват» (холодный старт) в режим «слежение». Скважность импульсов напряжения питания можно регулировать в широких пределах. В таблице 2 приведены значения энергопотребления при скважности 1 Гц, они располагаются справа от знака «/». Как видно, ток потребления отличается в несколько раз.
Совместная работа с GSM/3G-модулями u-blox
u-blox, кроме навигационных модулей, производит также модули для беспроводной связи различных стандартов: GSM, 3G, CDMA и совсем недавно — LTE (4G). В связи с этим для инженеров компании u-blox было естественно «связать» навигационные и GSM-модули, что и было сделано при помощи DDC-порта. Это решение выглядит еще более естественным в том аспекте, что большая часть ГЛОНАСС/GPS-модулей находит свое применение в трекерах и сигнальных маяках различного назначения, где модуль беспроводной связи (GSM, 3G, LTE и т. д.) является обязательной и неотъемлемой частью.
- включение/отключение питания;
- считывание данных протокола NMEA;
- конфигурирование и получение дополнительных данных при помощи «фирменного» бинарного протокола (UBX-протокола);
- осуществление «быстрого старта» при помощи A-GNSS-технологии.
А-GNSS — технология быстрого старта навигационного приемника
Любой пользователь, эксплуатирующий навигационный GNSS-приемник, ожидает от него определения текущих координат в любое время суток и в любом месте. Для надежного и достоверного позиционирования необходимо идентифицировать и получить точные орбитальные данные (эфемериды) минимум четырех спутников. При использовании стандартных алгоритмов позиционирования это часто вызывает затруднения в местах, где имеются естественные преграды для нормального распространения радиоволн, исходящих от спутников навигационной системы. Процесс определения местоположения может растягиваться на минуты, часы, а иногда и не может состояться вовсе.
Рисунок. Фрагмент трека GNSS-приемника NEO-M8N
Технология Assisted GNSS (A-GNSS) ускоряет вычисление позиции, предоставляя всю необходимую приемнику информацию (эфемериды, альманах, время и т. д.) через сеть беспроводной связи и Интернет. Эта вспомогательная информация позволяет навигационному устройству вычислить свою позицию буквально за секунды, даже в неблагоприятных для распространения сигнала условиях (таблица 3).
Решил немного пропиарить свой проектик, ну и заодно рассказать о прекрасном GPS модуле от швейцарской компании u-blox.
Итак, ответ на вопрос, который возник после прочтения заголовка у людей, которые не знакомы с u-blox:
- Наличие GLONASS на борту
- Хорошая доступная документация
- Наличие собственного сервиса AGPS
Немного о модуле:
Размеры: 12.2x16.0x2.4мм.
Конечно модуль великоват для мобильного телефона, но достаточно мал для автомобильного решения, или, например, квадрокоптера, а также комфортен для ручного монтажа на плату.
Спецификация GPS ресивера: 56-ти канальное ядро 7-го поколения от u-blox.
Поддерживаемые системы позиционирования: GPS L1 C/A, GLONASS L1 FDMA, QZSS L1 C/A, SBAS: WAAS, EGNOS, MSAS, Galileo E1B/C.
Galileo пока не запущен, но ввиду того, что есть возможность обновления прошивок, после полноценного запуска системы, я надеюсь будет, возможность ее использования.
Интерфейсы: UART, SPI, I2C, USB
UART и I2C работают одновременно, а вот SPI нужно железно муксить при помощи вывода D_SEL. Соответственно вы можете сделать управляемое переключение, например подключив GPIO к выводу D_SEL. Признаюсь честно я не проверял SPI, по скольку для моих целей UART намного удобнее. Да и в переключении протокола обмена «на лету» я не вижу великого смысла.
Цена:
Вот так выглядит сам модуль:
Краткое содержание предыдущих 270 серий, или с чего все началось
В начале года я приобрел автомобиль, а в автомобиле без мультимедиа системы в нынешние времена вообще никак. Само собою вы можете сказать «Купи за 300$ у китайцев и не лезь!» Но я же инженер и мне интересно сделать что-то самому, разобраться в технологиях. Опыт разработки автомобильных мультимедиа систем у меня уже имеется, правда не с 0, тем интереснее было попробовать. Впрочем, это другая история, о ней поведаю в следующий раз. Теперь о главном — ниодна мультимедия система не обходится без навигации. Отсюда вывод — нужно иметь GPS модуль, карту, маршрутизацию, блэкджек и поэтесс.
PCB или как это было в первый раз
Как оказалось при ближайшем рассмотрении, PCB дизайн не так уж и сложен, как кажется на первый взгляд. Все чем приходится пользоваться сопровождается обильным количеством документации с типовыми схемами и пояснениями. Справедливости ради, я не смотрел на документацию других вендоров, потому что после изучения предложенной u-blox, был удовлетворен более чем.
В результате моих изысканий получился, на мой неискушенный взгляд, вполне себе нормальный PCB дизайн. Схемы можно скачать отсюда. Там же располагаются готовые к печати .pdf файлы, для дальнейшего использования в ЛУТ'е.
Я готов выслушать критику, потому что серьезно радиотехникой никогда не занимался — отсюда возможны ошибки, даже грубые. Все схемы я делал в Eagle Cad Soft. Инструмент для меня оказался очень удобным, "+" ко всему огромное количество готовых библиотек с широким выбором различных элементов, которые делает сообщество.
Ниже приведены скриношоты схематики и PCB:
Элементная база, которую я использовал вполне доступна в России. За исключением RF индуктивности 27nH, которую рекомендует производитель(впрочем сделанная своими руками работает не плохо).
PCB возможно не удовлетворяет некоторым требованиям предъявляемым к таким схемам, по этому поводу снова буду не против получить отзывы.
Снимать процесс изготовления печатной платы и пайки элементов у меня не было никакого желания, поэтому могу предложить только конечный вариант, если кому-то интересно по аббревиатуре ЛУТ находится огромное количество замечательных видео на youtube.
После травления и пайки получилась вот такая вот платка:
Верхняя сторона печатной платы:
P.S. Да, снимал на калькуклятор. Да, колхоз. Да, много припоя.
- 2 вывода UART помеченые как «Rx» «Tx»
- 2 вывода I2C помеченые как «SDA» «SCL»
- 1 контакт для сигнальной «земли»
На верхней стороне есть одинокий пин 3.3В. Он не был запланирован и не был разведен на PCB изначально, отсюда получился висящий в воздухе конденсатор.
Отмечу еще, что это вторая ревизия платы, и где-то в недрах гита скрывается первая, без питания LNA. Ну и, как мог заметить внимательный читатель, текущая плата немного не соответствует схематике и PCB.
Пару слов о антенне. Я использую активную антенну, заказанную у всех тех же китайцев за
8$. Была попытка сделать свою собственную, но теоретической базы, наравне с элементной, пока не хватает чтобы сделать активную антенну приемлемого качества.
К чему я все это написал
Теперь поведу себя немного несдержанно и перейду к самопиарной части. Помимо чудо-платы, которая надо сказать была не самой трудоемкой частью процесса, я написал тонну-другую кода (а если быть точным комментариев к нему).
У u-blox есть свой собственный бинарый протокол, который наравне с NMEA умеет отдавать данные о местоположении, и многое другое. В общем-то не долго думая я сделал С-библиотечку для UBX протокола * .
Написание doxygen комментариев отняло уйму времени, но всеже я осилил.
Возможно в следующих постах я расскажу по подробнее о возможностях этого протокола. В частности использовании AGPS при работе с модулем.
Заключение
В заключении хочу добавить: все о чем написано выше успешно работает в связке с PC и Cubieboard. Естественно, не все оттестировано, но у меня пока не хватает рук к сожалению.
Основной недостаток этого модуля заключается в том, что GPS и GLONASS не могут работать одновременно. Приходится програмно переключаться между ними. Скорее всего та же учесть ждет Galileo.
* На момент написания статьи последней является 15-ая ревизия. Автор собирается имлементировать новые возможности протокола.
GPS-модули позволяют вашему автономному устройству отслеживать свои координаты и параметры перемещения. Такая функциональность важна для всевозможных трекеров, умных ошейников и рюкзаков. В этой статье мы сделали попытку краткого обзора GPS-модулей и программ для работы с GPS на компьютере. Подключение к ардуино рассмотрено на примере наиболее популярного модуля NEO 6.0
Обзор программ для работы с GPS на компьютере
Прежде чем приступать к подключению GPS к ардуино, нужно научиться тестировать сам модуль. Для этого нам обязательно понадобится программа, позволяющая показать статус устройства, количество пойманных спутников и другу тестовую информацию. Мы постарались собрать вместе наиболее популярный софт для работы с GPS на компьютере.
U-Center
Программа 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
Программное обеспечение используется для работы с приемником Copernicus в Windows. Программа отображает принимаемые навигационные данные. Полученные координаты можно отобрать на картах Google Maps, Microsoft Visual Earth. Все установленные настройки приемника можно сохранить в конфигурационном файле
Fugawi
Программа используется для планирования маршрута, GPS навигации в реальном времени. Программа позволяет записывать и сохранять маршруты и путевые точки на картах. Навигация производится как на суше, так и на воде и в воздухе. В программе используются различные виды цифровых карт – топографические карты, стандарты NOAA RNC, отсканированные копии бумажных карт, Fugawi Street Maps.
3D World Map
В этой программе можно увидеть землю в трехмерном виде. Используется как удобный географический справочник, в котором можно узнать информацию 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.
Проверка работы через программу U-Center
Как упоминалось выше, модуль производится компанией u-blox, поэтому для настройки приемника используется программа U-Center.
Если не устанавливается связь со спутником, нужно проверить, подключена ли антенна. Затем нужно проверить напряжение питание, оно должно быть 5В. Если соединение так и не устанавливается, можно поместить модуль к окну или выйти на открытую территорию.
Посмотреть передающиеся данные можно через меню View.
GGA – зафиксированная информация позиционирования. Записаны время, координаты, высота, статус определения местоположения, количество спутников.
Проверка работы через Arduino IDE
Работать с модулем можно также через стандартную среду разработки Arduino IDE. После подключения модуля к плате, нужно загрузить скетч и посмотреть на результат. Если на мониторе появится бессвязный набор знаков, нужно отрегулировать скорость интерфейса Ардуино с компьютером и скорость интерфейса модуля с контроллером.
Скетч для вывода данных о местоположении.
После того, как код будет залит, нужно подождать несколько секунд (время холодного старта), чтобы устройство смогло определить местоположение и начать показывать координаты. Как только устройство начнет свою работу, на плате будет мигать светодиод.
В мониторе порта появятся данные широты и долготы. Также будет получено значение текущей даты и времени по Гринвичу. Установить свой часовой пояс можно вручную – это делается в строке Serial.print(static_cast(hour+8));
Заключение
Как видим, для начал работы с GPS не требуется каких-то совсем уж сложных манипуляций. На помощь приходят готовые модули или шилды, взаимодействующие с Arduino через UART. Для облегчения написания скетчей можно использовать готовые библиотеки. Кроме того, любой GPS-модуль можно протестировать без Ардуино, подключив к компьютеру и воспользовавшись специальным софтом. Обзор наиболее популярных программ мы привели в этой статье.
Читайте также: