Код AVR для преобразования координат GPS в формат NMEA

Я сделал приложение для Android, которое берет данные с GPS и отправляет их. Он забирается aPC и отправляется через USB в комплект AVR, который должен преобразовать формат долготы и широты в формат NMEA и вернуть его обратно на USB. Формат сообщения:

широта = ’23 .353434333 ‘и долгота = ’45 .34333345’

Мне нужно преобразовать вышеупомянутое сообщение с использованием ATmega32 в формат NMEA GPS, но, поскольку я не знаю, как программировать AVR, кто-нибудь может подсказать, как я могу это сделать или код выше?

-1

Решение

То, что у вас нет опыта программирования AVR, не имеет ничего общего с реализацией NMEA. Знание C однако поможет;)

Ваше заданное представление широта = ’23 .353434333 ‘и долгота = ’45 .34333345’ называется десятичные градусы (в вашем примере отсутствует индикация N / S и E / W).

Я предполагаю, что вы знаете, что NMEA — это спецификация протокола, а не просто формат координат. Стандарт NMEA использует следующие обозначения координат в наборах данных:

XXYY.ZZZZ

Это может быть непосредственно представлено в градусы минуты секунды формат как это:

XX ° YY ‘(0.ZZZZ * 60) «

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

десятичные градусы = градусы + минуты / 60 + секунды / 3600

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

Набор данных NMEA выглядит следующим образом:

$ GPRMC, 162614, A,5230.5900, N, 01322.3900, Е,10.0,90.0,131006,1.2, Е, А * 13

Я выделил информацию о координатах жирным шрифтом. Реализация преобразования не является чем-то особенным, в то время как реализация протокола NMEA требует дополнительного чтения о деталях реализации.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]