Calculer la vitesse et la direction sur un microcontrôleur ou sur un serveur distant?

9

Supposons que j'ai un appareil connecté à une voiture qui comprend un MCU et un module SIM908. La fonction du SIM908 est de recevoir les données GPS des satellites, puis de les envoyer au serveur distant via 2G / GPRS une fois par minute pour les afficher sur le Web. Maintenant, en plus d'envoyer la position GPS, je veux également envoyer la vitesse et la direction de la voiture. Je sais que la vitesse et la direction peuvent être calculées à partir des coordonnées GPS, mais je ne sais pas si le MCU peut gérer ces calculs.

Dois-je mettre cette tâche sur le serveur distant pour diminuer la charge sur le MCU (comme économiser de l'énergie, un bon fonctionnement ...) ou traiter directement sur le MCU? Pouvez-vous suggérer une bonne façon d'accomplir cette tâche?

juggernaut156
la source

Réponses:

6

Comme le dit Bence, cela dépend de la puce et de la précision nécessaires.

Mais je voudrais ajouter une chose: de nombreux GPS affichent la vitesse et le cap (direction) dans l'une de leurs phrases NMEA. Si votre puce GPS le fait, vous pouvez l'utiliser directement et vous n'aurez rien à calculer - utilisez simplement les valeurs fournies par le GPS.

vidarlo
la source
5

Cela dépend fortement du MCU que vous avez, mais je pense que tout microcontrôleur sur le marché pourrait gérer cette tâche facilement. Le calcul de la vitesse et de la direction à partir des coordonnées n'est pas un problème. Je pense que l'analyse des phrases GPS prend plus de temps CPU.

  • Donc, si vous tunnelisez simplement les données GPS via la liaison GPRS, non traitées, donc toute la phrase NMEA en un seul morceau, faites le calcul côté serveur.

  • Si vous extrayez les informations pertinentes sur le MCU avant l'envoi, le calcul de la vitesse et de la direction est également recommandé sur le MCU. Je garderais toute la logique (analyse + calcul) du même côté. N'en avez pas un peu ici et un peu là, ça ne fait que compliquer les choses.

Quelques autres choses auxquelles je penserais avant de prendre la décision:

  • Si vous exécutez l'appareil à partir de la batterie et que vous êtes à court d'énergie, vous pouvez effectuer autant de traitement côté serveur que possible, et votre MCU peut dormir davantage et ne se réveiller que pour interroger le GPS et envoyer les données.

  • Je ne sais pas quel tarif mobile vous avez pour le SIM908, mais si le coût et chaque Ko envoyé sont importants, extrayez et calculez tout le MCU pour réduire le trafic de données sur la liaison GPRS.

Bence Kaulics
la source
4

En tant que personne qui a créé un système de gestion de flotte traitant des données à partir d'appareils avec des récepteurs GPS qui desservent actuellement deux millions d'unités et qui se composent de plus de mille types différents de ces trackers de centaines de fabricants à travers le monde, je n'ai qu'un seul conseil à vous donner - faites tout ce que vous pouvez côté périphérique et ne comptez sur le serveur que pour un stockage stable des messages de télémétrie bruts. La vitesse et le cours que vous pouvez lire à partir du récepteur GPS, mais n'oubliez pas de fournir au serveur une quantité de satellites, hdop et d'autres paramètres. Votre appareil est connecté aux lignes électriques de la voiture, vous n'avez donc pas besoin d'économiser de l'énergie et les prix du trafic des cartes SIM baissent chaque année. Il suffit donc d'envoyer tout ce que vous pouvez attraper et croire avec chaque élément du serveur de données peut parfois faire plus que vous ne pouvez l'imaginer.

Et n'oubliez pas que la plupart des serveurs écrivent simplement dans la base de données, en particulier dans les systèmes à charge élevée, ils n'ont pas d'accès rapide (ou parfois pas du tout) au message précédent de votre appareil et ne peuvent faire aucun calcul avant d'enregistrer le message.

châle
la source