2009-07-28 3 views
2

Я столкнулся с ситуацией, когда я могу чувствовать себя обязанным разработать простое приложение GPS для работы в качестве спидометра. Он будет разработан для более старого КПК с ограничениями процессора (162 МГц ARM) и ОЗУ (4 МБ), разговаривающих с последовательным приемником GPS.Последовательный GPS как спидометр

Действительно ли это осуществимый проект? Он не обязательно должен быть гоночным, но достаточно близко, чтобы соответствовать ограничениям скорости.

Где я начинаю для GPS спецификации, получать данные через последовательный и т.д.

ответ

2

У КПК должно быть достаточно ресурсов для получения навигационных данных с GPS. Большинство GPS-приемников выплетают стандартный запрос NMEA в формате ASCII, описанный here. Приговор, который вас больше всего интересует, - VTG, так как он включает в себя наземную скорость в километрах.

Вам нужно будет проверить, позволяет ли ваш конкретный GPS-приемник выбрать, какое предложение (-ые) NMEA оно отправляет. Некоторые из них отправят только предложение GGA, которое даст вам значение lat/long/heightitude (обычно называемое координатами WGS-84). Тогда вам придется делать математику, чтобы выяснить скорость самостоятельно. Алгоритмы будут преобразовываться из WGS-84 в координаты с земной ориентацией (ECEF) с заземлением, а затем принимать различия для вычисления скорости. Это намного более интенсивно вычислительно, чем GPS, это делает вас уязвимыми, если вы не добавляете какую-то фильтрацию и, вероятно, неточно из-за ошибок положения в последовательных чтениях.

Вы можете спросить, почему предложение VTG было бы лучше по ошибке. GPS-приемники могут использовать допплеровский сдвиг в GPS-сигнале для оценки скорости, которая намного точнее, чем разница в позиции. Есть хорошее описание here.

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

0

Eric S. Raymond написал отличный кусок (и громкие слова) о Hacking with GPS.

+0

Это было действительно полезно. Благодаря! – morgant

Смежные вопросы