GPS хакерского разлива: железо и NEO-6M
Содержание:
1. GPS;
2. NMEA-0183;
3. Алгоритм Брезенхема;
4. Железо и NEO-6M (Вы читаете данный раздел);
5. Программа.
• Отладочная плата STM32F3-Discovery;
• модуль UART GPS NEO-6M от WaveShare на базе приемника u-blox NEO-6M;
• ЖК-матрица МТ-12864А.
На ЖК-экране я не буду подробно останавливаться и лишь скажу, что сделан он на базе контроллеров KS0108, а схема подключения к STM32F3-Discovery не изменилась: разъем для подключения экрана содержит в себе 20 пинов, описание представлено в списке по следующей маске: [номер] — [название из даташита] — [описание из даташита] — [куда подключается].
1 — Ucc — питание — к 5V на Discovery.
2 — GND — земля — к GND на Discovery.
3 — Uo — вход питания ЖК-панели для управления контрастностью — к подстроечному резистору.
4..11 — DB0.. DB7 — шина данных — к PD0..PD7 на Discovery.
12, 13 — Е1, Е2 — выбор контроллера — к PD8?PD9 на Discovery.
14 — RES — сброс — к PD10 на Discovery.
15 — R/W — выбор: чтение/запись — к PD11 на Discovery.
16 — A0 — выбор: команда/данные — к PD12 на Discovery.
17 — Е — стробирование данных—к PD13 на Discovery.
18 — Uee — выход DC-DC преобразователя — к подстроечному резистору.
Данный приемник производится швейцарской компанией u-blox, основанной в 1997 году. Линейка модулей Neo-б представлена разновидностями G, Q, М, Р, V и Т, каждый из которых обладает своими характерными возможностями: например, Neo-6P имеет возможность очень точного (с ошибкой < 1 м) определения положения за счет метода Precise Point Positioning (РРР).
Приемник Neo-6M обладает следующими свойствами:
• время холодного или теплого старта — 27 с;
• время горячего старта — 21 с;
• максимальная частота выдачи информации — 1 Гц;
• максимальная точность определения положения — 2,5 м;
• максимальная точность определения скорости — 0,1 м/с;
• максимальная точность определения курса — 0,5 градуса.
Neo-6M умеет использовать SBAS (Satellite Based Augmentation System) — спутниковые системы дифференциальной коррекции, что увеличивает точность определения положения до 2 м, а также AGPS (Assisted GPS) для снижения времени холодного старта. Получение данных AGPS происходите сайта u-blox с помощью сервисов AssistNow Online и AssistNow Offline (долгосрочный альманах). Модуль обладает поддержкой протоколов NMEA, UBX и RTCM. UBX — проприетарный протокол от u-blox, a RTCM — протокол для передачи модулю данных о дифференциальной коррекции DGPS. Также для связи доступны интерфейсы UART, I2C, SPI и USB.
Для работы с приемниками существует оригинальная утилита u-center, имеющая на момент написания статьи версию 8.11 (рис. ниже).
Видно, что Neo-6M обладает огромным потенциалом, но детально описать все его возможности не хватит места, поэтому ограничимся предлагаемыми из коробки: только UART на скорости 9600, только NMEA, частота импульсов — 1 Гц.
В плане подключения все предельно просто: линии VCC, GND, RX и ТХ на приемнике подключаем к +3.3V, GND, PA9 и PA10 на Discovery соответственно.
1. GPS;
2. NMEA-0183;
3. Алгоритм Брезенхема;
4.
5. Программа.
• Отладочная плата STM32F3-Discovery;
• модуль UART GPS NEO-6M от WaveShare на базе приемника u-blox NEO-6M;
• ЖК-матрица МТ-12864А.
На ЖК-экране я не буду подробно останавливаться и лишь скажу, что сделан он на базе контроллеров KS0108, а схема подключения к STM32F3-Discovery не изменилась: разъем для подключения экрана содержит в себе 20 пинов, описание представлено в списке по следующей маске: [номер] — [название из даташита] — [описание из даташита] — [куда подключается].
1 — Ucc — питание — к 5V на Discovery.
2 — GND — земля — к GND на Discovery.
3 — Uo — вход питания ЖК-панели для управления контрастностью — к подстроечному резистору.
4..11 — DB0.. DB7 — шина данных — к PD0..PD7 на Discovery.
12, 13 — Е1, Е2 — выбор контроллера — к PD8?PD9 на Discovery.
14 — RES — сброс — к PD10 на Discovery.
15 — R/W — выбор: чтение/запись — к PD11 на Discovery.
16 — A0 — выбор: команда/данные — к PD12 на Discovery.
17 — Е — стробирование данных—к PD13 на Discovery.
18 — Uee — выход DC-DC преобразователя — к подстроечному резистору.
NEO-6M
Данный приемник производится швейцарской компанией u-blox, основанной в 1997 году. Линейка модулей Neo-б представлена разновидностями G, Q, М, Р, V и Т, каждый из которых обладает своими характерными возможностями: например, Neo-6P имеет возможность очень точного (с ошибкой < 1 м) определения положения за счет метода Precise Point Positioning (РРР).
Приемник Neo-6M обладает следующими свойствами:
• время холодного или теплого старта — 27 с;
• время горячего старта — 21 с;
• максимальная частота выдачи информации — 1 Гц;
• максимальная точность определения положения — 2,5 м;
• максимальная точность определения скорости — 0,1 м/с;
• максимальная точность определения курса — 0,5 градуса.
Neo-6M умеет использовать SBAS (Satellite Based Augmentation System) — спутниковые системы дифференциальной коррекции, что увеличивает точность определения положения до 2 м, а также AGPS (Assisted GPS) для снижения времени холодного старта. Получение данных AGPS происходите сайта u-blox с помощью сервисов AssistNow Online и AssistNow Offline (долгосрочный альманах). Модуль обладает поддержкой протоколов NMEA, UBX и RTCM. UBX — проприетарный протокол от u-blox, a RTCM — протокол для передачи модулю данных о дифференциальной коррекции DGPS. Также для связи доступны интерфейсы UART, I2C, SPI и USB.
Для работы с приемниками существует оригинальная утилита u-center, имеющая на момент написания статьи версию 8.11 (рис. ниже).
Видно, что Neo-6M обладает огромным потенциалом, но детально описать все его возможности не хватит места, поэтому ограничимся предлагаемыми из коробки: только UART на скорости 9600, только NMEA, частота импульсов — 1 Гц.
В плане подключения все предельно просто: линии VCC, GND, RX и ТХ на приемнике подключаем к +3.3V, GND, PA9 и PA10 на Discovery соответственно.