Данная плата содержит на себе GPS-модуль NEO-6M от u-blox и была приобретена пару месяцев назад с целью создания GPS-логгера своими руками.
В статье описывается «комплект» с модулем, программа u-center, немного USB-to-TTL-адаптер CH340G, а также проводится срвнение записи трека.
В «комплект» входит: сам модуль u-blox NEO-6M, стабилизатор напряжения (чтоб можно было питат от 5В) и активная керамическая антенна. ИМХО, реальная цена раза в два ниже, поскольку есть более дешевый конкурент — VK172 ($8.58) — с поддержкой ГЛОНАСС и USB-интерфейсом — $8.58, например. Может, и в нём есть UART, но его я в руках не держал.
Антенна телепается на тонком на экранированном кабеле длинной 2.5 см. Сильно телепать ею не стоит: за два дня телепаний у меня нарушился контакт экрана кабеля с землей антенны — и спутники перестали ловиться. Пришлось её разбирать и восстанавливать контакт экрана. Разбирается активная антенна при помощи паяльника ватт на 40-60, снимаем припой лёгкими прикосновениями к краям металлической крышки, одновременно подковыривая её:
(фото сделано через пару месяцев, взято из из этого обзора).
Практика показала, что, несмотря на металлическую пластину с обратной стороны, положение антенны в пространстве на точность определения позиции слабо влияет. Близкое расположение домов, и низкая скорость, как мне показалось, сильнее снижает точность. Если стоять на одном месте, начинают появляться точки на 5-30 метров от реальной позиции.
В описании сказано...
А ничего там не сказано, продавец снимает с себя всю ответственность =)
Модуль NEO-6M питается от напряжения 3.3В, он может выйти из строя при подключении к большему напряжению или некорректно работать при меньшем, но здесь имеется стабилизатор — и питать можно от 5В. Также, есть энергонезависимая память и батарейка:
Светодиод — зелёный, по умолчанию «мигает при 3D-виксации», настроить его поведение можно из приложения u-ctnter.
Пробовал подключать к 3.3В — вместо нужных данных, выдает текстовые сообщения с какой-то информацией, думаю, мощности не хватает. Вывод контактов J1 состоит из:
GND — минуса питания,
TX — линии передачи данных (от модуля),
RX — линии приёма данных (модулем),
VCC — плюса питания (5В).
Из всех особенностей UART для взаимодействия с данным модулем нужно знать только одну — скорость работы, у меня она установлена в 9600 бод. Из коробки пакетика, модуль, когда поймает, выдает такую информацию:
$GPGGA,144343.00,,,,,0,00,99.99,,,,,,*63
$GPRMC,144348.00,V,,,,,,,070416,,,N*77
и т.д.
Это — текстовые сообщения протокола NMEA, подробнее о них можно почитать в Википедии, они могут немного отличаться от задокументированных.
По сути, этот модуль — микроконтроллер, который анализирует данные со спутников и производит действия, заданные в его настройках — не только выводит текущее положение… Есть подозрение, что он может вести объект по заданному маршруту (по треку, сохранённому в его памяти). Такие модули используют любители квадрокоптеров, они должны знать о нём больше.
CH340
Подключить GPS-модуль к компьютеру (или планшету) через USB можно с помощью USB to TTL модуля CH340 ($0.60) — это переходник USB-UART с возможностью выбора напряжения питания: 3.3 или 5В.
С верхней стороны, имеются три светодиода: питания — красный и два одинаковых синих, мигающих в унисон передаче или приёма данных… Так как цвета светодидов одинаковы, отличить передачу от приёма можно, разве что, выучив их расположение =)
С торца имеются следующие контакты:
первые три контакта — вывод плюса питания: ненужный соединяется с VCC, нужный — со входом питания устройства;
TXD — линия передачи данных (от компьютера к внешнему устройству);
RXD — линия приёма данных (от устройства);
GND — минус питания.
Таким образом, для подключения GPS-модуля к компьютеру, нужно соединить: RX с TXD; TX с RXD; GND с GND; VCC с 5V,
затем вставить USB в компьютер. После подключения к компьютеру и установки драйверов (кажется, сами ставятся), появляется виртуальный COM-порт, при подключении к новому USB-порту, создается еще один COM-порт…
После установки драйверов запускаем программу, указываем скорость обмена данными и выбираем в нужный COM-порт:
Показано на примере программы разработчика GPS-модуля, но в любой другой программе работы с COM-портом, будет то же самое. Если после сопряжения устройств ожидаемых данных не появляется (в терминале), то можно попробовать изменить скорость порта: вдруг мы забыли ее правильно вставить.
После работы — сначала в программе отключиться от пота, затем выдернуть USB; имхо, так более безопасно. Если ошибаюсь, — поправьте; также, могу слишком подробно описывать очевидные вещи, но я хотел бы изъясняться максимально понятно для минимально осведомлённого читателя.
Этим же модулем можно «прошивать» и популярный микроконтроллер Arduino...
Вообще-то, можно было на один из компьютерных COM-портов или на LPT-порт резисторов напаять и не покупать модуль… Но его еще можно к планшету с OTG подключать! Кстати, не всякая программа поддерживает данный адаптер; я успешно мониторил порт пргграммой UsbTerminal,
если скорость низкая (выбранного бодрейта недостаточно для объемов передачи данных), плохой контакт или неправильно настроены биты чётности, то будут теряться части строк;
если же бодрейт на двух устройствах не одинаков, то будут выводиться либо «крякозябрики», либо вообще не будет виден никакой вывод…
u-center
Разработчик модуля предоставляет специализированную программу для работы с ним, скачать её и другие программы можно бесплатно с официального сайта — www.u-blox.com/en/evaluation-software-and-tools — однако, их использование требует не только понимания английского, но и знания предметной области.
Посмотреть на передающиеся данные, можно открыв одну из консолей, или все вместе:
через меню, иконку или нажав соответствующий хоткей.
Настройки сообщений, GPS-модуля находятся в окне View -> Messages, иконкой или по F9:
Когда приходит то или иное сообщение, подсвечивается соответствующая ветка, из меню этого дерева можно отключать или подключать ненужные сообщения. Стоит отметить, что интерфейс программы рассчитан на множество разных модулей и некоторые функции не будут работать с нашим, например, даже если мы разрешим сообщения GLRMC, они не будут приходить, так как модуль не поддерживает ГЛОНАСС. Особо продвинутые отключают все NMEA-, подключают нужные UBX-сообщения — и экономят на этом гигабиты трафика и километры строк кода!
Кстати, у автора видео такой же модуль. Как видно из того же видео, можно настроить скорость работы GPS-модуля из окна UBX -> CFG -> PRT:
А из UBX -> CFG -> RATE, путем подбора Measurement Period выставляется значение Navigation Frequency — на сколько я понял, это частота, с которой данные приходят в порт, если выставить 0.5 Гц, то порция данных будет отправляться нам по порту раз в две секунды.
Если нужно сохранить текущую конфигурацию устройства, выбираем из меню Receiver -> Action -> Save Config, после чего можно проверить, сохранилась ли конфигурация, отключив его (USB) и подключив обратно.
Там имеется еще много всякоразных настроек, как то частота кварцевого резонатора или энергосбережение; я еще не разбираюсь в них на столько, чтобы кому-то рассказывать. К сожалению, на русском я не нашел подробного описания настроек, применимого к реальным задачам. Но для их понимания можно прочесть документацию и подумать, как ими пользоваться.
Тест в реальных условиях
Подключив данный GPS-модуль и MicroSD-карту к Arduino Promini, я собрал GPS-логгер:
Положил его в сумку вместе с планшетом Asus MemoPad 7, запустил запись трека и прокатился на велике по району, по пути выехал к огородом, где нет домов, затем вернулся обратно, сделав круг и заехал в пару дворов.
Белым пунктиром отмечен путь, который не зафиксировал ни модуль, ни планшет; синяя линия — планшет, красная — модуль.
Постояв минуты три, мне надоело ждать, когда GPS на планшете стартанёт — и я поехал в огороды, вернувшись обратно, достал планшет, посмотрел, как там дела — и трек на нём начал записываться с этого места.
Оцениваю работу данного модуля по записи велотрека как достойную замену телефонного, главным образом, потому что он стартует быстрее; однако его поведение при стационарном положении меня немного пугает. Трек с него был получен путем конвертирования упомянутых выше NMEA-сообщений в GPX-файл посредством команды:
-x discard,hdop=1.2 — фильтр по hdop, теоретически, чем меньше величина — тем больше менее достоверных точек удаляется из трека; практически же, если поставить в 1, — удалятся все позиции.
За время поездки (20 минут), аккумулятор пятилетней давности BL-5CP (телефона Nokia 1616), от которого питается микроконтроллер, записывающий лог, разрядился с 4.10 до 3.97В. Ток GPS-модуля при старте, если верить дешёвому мультиметру DT832, составляет 70мА.
Когда хотя бы один спутник поймает, время выводит даже без координат:
$GPRMC,115138.50,...,,190316,..
115138.50 — время (GMT),
190316 — дата,
потом ловит еще спутники и уже по ним вычисляет.
А вот это я писал — orangepi.pp.ua/index.php?topic=271.msg2436#msg2436
Когда еще был жив Orange Pi PC и не было UART-переходника, я мог только читать то, что выдаёт модуль из коробки. Может, его можно настроить на вывод только времени.
В любом приемнике GPS точность часов одинакова и равна точности атомных часов на спутнике. Потому что без достаточно точной синхронизации времени система GPS работать вообще не может.
В этом модуле отсутствует выход PPS!
Поэтому его использование в качестве сервера времени stratum 1 не целесообразно.
Да и не прогнозируемые задержки в USB при использовании USB-UART тоже не в лучшую сторону будут сказываться.
Для себя, для дома сделать — хватит с лихвой, но никак не в продакшен такое решение.
Поправка, в самом чипе этот выход есть, просто он не выведен на разъем. Но тебе ни кто не мешает подпаяться напрямую к чипу или как например я сделал я смахнул не нужный мне светодиод (который так же подключен к этому выходу) и подпаялся к контактной площадке светодиода.
Я данный модуль использую как источник точного времени.
Вообще он отдаёт данные ровно 1 раз в сек.
От использования часового модуля или задержек отказался вообще.
Но у меня с пассивной антенной. Как допилю девайс, сделаю обзор.
Поставьте альтернативную прошивку на роут с синхронизацией времени по инету.Зачем городить огород? Тем более что GPS в помещении не будет работать, как минимум возле окна.
gps даёт значительно более точное время, чем обычный интернет-ntp. плюс автономность. а прокинуть удлинитель usb никогда не было проблемой. да и 10 президентов это не такая уж и большая сумма на поиграться.
в случае с этой железкой врядли точность будет выше… она данные выдаёт очень неспешно и не имеет PPS, без которого о точности, которую Вы ожидаете можно забыть
Современные приемники уже даже в помещении ухитряются захват сделать (как повезет), а удерживать — через кирпичную стенку получается. А точности позиционирования, конечно, в этом случае уже речи нет. Но — держит!
брал USB VK172, упоминающийся тут в описании — толь мне экземпляр попался неудачный, толь там нет поддержки glonass как таковой вообще… пытался с продавца вытянуть объяснение по этому поводу — морозится и ничего не может сказать внятного, ни да, ни нет… gps спутники ловит вполне неплохо, что вцелом и требовалось для моих задач, потому отсутствие других типов спутников особо не повлияло на итоговые результаты.
через ucenter можно было только читать данные из него, любые попытки конфигурять что-то ничего не принесли, свисток всё игронил напрочь… точность посредственная, если на месте лежит то так же как и у ТС начинает «гулять» метров на 30-50 куда ему вздумается
не сохраняет?
Спасибо за информацию, может, память глючет, или ее вообще нет… Или батарейка не работает.
Я бы на Вашем месте, если в описании товара упомянут ГЛОНАСС, открыл диспут, разместил там скрины, а лучше — фотографии устройства, к которому подключен модуль и на котором не поймались спутники ГЛОНАСС и требоал бы вернуть часть суммы. А продавец, пусть морозится сколько угодно, решение о возмещении принимает не он.
Если там G7020-KT, глонасс должен работать.
по срокам с диспутом пролетел пока колупался с модулем и проектом, для которого он брался
отсутствие глонасса обнаружил через пару недель, после того, как основные работы с проектом были уже закончены и захотелось поиграться с модулем и посмотреть на что он вцелом ещё способен, тогда-то и выяснилось, что с ucenter оно не полноценно дружит и отсутствие поддержки глонасс.
свой отзыв на 3 звезды он получил за это с описанием причины низкой оценки
ublox neo-6m — только GPS.
ublox neo-7m (в вашем случае — VK172) — работают только в одном режиме: или GPS, или GLONASS. Выбор осуществляется при старте определенными пинами.
ublox neo-m8n — GPS+GLONASS+BeiDou. Одновременная работа
опередили меня) кстати в VK172 все есть. Только подпаиватьcz надо. Это я про UART. Я взял его для того чтобы к фотоаппарату присобачить, может быть когда ни будь руки и дойдут.
Ну а вообще заказал сейчас себе поиграться neo-m8n. Из-за одновременной работы gps + GLONASS. Там уже буду наоборот делать для подключения к USB. Скачайте даташит на чипы… там все понятно.
ииии… есть neo-m8t последний индекс T. зверские штуки… я так понимаю они сырые данные умеют давать…
M8N работает одновременно GPS+Glonass+Galileo. Чтоб работало Beidou нужно отключть или GPS или Glonass. Толку от галилео нет — ловятся плохо и фиксится максимум штуки 3. Из чего вывод, что по факту M8N так же работает только с двумя системами.
а можете скинуть ссылку на какой-нить мануал по подключению к популярным контроллерам? желательно видео и на русском, просто не особо в курсе как это гуглить-то даже
Это универсальный интерфейс — UART — погуглите, это, пожалуй, самый старый и самый популярный интерфейс. Для Ардуино: arduino.ua/ru/prog/SoftwareSerial и arduino.ua/ru/prog/Serial
для других — смотрите как там реализована возможность работы с последовательным портом.
Берётся три контакта: Плюс и Минус питания и один Сигнальный, по сигнальному передаются импульсы — вот и вся суть. Для чтения из устройства достаточно одного контакта микроконтроллера, для чтения и записи — два. Контакт TX одного устройства подключается к контакту RX другого, в статье я это писал =)
Сейчас примерно 80% текста статьи про то, как он подключается к ардуино, уже написано, скоро опубликую, там будет чуть подробнее.
Такой пробовал в нетбуке, ему нужна антенна, без нее на открытом месте даже плохо ловит. Подключал к нему антенну от NEO-6M, с ней не также плохо и это понятно, она же походу наверно активная (питание подается по коаксиалу, хотя может и не прав)
А так сама NEO-6M работает у меня в помещение, спутники ловит нормально. К роутеру цеплял, пакет компилил kplex под openwrt. Правда на андроиде не получилось принять данные через WiFi (GPSBridge), а на компе через GpsGate все руки не доходят
Да, напряжение 3.28 В показывает мультиметр,
в u-center для антенны есть такие настройки (так было по умолчанию):
числовые значения в полях в нижней части изменять нельзя.
Снял все галки, нажал Send, на уровне спутников не отразилось, по идее должен заметно упасть. Кстати после отключения и подключения модуля галки вернулись, т.е. не сохраняет значение.
Да, все верно.
После снятия галки напряжение пропадет же?
Для сохранения значений нужно использовать слудующий пункт дереве настроек — CFG.
Там надо выбирать куда записывать — зависит от того есть ли батарейка и есть ли I2C память рядом с модулем.
Я долго мучился с сохранением в таком модуле — через U-center все настраиваешь как нужно, сохраняешь. Через какое то время опять все слетает в настройки по умолчанию. Уж не знаю, если и есть там EEPROM то какой то неправильный
Так как управляю этими модулями через микроконтроллер — записал в U-center шестнадцатиричные дампы нужных команд и запуливаю их в GPS при загрузке микроконтроллера.
Еще из особенностей, мои модули не поддерживают UBX протокол. Если его ставишь, ничего не выдают. Наверное, прошивка такая.
В остальном модули вполне годные. Работают надежно
Попробуйте с ноутом выйти на видное место (или, как я, на длинных проводах вытянуть на открытый балкон), где точно есть сигнал со спутников, запустить uCenter, подключиться, подождать немного и нажать кнопку «Dubug Messages».
Модуль NEO6MV2. Не получается увеличить скорость обмена данными. 1Гц это крайне мало. Настройки либо не передаются, либо не сохраняются. Кто с таким сталкивался?
Как в u-center установить скорость обмена 1200? В настройке UBX -> CFG -> PRT меньше 4800 значений нет. В даташите на камни 1200 заявлена. Модули и 6 и 7 серии. Может есть некая строка, которую можно модулю по уарту скормить?
115138.50 — время (GMT),
190316 — дата,
потом ловит еще спутники и уже по ним вычисляет.
А вот это я писал — orangepi.pp.ua/index.php?topic=271.msg2436#msg2436
Когда еще был жив Orange Pi PC и не было UART-переходника, я мог только читать то, что выдаёт модуль из коробки. Может, его можно настроить на вывод только времени.
bigdanzblog.wordpress.com/2015/01/18/connecting-u-blox-neo-6m-gps-to-raspberry-pi/
вот тут вроде чел запустил через gpsd+ntpd. но я так понял, что в этом модуле не лучшая точность.
Поэтому его использование в качестве сервера времени stratum 1 не целесообразно.
Да и не прогнозируемые задержки в USB при использовании USB-UART тоже не в лучшую сторону будут сказываться.
Для себя, для дома сделать — хватит с лихвой, но никак не в продакшен такое решение.
Вообще он отдаёт данные ровно 1 раз в сек.
От использования часового модуля или задержек отказался вообще.
Но у меня с пассивной антенной. Как допилю девайс, сделаю обзор.
=)
через ucenter можно было только читать данные из него, любые попытки конфигурять что-то ничего не принесли, свисток всё игронил напрочь… точность посредственная, если на месте лежит то так же как и у ТС начинает «гулять» метров на 30-50 куда ему вздумается
Спасибо за информацию, может, память глючет, или ее вообще нет… Или батарейка не работает.
Я бы на Вашем месте, если в описании товара упомянут ГЛОНАСС, открыл диспут, разместил там скрины, а лучше — фотографии устройства, к которому подключен модуль и на котором не поймались спутники ГЛОНАСС и требоал бы вернуть часть суммы. А продавец, пусть морозится сколько угодно, решение о возмещении принимает не он.
Если там G7020-KT, глонасс должен работать.
отсутствие глонасса обнаружил через пару недель, после того, как основные работы с проектом были уже закончены и захотелось поиграться с модулем и посмотреть на что он вцелом ещё способен, тогда-то и выяснилось, что с ucenter оно не полноценно дружит и отсутствие поддержки глонасс.
свой отзыв на 3 звезды он получил за это с описанием причины низкой оценки
ublox neo-7m (в вашем случае — VK172) — работают только в одном режиме: или GPS, или GLONASS. Выбор осуществляется при старте определенными пинами.
ublox neo-m8n — GPS+GLONASS+BeiDou. Одновременная работа
Ну а вообще заказал сейчас себе поиграться neo-m8n. Из-за одновременной работы gps + GLONASS. Там уже буду наоборот делать для подключения к USB. Скачайте даташит на чипы… там все понятно.
ииии… есть neo-m8t последний индекс T. зверские штуки… я так понимаю они сырые данные умеют давать…
Я вот жду 8ю серию поиграться, надеюсь будет хоть чем-то лучше
arduino.ua/ru/prog/SoftwareSerial и arduino.ua/ru/prog/Serial
для других — смотрите как там реализована возможность работы с последовательным портом.
Берётся три контакта: Плюс и Минус питания и один Сигнальный, по сигнальному передаются импульсы — вот и вся суть. Для чтения из устройства достаточно одного контакта микроконтроллера, для чтения и записи — два. Контакт TX одного устройства подключается к контакту RX другого, в статье я это писал =)
Сейчас примерно 80% текста статьи про то, как он подключается к ардуино, уже написано, скоро опубликую, там будет чуть подробнее.
И как на точность это влияет?
Но правда еще не пробовал.
А так сама NEO-6M работает у меня в помещение, спутники ловит нормально. К роутеру цеплял, пакет компилил kplex под openwrt. Правда на андроиде не получилось принять данные через WiFi (GPSBridge), а на компе через GpsGate все руки не доходят
Насчет питания — это настраивается через тот же U-center, подавать или не подавать
в u-center для антенны есть такие настройки (так было по умолчанию):
числовые значения в полях в нижней части изменять нельзя.
После снятия галки напряжение пропадет же?
Для сохранения значений нужно использовать слудующий пункт дереве настроек — CFG.
Там надо выбирать куда записывать — зависит от того есть ли батарейка и есть ли I2C память рядом с модулем.
P.S. Замерил на самом модуле на выходе антенны, при снятии галок и нажатие send напряжение питания с антенны не пропадает
Так как управляю этими модулями через микроконтроллер — записал в U-center шестнадцатиричные дампы нужных команд и запуливаю их в GPS при загрузке микроконтроллера.
Еще из особенностей, мои модули не поддерживают UBX протокол. Если его ставишь, ничего не выдают. Наверное, прошивка такая.
В остальном модули вполне годные. Работают надежно
12:26:14 $GPRMC,,V,,,,,,,,,,N*53
12:26:14 $GPVTG,,,,,,,,,N*30
12:26:14 $GPGGA,,,,,,0,00,99.99,,,,,,*48
12:26:14 $GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
12:26:14 $GPGSV,6,1,22,02,,,23,03,,,23,04,,,24,05,,,23*79
12:26:14 $GPGSV,6,2,22,06,,,24,07,,,24,08,,,24,10,,,23*72
12:26:14 $GPGSV,6,3,22,11,,,23,12,,,24,13,,,23,14,,,24*78
12:26:14 $GPGSV,6,4,22,16,,,23,17,,,24,18,,,23,19,,,24*7B
12:26:14 $GPGSV,6,5,22,20,,,23,21,,,23,25,,,24,26,,,24*78
12:26:14 $GPGSV,6,6,22,28,,,23,51,,,28*7C
12:26:14 $GPGLL,,,,,,V,N*64
http://webdiscounts.online/5132-1-large_default/GY-NEO6MV2-NEO-6M-GPS-Module-NEO6MV2-with-Flight-Control-EEPROM-MWC-APM2-5-large-antenna-for-arduino.jpg
Проблемы со стабилизатором 3,3 В. Кто знает какая именно стоит микросхема стабилизатора или на какой ток потребления рассчитывать стабилизатор?