Calcular velocidade e direção no microcontrolador ou no servidor remoto?

9

Suponha que eu tenha um dispositivo conectado a um carro que inclua um MCU e um módulo SIM908. A função do SIM908 é receber dados GPS de satélites e enviá-los ao servidor remoto através de 2G / GPRS, uma vez a cada minuto, para exibição na web. Agora, além de enviar a localização do GPS, também quero enviar a velocidade e a direção do carro. Sei que a velocidade e a direção podem ser calculadas a partir das coordenadas do GPS, mas não tenho certeza se o MCU pode lidar com esses cálculos.

Devo colocar esta tarefa no servidor remoto para diminuir a carga no MCU (como economia de energia, execução suave ...) ou processar diretamente no MCU? Você pode sugerir uma boa maneira de fazer essa tarefa?

juggernaut156
fonte

Respostas:

6

Como Bence diz, isso depende do chip e da precisão necessária.

Mas eu gostaria de acrescentar uma coisa: muitos GPS geram velocidade e rumo (direção) em uma de suas frases NMEA. Se o seu chip GPS fizer isso, você poderá usá-lo diretamente e não precisará calcular nada - basta usar os valores fornecidos pelo GPS.

vidarlo
fonte
5

Depende fortemente do MCU que você possui, mas acho que qualquer microcontrolador no mercado poderia lidar com essa tarefa facilmente. Calcular velocidade e direção a partir das coordenadas não é grande coisa. Acho que analisar as frases do GPS leva mais tempo de CPU.

  • Portanto, se você está apenas encapsulando os dados do GPS através do link GPRS, não processados, de modo que a sentença NMEA inteira seja inteira, faça o cálculo no lado do servidor.

  • Se você extrair as informações relevantes no MCU antes de enviá-lo, é recomendável que você calcule a velocidade e a direção no MCU. Eu manteria toda a lógica (análise + cálculo) do mesmo lado. Não tem um pouco aqui e um pouco lá, isso apenas complica as coisas.

Algumas outras coisas em que eu pensaria antes de tomar a decisão:

  • Se você usar o dispositivo com bateria e estiver com pouca energia, poderá executar o processamento no lado do servidor possível, e o MCU poderá dormir mais e apenas acordar para consultar o GPS e enviar os dados.

  • Não sei qual tarifa móvel você possui para o SIM908, mas se o custo e cada kB enviado são importantes, extraia e calcule tudo o que o MCU reduzir para o tráfego de dados no link GPRS.

Bence Kaulics
fonte
4

Como uma pessoa que criou um sistema de gerenciamento de frota processando dados de dispositivos com receptores GPS que atualmente atendem a dois milhões de unidades que consistem em mais de mil tipos diferentes de rastreadores de centenas de fabricantes em todo o mundo, tenho apenas um conselho: faça tudo o que puder no lado do dispositivo e confie no servidor apenas para armazenamento estável para mensagens brutas de telemetria. Velocidade e curso você pode ler do receptor GPS, mas também não se esqueça de fornecer ao servidor quantidade de satélites, hdop e outros parâmetros. Seu dispositivo conectado às linhas de eletricidade do carro, para que você não precise economizar energia e os preços do tráfego dos SIMs diminuem a cada ano. Portanto, basta enviar o que puder captar e acreditar com cada servidor de dados, às vezes, pode fazer mais do que você imagina.

E não esqueça que a maioria dos servidores está apenas gravando no banco de dados, especialmente em sistemas de alta carga, eles não têm acesso rápido (ou às vezes nenhum) à mensagem anterior do seu dispositivo e não podem fazer nenhum cálculo antes de salvar a mensagem.

shal
fonte