Рассчитать скорость и направление на микроконтроллере или на удаленном сервере?


9

Предположим, у меня есть устройство, подключенное к машине, которое включает в себя MCU и модуль SIM908. Функция SIM908 состоит в том, чтобы получать GPS-данные со спутников, а затем отправлять их на удаленный сервер через 2G / GPRS один раз в минуту для отображения в Интернете. Теперь, помимо отправки местоположения по GPS, я хочу также указать скорость и направление движения автомобиля. Я знаю, что скорость и направление можно рассчитать по координатам GPS, но я не уверен, что MCU справится с этими вычислениями.

Должен ли я поставить эту задачу на удаленный сервер, чтобы уменьшить нагрузку на MCU (например, энергосбережение, плавная работа ...) или напрямую обработать на MCU? Можете ли вы предложить хороший способ решения этой задачи?

Ответы:


6

Как говорит Бенс, это зависит от чипа и необходимой точности.

Но я хотел бы добавить одну вещь: многие GPS выводят скорость и направление (направление) в одном из своих предложений NMEA. Если ваш GPS-чип делает это, вы можете использовать это напрямую, и вам не придется ничего вычислять - просто используйте значения, предоставленные GPS.


5

Это сильно зависит от вашего MCU, но я думаю, что любой микроконтроллер на рынке мог бы легко справиться с этой задачей. Расчет скорости и направления по координатам не имеет большого значения. Я думаю, что анализ предложений GPS занимает больше времени процессора.

  • Так что, если вы просто туннелируете данные GPS по каналу GPRS, необработанные, так что все предложение NMEA в одном куске, тогда сделайте расчет на стороне сервера.

  • Если вы извлекаете соответствующую информацию на MCU перед отправкой, то вычисление скорости и направления рекомендуется выполнять также на MCU. Я бы держал всю логику (разбор + расчет) на одной стороне. Не иметь немного здесь и немного там, что только усложняет вещи.

Некоторые другие вещи, о которых я бы подумал, прежде чем принимать решение:

  • Если вы запускаете устройство от батареи и у вас мало энергии, то вы можете выполнять как можно большую часть обработки на стороне сервера, и ваш MCU может больше спать и только просыпается, чтобы запросить GPS и отправить данные.

  • Я не знаю, какой у вас мобильный тариф для SIM908, но если имеет значение стоимость и каждый отправленный килобайт, то извлеките и рассчитайте все одно MCU, чтобы уменьшить трафик данных по каналу GPRS.


4

Как человек, который создал систему управления автопарком, обрабатывая данные с устройств с GPS-приемниками, которые в настоящее время обслуживают два миллиона устройств, состоящих из более чем тысячи различных типов таких трекеров от сотен производителей по всему миру, у меня есть только один совет - делайте все, что можете на стороне устройства и полагаться на сервер только для стабильного хранения для необработанных телеметрических сообщений. Скорость и курс вы можете прочитать с приемника GPS, но также не забудьте доставить на сервер количество спутников, hdop и другие параметры. Ваше устройство подключено к автомобильным линиям электропередачи, поэтому вам не нужно экономить электроэнергию, а цены на трафик SIM-карт снижаются с каждым годом. Так что просто отправьте все, что вы можете поймать и верить, что каждый сервер данных иногда может сделать больше, чем вы можете себе представить.

И не забывайте, что большинство серверов просто записывают данные в базу данных, особенно в системах с высокой нагрузкой, они не имеют быстрого (а иногда и вовсе) доступа к предыдущему сообщению с вашего устройства и не могут выполнять какие-либо вычисления перед сохранением сообщения.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.