GPS Bluetooth своими руками

У меня есть 2 телефона: смартфон  Motorola A1200e и КПК HTC BlueAngel, но ни на одном с них нет встроенного GPS, а мне иногда приходится бегать по городу по незнакомых местах, плюс я очень сильно люблю вечером ездить на велосипеде или мотоцикле туда, где ни разу не был, исследуя новые местности. Чтобы хоть примерно знать куда ехать, я пользуюсь мобильными Яндекс.Картами.
А вот на этой неделе со мной случилась неприятность - часов в 10 вечера, исследуя очередную незнакомую местность, я как то выехал на край горы, передо мной был спуск с пол километра и весь закидан щебенкой(!!!), такие дороги я просто обожаю,  не мог удержаться чтобы не спуститься вниз. Проверил велик на исправность, ведь если бы что то открутилось при спуске (а вибрация будет очень сильной), то этот день мог бы окончиться для меня очень трагически. С велом было все ок. Я поехал в низ. Передать все ощущения словами просто не реально, это было офигенно круто! Правда щебенка отлетала от переднего колеса и ударяла мне об ребра, но все равно было прикольно. Когда спустился, постоял минуты три, потом собрался ехать дальше, но... куда? Наверх по щебенке выехать не получилось бы, спереди - поле, слева и справа грунтовая дорога. Сидел долго на телефоне по карте искал где я нахожусь, но на картах грунтовых дорог нет. И тут я вспомнил, что через янд.карты можно посмотреть фотку со спутника, посмотрел, но где я нахожусь я так и не понял. Еще минут через 5 я начал подниматься наверх по щебенке, а обувь у меня была с тонкой подошвой, терь так ноги болят, что ходить почти не могу.

Вобщем поставил я себе обязательно условие: большие НИКОГДА не попрусь в темноте в незнакомую местность без GPS!!! Брать навигатор с дисплеем не хотелось, так как при езде у меня вещей минимум, а на велик если что то с дисплеем прицеплю, то все равно разобью. Тут вспомнил про такую замечательную вещь, как GPS Bluetooth - это приемник GPS, который может соединяться с каким нить устройством по блютузу (ноут, КПК, смарт и т.д.) и передавать ему данные с GPS модуля. Полез в инет искать, но самый дешевый нашел за 100$, за такие деньги я мог бы купить Б/У мобилу с GPS:). Можно конечно было бы купить GPS Bluetooth в китайском магазине (нашел за 40$), но китай есть китай, а мне нужен надежный модуль. Решил сделать его сам.



В качестве самого GPS приемника, я выбрал EB-500Это 66-канальный(!!!) модуль, стоит около 15$, маленький в размерах, его не трудно запаять на плату, и у него почти нет внешнего обвеса(антена, светодиод и кондеры по питанию). Бывают EB-500 и EB-500L, у последнего нет антенного усилителя и он может работать только с активными антеннами. К тому же, он почему то дороже. Короче, берем первый.

Несмотря на то, что в модуле уже есть усилитель, и можно подключать дешевую пассивную антенну, я купил активкую за 12 баксов, называется она ANT GPS ANT380 SMA-M 2M. Антенна на магнитном основании и разъемом SMA. Коэффициент усиления: 28 dBi. Только покупая коннектор, смотрите, чтобы  он был такой же как на антенне.

Далее надо определиться с блютузом. Модуль обязательно должен иметь функцию SPP (последовательный порт). Обычно такие модули от 25$, но есть одно китайское решение - это модуль HC-04, у него есть только функция SPP, а нам больше и не надо. К тому же его можно приобрести за 7-8$, я покупал Здесь.Как видите, ему тоже практически не нужен внешний обвес. Кстати, есть еще один модуль, визуально похож на этот, называется HC-05 (еще есть HC-06), я как раз думал что его приобрел, и плату под него развел, а через часов 5-6 мозготрепки, оказалось что это HC-04. Поэтому, я сделал 2 схемы и платы. Для HC04 и HC05.

К модулю будет подключен литий-ионный аккумулятор, заряжаться будет через микросхему MAX1555. Эта микра имеет пин для подключения источника питания 5-7В/0.4А и пин для подключения к USB. При подключения внешнего источника Ток зарядки ограничивается 280мА, при подключении USB ограничивается 100мА. Я советую ставить аккумулятор от мобильного телефона, так как он имеет небольшую плату, которая следит за самими аккумулятором и если напряжение аккумулятора будет минимальным (по-моему 2,7В), то схема отключит аккумулятор от потребителя.

Так как мы будет подключать к USB, а у EB-500 есть 2 последовательных порта, то я решил установить преобразователь USB->USART и подключить его ко второму порту. Это на случай, если под рукой будет ноут без блютуза, можно будет тогда просто подключить через USB. В качестве конвертера будет CP2102, но ставить его совсем необязательно.

Схему разделил на 2 части:

[caption id="attachment_296" align="aligncenter" width="495" caption="Питание + конвентер CP2102"][/caption]

Подключение CP2102 - стандартное. 2 светодиода отображают состояние источника питания, третий - состояние зарядки, горит - аккум заряжается, потух - заряженный. POWER_ON/OFF - сюда подключается кнопка включения.

[caption id="attachment_295" align="aligncenter" width="501" caption="Основная схема"][/caption]

На схеме стоит сам GPS и блютуз, к разъему ANT подключается сама антенна, если ее замкнуть на массу, то можно спалить модуль. К 12 выводу EB-500 подключена батарейка резервного питания, между портами EB-500 и HC-04 стоят 2 разъема, предназначены для того, чтобы можно было подключать EB-500 и HC-04 к компу через последовательный порт для изменения настроек модулей.

Разводка печатной платы:дорожки 0,4мм, труднопаяющихся компонентов нет, разве что CP2102, но, как я говорил ранее, ее можно не ставить.

Должно получиться примерно такое:

Почему примерно? Как я и писал ранее, плату разводил под HC-05, а потом поставил HC-04, новую плату делать не хотелось, поэтому я модернизировал эту. Ну и еще у меня не было маленького переключателя, поэтому я припаял штыри и надел на них перемычку, также не было разъема для внешнего блока питания, туда вообще ничего не припаивал.

Да, и еще: плату делал такой, чтобы можно было засунуть в корпус Z23.

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

Включите питание модуля (переключатель POWER_ON, или перемычка, как у меня). Если нет аккумулятора, то подключите внешний блок питание или USB. Должен замигать светодиод WORK_STATUS (у меня желтый слева). Если этого не произошло - HC-04 не запустился, ищите причины. Теперь отключите питание, подключите антенну, вставьте резервную батарею, подключите питание, должен загореться светодиод GPS_STATUS и через некоторое время замигать. Если он вообще не загорелся, EB-500 не стартовал, если не начал мигать, то модуль еще не нашел спутники, если с антенной все ок, то подождите еще немного (иногда поиск спутников при первом запуске занимает около получаса).

Итак, проверка и настройка почти закончена, для того, чтобы продолжить, понадобится преобразователь COM->TTL или USB->USART, например такой, как описан в прошлой статье. Также понадобится программа  Qt_comport. Теперь будем настраивать устройство. Нам нужно всего лишь сделать так, чтобы скорость USARTa EB-500 была такая же, как скорость USARTa HC-04, у HC-04 скорость 9600 бод, а вот у EB-500 она может быть от 4800 до 115200. Если вы запаяли CP2102, то казалось бы, что может быть проще, чем подключить устройство к USB, попробовать разные скорости, определить, на какой работает EB-500 и через терминал установить новую, но... У EB-500 память энергозависима, и если извлечь резервную батарею, то настройки сбрасываются, а в друг в какой то ответственный момент устройство упадет резервная батарея отсоединится? Вобщем, настройки EB-500 менять не будем, будет настраивать HC-04.

Для начала, нужно определить скорость EB-500. Для этого, отключите питание устройства, затем подключите вход COM->TTL преобразователя к выходу (TX) модуля EB-500, вот как на картинке:T - это TX модуля EB-500, R - RX модуля. Второй(R) подключать ненужно. Теперь подключите массу устройства и TTL преобразователя. Запустите Qt_comport, выбирите порт, к котором подключен TTL преобразователь, там где INPUT DATA и OUTPUT DATA выбирите ASCII, слева установите Baudrate = 115200, Parity = PAR_NONE, Fowcontrol = FLOW_OFF, жми APPLY, потом возле порта OPEN. Теперь включите питание на устройстве. В программе повалится огромное кол-во сообщений, первые 2 строки должны быть
$PMTK011,MTKGPS*08
$PMTK010,001*2E

Если они отличаются, значит модуль работает на другой скорости, попробуйте повторить процедуру на скорости 9600, 4800 и 38400, и т.д. Когда наконец то определите скорость, то можно приступить к настройке HC-04, а если скорость 9600, то его и настраивать не надо.

Подключите TTL преобразователь к HC-04. TX находится напротив RX модуля EB-500, RX - напротив TX. Подключать нужно оба провода(надо прием и передача). Настройка модуля производится с помощью AT-комманд. Модуль HC-04 принимает эти команды когда не установлен радиоканал, а HC-05 переходит в режим приема команд, когда на PIO11 высокий уровень, не путайте! Итак, переводим модуль в режим приема АТ-комманд, открываем в Qt_comport порт с теми же настройками, только Baudrate = 9600. Пишем в верхнем текстбоксе (Data for send) английскими буквами AT и нажимаем SEND, через сукунду в нижнем текстбоксе должно появиться "OK", это значит, что связь с модулем успешно установлена, теперь нужно сменить скорость.Чтобы изменить скорость, нужно отправить AT комманду AT+BAUD и без пробела шестнадцатеричное число от 1 до C. Вот список чисел для каждой скорости:
1---------1200
2---------2400
3---------4800
4---------9600
5---------19200
6---------38400
7---------57600
8---------115200
9---------230400
A---------460800
B---------921600
C---------1382400

К примеру, если нам надо установить скорость 115200, то пишем в том же текстбоксе AT+BAUD8. Далее пробоем отправить опять AT, в ответ ничего приходить не должно. Закрываем порт, выбирает Baudrate = 115200, применяем, открываем порт, отправляем AT, если возвращается OK, то модуль работает стабильно на новой скорости.

На этом можно закончить настройку модуля, но у HC-04 с помощью АТ-команд можно сменить пароль и имя, а у HC-05 еще кучу параметров. Пароль по умолчанию, пароль 1234, чтобы его сменить, нужно отправить AT+PIN и без пробела 4-значный пароль, к примеру, чтобы установить пароль 1111, отправляем AT+PIN1111. Имя по умолчанию linvor, чтобы сменить, нужно отправить AT+NAME и без пробела имя. Я хочу, чтобы другие блютузы при поиске видели меня как GPS Bluetooth, для этого, нужно отправить AT+NAMEGPS Bluetooth, в ответ должно придти OKsetname.

Все, теперь настройка обоих модулей окончена, можно тестировать рабочее устройство.

Подключите антенну, соедините перемычками EB-500 и HC-04, включите питание, должно получиться вот так:

Левый светодиод должен быстро мигать, второй слева сначала гореть, потом мигать. Теперь пробуем соединиться с компом. Открываем BlueSoleil (пробовал версии 2, 6 и 8, стабильно работала 6, но  мож у меня с самими комповым блютузом проблемы), далее запускаем поиск новых устройств.Нашелся))). Далее по нем правая кнопка - Сопряжение, вводим пароль. Затем правой кнопкой-Соединение Последовательный порт COMx, где х - номер виртуального порта, через который мы будем общаться с устройством. После этого, светодиод на HC-04 должен просто гореть, это значит, что соединение успешно установлено. Но часто бывает, что соединение не устанавливается даже  с 10 попытки. Доооолго я мучался с этой проблемой, но решение оказалось довольно простое - нужно просто открыть порт с той программы, в которой хотим использовать устройство. Например, мы хотим подключиться через Qt_comport. Кликаем по устройству правой кнопкой, и смотрим, через какой порт будет происходить соединение (COMx), запускаем Qt_comport, выбираем этот порт и открываем, светодиод начнет гореть, а в программе повалится огромное количество сообщений. Кстати, настройки порта здесь не имеют никакого значения, можете ставить скорость хоть 115200, хоть 4800, настройки уже установлены и хранятся в самом модуле. Только если будете подключать через CP2102, то не забудьте выставить правильные настройки. Закрываем порт.

Итак, связь между EB-500 и программой ПК установили. Теперь их надо "разсортировать". Самим писать софт не придется, так как уже существует немало готового. Сначала испытаем программа от производителя - EB View (у меня версия 1.0.3). Запускаем, выбираем порт (и скорость, если соединение не через блютуз), жмем OnВ большом окне будут те же сообщения, что мы видели в терминале, но эта программа будет их расшифровывать и переводить в человекопонятный вид. Как видите, с помощью GPS можно узнать не только расположение, но и время, дату, скорость (и довольно точно, если на ровной поверхности), высоту на уровнем моря и еще кучу разной информации. Во вкладке Setup можно поменять настройки модуля, если что то сделаете не так, можете отсоединить основное и резервное питание модуля, тогда настройки установятся по умолчанию.

Вот теперь мы можем быть уверенными в нормальной работе нашего устройства и его можно использовать как обычный покупной GPS Bluetooth. Далее попробуем отобразить наше местоположение на Google Планета Земля.

Скачиваем, устанавливаем. Но вот есть проблема - EB-500 передает данные по протоколу NMEA-0183, а Google Планета Земля его не понимает, поэтому нужна промежуточная программа, называется она GPS TrackMaker, скачать можно здесь, инсталируем и запускаем. Теперь выберите в меню Interface->NMEA 0183, далее выбирите порт, через который соединяется ПК с устройством и, если соединение не через блютуз, скорость. Теперь жми Старт. Должно появиться вот такое окно Здесь есть высота над уровнем моря, координаты, скорость и еще очень много разных параметров. Теперь на верхней панели нажмите по значку Гугл Земля (4 справа), откроется Google Планета Земля, где будет отображаться ваше местоположение. Кстати, точность довольно высокая.

Для кпк и смартфона я использовал Яндекс.Карты, подключилось к моему GPS Bluetooth с первого раза на обоих устройствах.

Скачать схему и печатную плату в DipTrace для HC_04(35 Kb).
Скачать схему и печатную плату в DipTrace для HC_05(35 Kb).

Комментарии

  1. Gps приемник где был преобретён?

    ОтветитьУдалить
  2. У меня тут ещё несколько вопросов)
    На телефоны с java коннектится?
    HC-06 подойдет?

    ОтветитьУдалить
  3. Да, у меня моторола а1200, там Java приложение "Яндекс.Карты", нормально работает
    HC-06 подойдет.

    ОтветитьУдалить
  4. загорелся твоей идеей, решил повторить, есть gps eb5080 и bluetooth WT11, возникла проблема с блютузником, винда его видит даже файлы передает на телефон, а я его не вижу с телефона, можит есть какая мыслишка P.S. скинь позжалуйста на мыло QT_comport ато негде неполучается скачать

    ОтветитьУдалить
  5. Сорри, но почему телефн его не видит, я хз. Програмку можно скачать здесь http://easyelectronics.ru/terminalnye-programmy.html

    ОтветитьУдалить
  6. спосибо, подключил его через ftdi но с АТ командами ваше никак не получается, можит надо какуюто ногу подключить на + или -

    ОтветитьУдалить
  7. посмотрите в дш, я бы подсказал, но ни с eb5080, ни с WT11 не работал...

    ОтветитьУдалить
  8. лады, будимс капать инфу

    ОтветитьУдалить
  9. Подскажи, пожалуйста, сколько с dealextreme тебе модуль шёл? Проблем не было с доставкой, она правда бесплатная?)

    ОтветитьУдалить
  10. бесплатная. шел где то 2-3 недели

    ОтветитьУдалить
  11. А как ты его паял? Как я понял по даташиту надо паять инфракрасной паяльной станцией?

    ОтветитьУдалить
  12. я паяльником паял:)

    ОтветитьУдалить
  13. Но там же ничего почти с боку не торчит, только крошечные выемки... Как там можно запаяться не представляю. Выложил бы как-нить видео с мастерклассом пайки, благодарные читатели были бы счастливы )

    ОтветитьУдалить
  14. просто напаиваешь сначало на место пайки небольшие шарики, потом проводишь паяльником по дорожках на модуле, кладешь модуль на место пайки и по очереди касаешься паяльником к каждой дорожке на плате под выводом модуля.
    В инете куча видео, как паять такие модули

    ОтветитьУдалить
  15. Спасибо, вроде стало понятней. Поищу видео.

    ОтветитьУдалить
  16. Тот же самый вопрос хотел задать. Дикость какая-то)

    ОтветитьУдалить
  17. Расскажи, пожалуйста, как ты определил, что у тебя НС-04, а не HC-05?

    ОтветитьУдалить
  18. на диалекстриме написано, что это hc-04

    ОтветитьУдалить
  19. Понятно) Я думал там вообще 50/50)

    ОтветитьУдалить
  20. Сегодня сделал открытие, - нашёл отечественный ГЛОНАСС/GPS модуль Навиа ML8088s. Пока смотрел даташит начал замечать сходство с EB-500. А как потом оказалось, там даже распиновка одинаковая и размеры один в один с EB-500. Так что можно вообще ничего не меняя, использовать в этом проекте Навиа ML8088s. И по цене они сопоставимы.
    Не знаю насколько полезной будет эта информация, но всё равно весьма занятно)

    ОтветитьУдалить
  21. Под модулем ВТ плата имеет цвет, присущий сильно перегревающемуся участку. Что там с температурами?

    ОтветитьУдалить
  22. я просто модули пару раз перепаивал. Для отпайки нагревал обратную сторону феном, чтобы не перегревать сами модули

    ОтветитьУдалить
  23. Озадачился подключением внешней антенны к HC-04. Нет никаких данных, существует ли подобная практика?

    ОтветитьУдалить
  24. что то подобное видел на http://we.easyelectronics.ru

    ОтветитьУдалить
  25. Отличная статья, спасибо автору! Заразился идеей, уже купил детали.
    Но вопрос: НС-06 напаивать так же, как и НС-04, как я понял? И как запаять вот такую пассивную антенну: YDRA-A25-1575 (http://www.kosmodrom.com.ua/pdf/YDRA-A25-1575.pdf) ?

    ОтветитьУдалить
  26. да, так же, только на другую плату.
    YDRA-A25-1575 походу надо паять горячим воздухом

    ОтветитьУдалить
  27. Антенну нужно прямо на плату паять? может, есть видео как такие дела мутить, а то антенны паять никогда и близко не приходилось....

    ОтветитьУдалить
  28. если не ошибаюсь, то эту на плату

    ОтветитьУдалить
  29. А не проще и дешевле вот это http://www.ebay.com/itm/220848922562?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649 купить?

    ОтветитьУдалить
  30. мож и дешевле, мне хотелось самом сделать

    ОтветитьУдалить
  31. кто-нибудь знает почему gps выдает в EB Viel вот такие строки:
    $PMTK401*37
    $PMTK101*32
    $PMTK414*33
    $PMTK605*31
    $PMTK400*36

    ОтветитьУдалить
  32. скажите, пожалуйста, где можно достать софт на смартфон?

    ОтветитьУдалить
  33. Если вы про тот, который упоминается в статье, то он легко ищется через гугл.

    ОтветитьУдалить
  34. Возможно ли подружить приемник с андроидом, без дополнительного софта?

    ОтветитьУдалить
  35. Валок, стало быть. :)
    А в каком режиме работает HC-04: master или slave при соединении с КПК?

    ОтветитьУдалить
  36. У меня просто ситуация чуть посложнее - я принимаю данные GPS по радиоканалу и хочу увидеть их в виде серии меток на карте на андроидном планшете. Выйдет?

    ОтветитьУдалить
  37. Спасибо, детали мои пока ещё в Китае, как придут, буду пробовать.

    ОтветитьУдалить
  38. Добрый день, по схеме у вас +3.3В и Ресет замкнуты, для чего это?

    ОтветитьУдалить
  39. Есть у вас инструкция по настройке HC-05 модуля? Как на нем проверить и поменять частоту?

    ОтветитьУдалить
  40. Чтобы модуль запустился)))

    ОтветитьУдалить
  41. по даташитах смотрел ни в одном не замкнуты на схемах.

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

Прием команд с пульта дистанционного управления

STM32F4. Обновление прошивки с карты памяти (Bootloader SD)

Работа с шиной 1-wire. Подключение термодатчика DS18B20 к AVR