Gps приемник для планшета windows
Описание проблемы
Программы геопозиционирования предназначенные для «плиточного» интерфейса работают, а большинство десктопных программ геопозиционирования — нет. Именно так дела обстоят на устройстве thinkpad tablet 2 (обладателем которого я и являюсь), а изучая соседние темы форума встречаю множество подобных случаев и на других устройствах. Думаю, будет не лишним собрать желающих решить проблему в одной теме.
Причина
Десктопные программы исторически берут данные gps с COM порта. Драйвер большинства встроенных gps приемников, которые сейчас устанавливаются на планшеты под уравлением windows 8, не имеет ком-порта. Для взаимодействия с gps-приемником реализован sensor and location API, который используется в основном в новом ПО (например, Maps в плиточном интерфейсе). Авторы десктопных программ геопозиционирования ещё не адаптировали свои продукты под новый API. Возможно в следующих версиях эта поддержка будет добавлена — пример тому oziExplorer, который уже сейчас поддерживает работу с сенсором через API, без использования КОМ-портов. Но что же делать с остальными программами геопозиционирования?
Идея
Раз программа ожидает данных от КОМ-порта — нужно ей эти данные дать. По умолчанию на моём планшете (thinkpad tablet 2) КОМ-порты отсутствуют. В интернете есть несколько программ которые позволяют создать пару виртуальных ком-портов. Обычно порты создаваемые программно связаны между собой, то есть любые данные которые записываются в порт КОМ1 могут быть прочитаны с порта КОМ2, и наоборот. Портов нужно именно два т.к. с каждым портом может работать одна программа. Читать данные с первого порта будет программа gps навигации, а записывать данные в связанный порт будет программа-посредник. Она будет читать данные о месторасположении с gps-приемника используя location API, на основании этих данных формировать сообщение NMEA (это такой общепринятый формат сообщений которым общаются gps устройства), а затем передавать это сообщение в ком-порт.
Реализация
Для начала создадим в системе пару виртуальных ком-портов. Я пользуюсь бесплатной программой com0com. Перед установкой на win8 необходимо отключить контроль цифровой подписи драйверов устройств. Это делается через параметры загрузки ОС, для нажатия f7 пришлось подключать к планшету клавиатуру. После установки в диспетчере устройств должно добавиться 3 устройства, одно: com0com — bus for serial port и два одинаковых: com0com — serial port emulator
В интерфейсе com0com можно добавлять\удалять произвольное число портов. При добавлении порта контроль подписи драйверов должен быть отключен.
В моём конкретном случае, после перезагрузки планшета, ОС блокирует неподписанные драйвера портов — пришлось отключить secure boot в опциях UEFI, в этом случае всё ок.
Для проверки работоспособности созданных портов я использую программу tera term.
При зупуске можно выбрать у какому порту подключится терминал. Если список портов пуст — значит либо драйверы ком-портов не были установлены при установке com0com, либо в нестроках портов com0com не установлена галка «use Ports class». Если порты доступны — нужно запустить 2 окна tera term, в настройках подключения указать разные порты (те два порта что мы создали через com0com). А теперь сама проверка — расположите окна терминала так чтобы можно было видеть оба окна одновременно. Теперь если сделать активным одно из окон и начать вводить символы с клавиатуры(на планшете можно с экранной), то текст должен появляться не в том окне которое активно, а в другом — это свидетельствует о том что передача данных из одного порта в другой работает корректно.
Теперь остаётся один из портов указывать в настройках программы геопозиционирования (я тестировал на sas planet последней версии).
Данные на второй порт будет передавать программа Sensor2COM. Она работает таким образом — при запуске отображается статус сенсора и (если сенсор передаёт данные — координаты текущего месторасположения).
Если статус сенсора initializing — возможно следует выбраться на открытый воздух, или хотябы подойти к окну — в помещениях gps обычно не работает.
На основании координат формируется строка NMEA, которая также отображается на форме. Чтобы начать передавать данные на КОМ-порт нужно указать номер порта, скорость передачи (baud rate (я использовал значения 9600 и с S2C и в SAS, но думаю будет работать с любым значением)) и нажать кнопку start sending data. Пока статус передачи отображается как Sending data — строка будет раз в секунду передаваться на ком-порт, а оттуда в программу геопозиционирования. Sensor2COM можно свернуть в трей. Пока она запущена — SAS будет отображать ваши координаты на карте.
Я уже выкладывал Sensor2COM в теме thinkpad tablet 2, где многие пользователи уже опробывали программу в дествии и поделились положительными отзывами. Надеюсь тема в общем разделе будет столь же полезна и пользователям других устройств. Также мне как разработчику было бы удобнее выкладывать новые версии, отвечать на вопросы и разбирать проблемные ситуации в отдельной теме. Надеюсь модераторы раздела одобрят такое начинание.
Sensor2COM распространяется бесплатно. Текущая версия 1.02, её и прикладываю к этому посту.
Кроме моего решения, существует такое http://www.centrafuse.com/centrafuse-localizer
Авторы просят за неё 15$. Насколько я понял из описания, драйвер ком-порта устанавливается вместе с самой программой.Sensor2COM 1.02.exe ( 25,5 КБ )
Сообщение отредактировал komok1965 — 26.07.13, 09:31
Что-то народ не высказывается.
Device85 сотворил весьма нужную прогу, которая реально работает на моём ТРТ2 в навигаторе 7 дорог. К сожалению, на CityGuide она не пошла. Имхо, это две самые удобные программы навигации для Windows 8 планшетов.
Вражеская Localizer до вчерашнего дня работала хуже Sensor2Com — её даже 7 дорог не видела. Но вчера автор выложил последнюю версию, серьёзно переработанную, и Localizer заработал на всех программах, что я ей скармливал. Обидно за наших 🙁
Решил посмотреть в Tera Term выходные потоки этих программ. Так вот, Localizer выдает аж 18-19 строк за цикл, а Sensor2Com только одну — минимальную $GPRMC. По словам автора Localizerа он сам не формирует поток NMEA, а только собирает его от GNSS и отправляет на СОМ-порт.
В прежней версии Localizerа полностью собранного потока NMEA не было. Думается, что это главная причина по которой Sensor2Com не цепляется в CityGuide. А посему вопрос к уважаемому Device85 : нельзя ли в рамках Sensor2Com выдавать аналогичный Loсalizerу полный поток NMEA ?
Сообщение отредактировал slade60 — 30.05.13, 12:37
Gps приемник для планшета windows
Описание проблемы
Программы геопозиционирования предназначенные для «плиточного» интерфейса работают, а большинство десктопных программ геопозиционирования — нет. Именно так дела обстоят на устройстве thinkpad tablet 2 (обладателем которого я и являюсь), а изучая соседние темы форума встречаю множество подобных случаев и на других устройствах. Думаю, будет не лишним собрать желающих решить проблему в одной теме.
Причина
Десктопные программы исторически берут данные gps с COM порта. Драйвер большинства встроенных gps приемников, которые сейчас устанавливаются на планшеты под уравлением windows 8, не имеет ком-порта. Для взаимодействия с gps-приемником реализован sensor and location API, который используется в основном в новом ПО (например, Maps в плиточном интерфейсе). Авторы десктопных программ геопозиционирования ещё не адаптировали свои продукты под новый API. Возможно в следующих версиях эта поддержка будет добавлена — пример тому oziExplorer, который уже сейчас поддерживает работу с сенсором через API, без использования КОМ-портов. Но что же делать с остальными программами геопозиционирования?
Идея
Раз программа ожидает данных от КОМ-порта — нужно ей эти данные дать. По умолчанию на моём планшете (thinkpad tablet 2) КОМ-порты отсутствуют. В интернете есть несколько программ которые позволяют создать пару виртуальных ком-портов. Обычно порты создаваемые программно связаны между собой, то есть любые данные которые записываются в порт КОМ1 могут быть прочитаны с порта КОМ2, и наоборот. Портов нужно именно два т.к. с каждым портом может работать одна программа. Читать данные с первого порта будет программа gps навигации, а записывать данные в связанный порт будет программа-посредник. Она будет читать данные о месторасположении с gps-приемника используя location API, на основании этих данных формировать сообщение NMEA (это такой общепринятый формат сообщений которым общаются gps устройства), а затем передавать это сообщение в ком-порт.
Реализация
Для начала создадим в системе пару виртуальных ком-портов. Я пользуюсь бесплатной программой com0com. Перед установкой на win8 необходимо отключить контроль цифровой подписи драйверов устройств. Это делается через параметры загрузки ОС, для нажатия f7 пришлось подключать к планшету клавиатуру. После установки в диспетчере устройств должно добавиться 3 устройства, одно: com0com — bus for serial port и два одинаковых: com0com — serial port emulator
В интерфейсе com0com можно добавлять\удалять произвольное число портов. При добавлении порта контроль подписи драйверов должен быть отключен.
В моём конкретном случае, после перезагрузки планшета, ОС блокирует неподписанные драйвера портов — пришлось отключить secure boot в опциях UEFI, в этом случае всё ок.
Для проверки работоспособности созданных портов я использую программу tera term.
При зупуске можно выбрать у какому порту подключится терминал. Если список портов пуст — значит либо драйверы ком-портов не были установлены при установке com0com, либо в нестроках портов com0com не установлена галка «use Ports class». Если порты доступны — нужно запустить 2 окна tera term, в настройках подключения указать разные порты (те два порта что мы создали через com0com). А теперь сама проверка — расположите окна терминала так чтобы можно было видеть оба окна одновременно. Теперь если сделать активным одно из окон и начать вводить символы с клавиатуры(на планшете можно с экранной), то текст должен появляться не в том окне которое активно, а в другом — это свидетельствует о том что передача данных из одного порта в другой работает корректно.
Теперь остаётся один из портов указывать в настройках программы геопозиционирования (я тестировал на sas planet последней версии).
Данные на второй порт будет передавать программа Sensor2COM. Она работает таким образом — при запуске отображается статус сенсора и (если сенсор передаёт данные — координаты текущего месторасположения).
Если статус сенсора initializing — возможно следует выбраться на открытый воздух, или хотябы подойти к окну — в помещениях gps обычно не работает.
На основании координат формируется строка NMEA, которая также отображается на форме. Чтобы начать передавать данные на КОМ-порт нужно указать номер порта, скорость передачи (baud rate (я использовал значения 9600 и с S2C и в SAS, но думаю будет работать с любым значением)) и нажать кнопку start sending data. Пока статус передачи отображается как Sending data — строка будет раз в секунду передаваться на ком-порт, а оттуда в программу геопозиционирования. Sensor2COM можно свернуть в трей. Пока она запущена — SAS будет отображать ваши координаты на карте.
Я уже выкладывал Sensor2COM в теме thinkpad tablet 2, где многие пользователи уже опробывали программу в дествии и поделились положительными отзывами. Надеюсь тема в общем разделе будет столь же полезна и пользователям других устройств. Также мне как разработчику было бы удобнее выкладывать новые версии, отвечать на вопросы и разбирать проблемные ситуации в отдельной теме. Надеюсь модераторы раздела одобрят такое начинание.
Sensor2COM распространяется бесплатно. Текущая версия 1.02, её и прикладываю к этому посту.
Кроме моего решения, существует такое http://www.centrafuse.com/centrafuse-localizer
Авторы просят за неё 15$. Насколько я понял из описания, драйвер ком-порта устанавливается вместе с самой программой.Sensor2COM 1.02.exe ( 25,5 КБ )
Сообщение отредактировал komok1965 — 26.07.13, 09:31
Что-то народ не высказывается.
Device85 сотворил весьма нужную прогу, которая реально работает на моём ТРТ2 в навигаторе 7 дорог. К сожалению, на CityGuide она не пошла. Имхо, это две самые удобные программы навигации для Windows 8 планшетов.
Вражеская Localizer до вчерашнего дня работала хуже Sensor2Com — её даже 7 дорог не видела. Но вчера автор выложил последнюю версию, серьёзно переработанную, и Localizer заработал на всех программах, что я ей скармливал. Обидно за наших 🙁
Решил посмотреть в Tera Term выходные потоки этих программ. Так вот, Localizer выдает аж 18-19 строк за цикл, а Sensor2Com только одну — минимальную $GPRMC. По словам автора Localizerа он сам не формирует поток NMEA, а только собирает его от GNSS и отправляет на СОМ-порт.
В прежней версии Localizerа полностью собранного потока NMEA не было. Думается, что это главная причина по которой Sensor2Com не цепляется в CityGuide. А посему вопрос к уважаемому Device85 : нельзя ли в рамках Sensor2Com выдавать аналогичный Loсalizerу полный поток NMEA ?
Сообщение отредактировал slade60 — 30.05.13, 12:37
gps приемник для планшета
Для чего нужен «Личный блог» драйва? Каждый раз при переходе в профиль, отсвечивает надпись «В блоге пока ничего нет». Третий год на сайте, а в блоге ничего. Создам одну запись, добавлю информацию про подключение и настройку USB GPS в Android.
Зачем он нужен внешний GPS, при наличии встроенного в планшете/телефоне?
Плюсы:
1. «Приличный» USB GPS способен принимать большее количество спутников;
2. Может быть размещен в любой части автомобиля, умное размещение антенны повышает качество приёма;
3. «Стартует» практически сразу, через 2-5 секунд после включения, приём более 10-ка спутников;
4. Повышенная точность позиционирования, от одного до пяти метров. Такая точность позволяет авто навигаторам «понимать» в какой полосе движется автомобиль.
Минусы:
1. Необходимость настройки операционной системы для работы с устройством;
2. Дополнительные расходы на покупку.
Покатавшись пару лет с Nexus 7 в панели, пришел к выводу, что GPS требует улучшения качества работы. Плюс обратил внимание, что в местах отсутствия подключения к интернет, встроенный GPS превращается в тыкву. Сначала казалось, что проблема затрагивает только Яндекс навигатор. Купил в play.google коммерческий вариант навигации «GPS Hавигация и карты Sygic» с пробками и прочими плюшками (перед НГ 2016 была распродажа, весь пакет обошелся в 15 евро). Протестировал пару недель, проблема осталась, нет интернета — нет GPS. Сам Sygic понравился, он более продуман, чем Яндекс навигатор. Особенно удобно на ходу читать названия районов города и населенных пунктов, возникающих по курсу движения авто. В Яндекс такого нет до сих пор. Не суть, проблема осталась. Приобрёл внешний GPS и закрепил его в правой части лобового стекла.
Подключил usb gps ublox7 (он же vk 172) к mk908II с Android 4.2.2.
Делал всё по инструкции Rage2, за что ему большое спасибо!
Взял наугад модуль cdc-acm.ko(ну почти наугад т.к. в windows он не определялся как pl, ft, cp.), и повезло, появилось устройство ttyACM0 ))
Закинул либу, выставил скорость «busybox stty -F /dev/ttyACM0 9600»
проверил «cat /dev/ttyACM0» данные бегут)
Но не было пункта «Настройки -> Местоположения» и никакие программы не видели gps приемник. После 3х дневных танцев с бубнов сменил прошивку на Finless 1.6 Andorid 4.2.2 (до этого был Andorid 4.4 ). В ней этот пункт не вырезан.
Забросил свисток в шкаф, и забил на проблему. Прошел год, просматривая сайт по продаже и подготовке планшетов, наткнулся на LS23030G. Характеристики устройства радуют:
Базовый кристалл: MediaTek MT3333
Количество каналов: 99
Поддержка взаимодействия с системами SBAS (WAAS, EGNOS, MSAS, GAGAN)
Размеры: 49 х 41 х 14,1 мм
Напряжение питания: 4,75 — 5,25 В
Температурный диапазон: -40ºС … +85ºС
Характеристики GPS-приемника
Время захвата
при горячем старте вне помещения: generator . На мой вопрос по настройке устройства в Android, получил ответ: «Ничего настраивать не надо, воткнул в USB планшета и работает». И Все? «И все!». Ок, заказал. Но закрались некоторые сомнения. Оставалось не ясным, как внешнее устройство при подключении, заменяет собой встроенное в Android. Может Android уже «допилили» и он поумнел? Позже опасение подтвердилось. Надеюсь Алексей использует у себя какую то хитрую прошивку на своих планшетах, позволяющую просто подключать дополнительный GPS… Воткнул и работает, прямо мечта…
GlobalSat ND-105C. GPS-приёмник с интерфейсом microUSB/USB
Цена: 2650 рублей
Новый GPS-приёмник от компании GlobalSat. ND-105C это единственный GPS-приёмник на рынке, который можно подключить к устройствам Андроид и использовать планшет или смартфон как современный GPS-навигатор.
Гарантия: Фирменная гарантия, 1 год
Руководство пользователя: Скачать (1,02 Мб, PDF)
GlobalSat ND-105C отличается малыми размерами и весом (всего 5 грамм), низким энергопотреблением (40 мА), высокочувствительным чипсетом МТК последнего поколения, возможностью подключать как к microUSB, так и к USB-портам.
GPS-приёмник GlobalSat ND-105C — это GPS-приёмник с интерфейсом microUSB/USB (переходник входит в комплект поставки). Предназначен для пользователей смартфонов, планшетов, нетбуков, ноутбуков, ПК или КПК с USB-хостом. В одном корпусе совмещён GPS-приёмник и активная антенна. В основе приёмника лежит новейший GPS-чипсет МТК, обеспечивающий высокое качество и скорость определения координат. GlobalSat ND-105C это единственный GPS-приёмник на рынке, который можно подключить к устройствам Андроид без получения Root-прав. GlobalSat ND-105C может быть подключён к планшету, ноутбуку или ПК, на котором установлено любое навигационное программное обеспечение.
Особенности GlobalSat NC-105C
- Совестимость с Андроид, Windows и Mac OS
- MicroUSB интерфейс
- Переходник microUSB-USB в комплекте
- Новейший GPS-чипсет МТК
- 66 параллельных каналов, All-in-View
- Встроенная активная высокочувствительная антенна
- «Холодный старт» — 35 секунд
- «Горячий старт» — 1 секунда
- Отличное качество приёма в условиях «городских каньонов» и леса
- Низкое потребление тока — 40 мА
- Светодиод, отображающий состояние работы приёмника
- Малые габариты и вес (33,9 х 17,99 х 8,1 мм, 5 г.)
Комплект поставки GlobalSat ND-105C
- GPS-приёмник ND-105C
- Переходник microUSB/USB
- CD с драйверами и тестовым ПО
- Гарантийный талон
ВНИМАНИЕ! Минимальные требования для работы GlobalSat ND-105C с устройствами Андроид: версия Андроид 3.2 или новее; USB-хост. Будьте внимательны, уточните характеристики Вашего устройства Андроид у продавца или производителя.
Вчера вечером поставили рядом Самсунг галакси s1+ и мою Дэфи+. Понятно, никаких a-gps (в горах оно все равно бесполезно).
Дэфи долго вычисляла, примерно 2-3 мин, чип не быстрый, но нормально увидела спутники и выдала координаты в программы.
Самс спутники как-бы видел, и в достаточном количестве, но координаты не выдал, хотя мы долго ждали. Центр города, Александровский пр-т, близ Греческой площади, те. ни о каком тотальном экранировании многоэтажками речи нет. В итоге в Самсе софт просто полез искать по БС-кам сотовым.
Преимущества внешнего gps приёмника :
1) чутьё лучше (у нормального внешнего — приличная антенна, например, у моего iBlue-747 rev.B).
2) стартует быстрее.
3) аккум смарта садится меньше, тк. BT интерфейс жрёт в несколько раз меньше, чем внутренний gps.
Минус — связь по ВТ временами рвётся, и в некоторых программах у вас прервётся запись трека.
Одна проблема — до сих пор практически все навигационные программы под Андроидом умеют пользоваться только встроенным в телефон GPS приемником. Андроид 2.3.х также не умеет работать с внешними приемниками.
В WinMobile, системе зрелой, всё это было — уже в 6-ку встроили простой gps proxy, позволявшей подключать любой совместимый внешний приёмник, сидеть на любом порту и транслировать его данные в 1 или несколько программ. А кроме него был очень функциональный gpsGate , который делает то же самое + кучу дополнений. Программы также имели стандартную опцию выбора приемника.
В андроиде же поддержка внешних приемников в ОС не реализована, как минимум в 2.3.х, а производителям навигационного софта просто лень писать что-то отдельное для этого (при этом платные дешевле не становятся).
Типовое, с форума «Пока дождешся пока внутренний заработает уже тыщщу раз доехал бы, да и батарею жалко»
Разработчикам Робота необходимость такой вещи на системном уровне будет ясна где-то к версии 4.5, видимо. И то не факт.
Но есть умельцы, написавшие программы, которые подменяют внутренний GPS телефона на внешний. Типовая навигационная программа не знает, что она общается с внешним, думая, что общается с внутренним.
Важное замечание. Нельзя гарантировать, что любая из этих программ будет корректно работать на всех версиях Андроида, и со всеми навигационными программами.
Проверяйте. (У меня сейчас стоит улучшенная (умельцами) прошивка от Моторолы на основе Андроида 2.3.4)
Для работы обеих программ надо включить developers option «enable mock locations» .
Примечание. В большинстве сочетаний прокси-эмулятора и навигационной программы в собственно навигационной программе вы не будете видеть спутники.
Bluetooth GPS Provider
Программа корректно работает, отдаёт координаты 2м программам одновременно, но часть программ сигнал получает, и при этом выдает, что gps disabled (в общем-то верно для системного чипа), если я не включал системный gps.
А можно и включить системный — она будет его подменять.
Программа периодически обновляется.
Показывает (лаконично и понятно) спутники и данные от приемника.
Много опций, поддержка разных чипов внешних приемников (в тч. самых массовых, SiRF III / MTK)
Мне пока что нравится больше, чем 2я.
Bluetooth GPS for Android
Программа корректно работает, отдаёт координаты 2м программам одновременно, но в системных опциях надо включить Gps — иначе работать не будет.
Работает только жёсткая подмена системного gps.
Есть опции для siRF III.
Программа периодически обновляется.
Вполне пригодна, но 1я лучше.