Главная » Статьи » Как подключить |
Использование космических технологий уже давно доступно рядовому радиолюбителю, а именно использование спутников GPS в своих целях. Для этого достаточно приобрести (а если повезет, выдрать из ненужного КПК/смартфона и т.д.) модуль GPS-приемника. Из всего многочисленного разнообразия готовых модулей я сделал выбор в пользу GPS-модуля EB-500. Это чуть ли не самый дешевый и распространенный модуль, описание и опыт использования в рунете встречается очень часто. И на этот раз я не стал заказывать интересную детальку издалека: покупать на Еbay перед новым годом нервов не хватит пока дождешься :) а в chip-nn.ru этот модуль дешевле не намного. Поэтому поехал в местный вольтмастер и купил эту железку за 600 рублей. 600? Дайте два! Общее описание Модуль предназначен для встраивания в мобильные устройства поэтому имеет весьма небольшие габариты 13 x 15 x 2.2 mm. У EB-500 есть еще несколько модификаций. Первая EB500L, ничем не отличающаяся от основной за той лишь разницей что не умеет работать с пассивными антеннами. Поэтому если стоит выбор между ЕВ-500 и ЕВ-500L, выбирайте первый. Он умеет работать как с пассивными так и с активными антеннами. Вторая модификация EB-500A, имеет те же характеристики что и EB-500 но в нем есть аппаратный USB, поэтому если надо собрать устройство подключаемое к компьютеру, лучше взять его и тогда не придется делать дополнительный преобразователь USB-UART. Для того чтобы с большой точностью определять координаты, приемник должен принять сигнал как минимум с трех спутников. При увеличении числа спутников, с которых ловится сигнал, увеличивается и точность вычисления координат приемника. У EB-500 в этом плане все очень даже хорошо, он имеет 66 каналов, для обнаружения спутников, их слежения и сохранения положения в пространстве. Благодаря этому время горячего старта - Hot start (когда спутники уже найдены и сохранены в памяти модуля) согласно документации составляет всего 1,5 секунды. Тогда как время холодного старта от 35 секунд. Все это конечно, при ясном небе без видимых помех и с хорошей антенной, посмотрим как будет обстоять на деле. Что касается антенны, то я взял пассивную керамическую. О ней чуть позже. Так как модуль предназначен для мобильных устройств питающихся от батарей, то диапазон питающих напряжений стандартный - от 4,2 до 3,0 вольт. Самое то будет использовать какой-нибудь Li-Ion аккумулятор. Потребление модуля во время работы менее 28мА. Подключение Схема подключения модуля простейшая и взята из даташита на приемник (кликабельно) Из необходимых внешних компонентов обвязки потребуется всего 4 фильтрующих конденсатора (можно сократить до 2-х) Обозначение выводов: 1,2: Tx1, Rx1 - ноги стандартного UART для ввода/вывода данных 3: PPS - на этом выводе после определения координат появляются импульсы с частотой 1 Гц. 4,5: Tx0, Rx0 - дублирующий UART. Выполняет абсолютно те же функции что и первый. Удобно использовать для отладки, можно ткнутся сниффером и посмотреть в терминале как происходит общение с модулем. Или на лету менять настройки не вмешиваясь в работу микроконтроллера. 7,9,14,15,16: GPIO - выводы общего назначения, они не используются в стандартной прошивке модуля. 8: GPS status - еще один вывод индикации. Пока идет поиск спутников и определение координат на этом выводе логическая единица. Как только координаты будут определены на этом выводе появятся импульсы с частотой 1 Гц. 10,19: V28D/V28A - выходы для подключения внешних фильтрующих конденсаторов. 12: V_RTC_3V3 - вывод для подключения батарейки (2-4,3 вольта). Необходима для сохранения всех настроек и найденных спутников в памяти модуля, благодаря чему удается уменьшить время на определение координат при последующих включениях. Подключать питание к этому выводу обязательно, без этого модуль не запустится. 13: VIN_3V3 - на этот вывод подается напряжение основного питания в диапазоне от 3 до 4,2 В. 21: RF_input - вывод для подключения антенны И еще одна важная рекомендация: все выводы GND обязательно пропаиваются с землей. Даже те два пада под брюхом модуля хоть они и не выведены наружу - для высокочастотных схем чем больше земли, тем лучше и меньше вероятности искажений сигнала. Антенна Как я уже сказал, антенну я взял пассивную A25-4102920-AMT02. Размеры антенны 25 х 25 мм. Были еще и другие размеры: 18 х 18 мм. и 35 х 35 мм. Если размеры не важны, то советуют брать больше - в этом деле чем больше антенна тем лучше ловится сигнал. Антенна представляет собой керамическую пластину, с двух сторон нанесенной металлизацией. К верхней металлизации припаян штырек, который проходит через керамическое основание и выходит снизу. Снизу нанесена липучка, с помощью которой антенна приклеивается к плате. На плате, куда приклеивается антенна, под всей её площадью настоятельно рекомендуется оставлять земляной полигон - чем больше земли под антенной тем лучше. Еще рекомендуется делать дорожку соединяющую модуль и антенну как можно короче, не более 15 мм. При этом волновое сопротивление дорожки должно составлять 50 Ом. К тому же в плотную к модулю антенну ставить нельзя - наводки от самого модуля заглушат весь сигнал. И тут надо поймать золотую середину: и расстояние выдержать, и антенну убрать подальше и землей все залить под ней. Жуть :) Раз уж в каждом официальном документе пишут о необходимости соединять антенны только пятидесяти-омными дорожками, немного отойду от темы и остановлюсь на том, как рассчитать проводник на необходимое волновое сопротивление. А то опыт коллег, осваивавших этот модуль, нагоняет ужас от того, что у некоторых прекрасно ловит спутники даже в комнате, а у некоторых не ловит даже под открытым небом, причем топология плат была вроде одинакова. Итак, немного науки. Для расчета волнового сопротивления есть специальная формула, по которой можно определить интересующий нас параметр. Этим параметром является ширина дорожки, идущей до антенны, играя ее шириной мы можем добиться нужного волнового сопротивления. Это в простейшем случае, когда проводник не окружен по бокам земляным полигоном. где Z0 — волновое сопротивление, Еr — диэлектрическая проницаемость материала (для FR4 примерно 4.4), B — ширина проводника (то что нам необходимо найти), C — толщина меди (обычно 18 мкм) H — толщина диэлектрика (толщина текстолита у меня 1 мм). Или воспользоваться удобной программкой CITS25 (скачать), результат у меня получился одинаковый что при расчете вручную по формуле выше, что по этой программе. Так что рекомендую. Тем более, что она уже может считать и более сложные расположения проводников между собой. Ширина проводника до антенны на текстолите толщиной 1 мм. получается примерно 1,8 мм. Печатную плату разводил с учетом имеющегося корпуса, антенну разместил с обратной стороны от приемника и прочей электроники, поэтому вышло так: А вот как это выглядит в живую. Устройство будет располагаться в таком вот гробике :) Землю с обоих сторон платы обильно соединил переходными отверстиями. Не знаю как это сильно повлияло на качество приема, но холодный старт возле окна показал около 2 минут, горячий около 5 секунд. Хотя бывало что модуль и при горячем старте тупил несколько минут пока определял координаты. Но это все от того, что все происходило под крышей, думается мне если его вынести под открытое небо результат будет еще лучше. Полную схему будущего девайса приводить не буду, как укомплектую устройство целиком сделаю отдельное описание, а пока продолжим. Общение Как и положено модуль отдает полученные данные по протоколу NMEA0183 через стандартный UART интерфейс. Естественно что при подключении приемника к микроконтроллеру или преобразователю UART-USB(COM) уровень напряжения на линиях связи не должен превышать допустимого предела 4,2В. У себя для подключения к компьютеру я использовал преобразователь на FT232RL с логическими уровнями 3,3В. Скорость подключения по умолчанию составляет 115200 бод, хотя в сети встречаются сообщения о том, что по умолчанию модуль работает на скорости 9600 бод да и в даташите на модуль обозначена эта скорость. Не знаю в чем тут дело, может ревизии разные. Но у меня заработал именно на 115200. Поэтому если вдруг не срастается общение с модулем просто попробуйте поменять скорость. После того как на приемник подано основное питание он начнет отсылать в терминал кучу информации. Но полезной ее можно считать после фиксирования координат (когда замигал светодиод Status). К примеру, в моем случае приходит следующее. $GPRMC,190813.000,A,5312.7581,N,05009.1820,E,0.30,256.15,231212,,,A*62 $GPVTG,256.15,T,,M,0.30,N,0.56,K,A*38 $GPZDA,190813.000,23,12,2012,,*57 $GPGGA,190814.000,5312.7580,N,05009.1820,E,1,6,1.01,82.6,M,-5.9,M,,*7A $GPGLL,5312.7580,N,05009.1820,E,190814.000,A,A*54 $GPGSA,A,3,13,28,03,05,19,26,,,,,,,1.40,1.01,0.97*0B $GPGSV,4,1,13,07,81,063,,08,60,268,,13,38,136,29,05,32,295,21*78 $GPGSV,4,2,13,10,31,226,,03,30,068,18,19,25,094,18,28,22,205,31*7B $GPGSV,4,3,13,06,22,048,,26,16,305,18,16,13,044,,23,07,135,*7E $GPGSV,4,4,13,21,02,004,*4E Из всего этого нас могут заинтересовать координаты (собственно ради чего все это и делается), точное время, дата, скорость и направление движения. Всю эту информацию можно взять с первой строчки, которая имеет идентификатор $GPRMC. 190813 - время 19 часов, 08 минут, 13 секунд (время по UTC поэтому надо прибавлять часы в зависимости от часового пояса) 5312.7581,N - широта (N-северная, S-южная) 05009.1820,E - долгота (E-восточная, W-западная) 0.30 - скорость движения (измеряемая в узлах) 1 узел = 1.852 км/ч = 0.5144 м/сек Если лень пересчитывать скорость в км/ч можно достать из следующей строки с идентификатором $GPVTG. Помечена как 0.56,K 256.15 - угол движения относительно севера (90 - движемся на восток, 180 - на юг, 270 - на запад, а 0 - соответственно на север.) Для определения азимута, как нетрудно догадаться, используется расчет координат. Поэтому точное определение может быть только в движении. 231212 - здесь находится текущая дата в формате ДДММГГ для наглядности сделал скрин с терминала Остальные строки в основном дублируют информацию с первой строчки, за исключением строк с идентификатором $GPGSA и $GPGSV. В них находится информация о пойманных спутниках. Практической пользы от этого никакой, но зато с помощью специальной программы EB View можно глянуть где находятся в данный момент каждый из спутников. У меня модель лежа на столе возле окна поймал 5 спутников, правда просвет на чистое небо там мизерный. Сверху закрывает балкон соседа, а напротив многоэтажный дом. Поэтому думается мне что точность получилась хреновая, потому как сигнал легко отражаться от препятствий и уже отраженный улавливаться модулем. А это влечет за собой неточность измерений. Да и расчетная скорость 2,29 км/час настораживает :) С помощью этой программы также можно настроить сам модуль. К примеру, изменить частоту обновления координат или изменить скорость соединения по UART. Но надо помнить что если уменьшить скорость соединения, модуль может не успеть передать всю информацию за отведенное время. Мне стало интересно насколько ошибся модуль в определении координат и я вбил их в GoogleEarth. Красным обведено действительное местоположение, по мне так результат очень даже не плохой, модуль наврал не сильно. Тем более при работе из комнаты. Как доделаю вывод координат на дисплей, проверю точность уже под открытым небом. На этом пока все и всех с несбывшимся апокалипсисом! ;) Печатная плата (DipTrace) | |
Просмотров: 45571 | Комментарии: 27
| Теги: |
Всего комментариев: 27 | ||||||||||||||||||||||
| ||||||||||||||||||||||
Проекты [46] |
Как подключить [32] |
Инструменты [3] |
Полезная информация [18] |
Объявления [3] |