Geschwindigkeit und Richtung auf dem Mikrocontroller oder auf dem Remote-Server berechnen?

9

Angenommen, ich habe ein Gerät an einem Auto angebracht, das eine MCU und ein SIM908-Modul enthält. Die Funktion des SIM908 besteht darin, GPS-Daten von Satelliten zu empfangen und diese dann einmal pro Minute über 2G / GPRS an den Remote-Server zu senden, um sie im Internet anzuzeigen. Neben dem Senden des GPS-Standorts möchte ich jetzt auch die Geschwindigkeit und Richtung des Autos senden. Ich weiß, dass Geschwindigkeit und Richtung aus den GPS-Koordinaten berechnet werden können, bin mir aber nicht sicher, ob die MCU diese Berechnungen durchführen kann.

Sollte ich diese Aufgabe auf den Remote-Server stellen, um die Belastung der MCU zu verringern (z. B. Energie sparen, reibungsloser Betrieb ...) oder direkt auf der MCU verarbeiten? Können Sie einen guten Weg vorschlagen, um diese Aufgabe zu erledigen?

juggernaut156
quelle

Antworten:

6

Wie Bence sagt, hängt es vom Chip und der erforderlichen Genauigkeit ab.

Aber ich möchte eines hinzufügen: Viele GPS-Geräte geben Geschwindigkeit und Richtung (Richtung) in einem ihrer NMEA-Sätze aus. Wenn Ihr GPS-Chip dies tut, können Sie dies direkt verwenden und müssen nichts berechnen - verwenden Sie einfach die vom GPS bereitgestellten Werte.

vidarlo
quelle
5

Es hängt stark von der MCU ab, die Sie haben, aber ich denke, jeder Mikrocontroller auf dem Markt könnte diese Aufgabe leicht bewältigen. Die Berechnung von Geschwindigkeit und Richtung aus den Koordinaten ist keine große Sache. Ich denke, das Parsen der GPS-Sätze nimmt mehr CPU-Zeit in Anspruch.

  • Wenn Sie also nur die GPS-Daten unverarbeitet über die GPRS-Verbindung tunneln, also den gesamten NMEA-Satz in einem Stück, führen Sie die Berechnung auf der Serverseite durch.

  • Wenn Sie die relevanten Informationen vor dem Senden auf der MCU extrahieren, wird empfohlen, Geschwindigkeit und Richtung auch auf der MCU zu berechnen. Ich würde alle Logik (Parsen + Berechnung) auf der gleichen Seite halten. Haben Sie nicht ein bisschen hier und ein bisschen dort, das macht die Dinge nur komplizierter.

Einige andere Dinge, an die ich denken würde, bevor ich die Entscheidung treffe:

  • Wenn Sie das Gerät mit Akku betreiben und wenig Strom haben, können Sie so viel wie möglich auf der Serverseite verarbeiten, und Ihre MCU kann länger schlafen und nur aufwachen, um das GPS abzufragen und die Daten zu senden.

  • Ich weiß nicht, welchen Mobilfunktarif Sie für das SIM908 haben, aber wenn die Kosten und jeder gesendete kB von Bedeutung sind, extrahieren und berechnen Sie alles auf der MCU, um den Datenverkehr über die GPRS-Verbindung zu reduzieren.

Bence Kaulics
quelle
4

Als eine Person, die ein Flottenmanagementsystem erstellt hat, das Daten von Geräten mit GPS-Empfängern verarbeitet, die derzeit zwei Millionen Einheiten bedienen und aus mehr als Tausenden verschiedener Arten solcher Tracker von Hunderten von Herstellern weltweit bestehen, habe ich nur einen Rat an Sie: Tun Sie alles, was Sie können auf der Geräteseite und verlassen Sie sich nur auf den Server, um eine stabile Speicherung für rohe Telemetrienachrichten zu gewährleisten. Geschwindigkeit und Kurs können Sie vom GPS-Empfänger ablesen, aber vergessen Sie auch nicht, dem Server eine Menge Satelliten, HDOP und andere Parameter zu liefern. Ihr Gerät ist an die Stromleitungen des Autos angeschlossen, sodass Sie keinen Strom sparen müssen und die Preise für den SIM-Verkehr jedes Jahr sinken. Senden Sie also einfach alles, was Sie fangen und glauben können, dass jeder Datenserver manchmal mehr kann, als Sie sich vorstellen können.

Und vergessen Sie nicht, dass die meisten Server nur in die Datenbank schreiben, insbesondere in Hochlastsystemen. Sie haben keinen schnellen (oder manchmal überhaupt) Zugriff auf vorherige Nachrichten von Ihrem Gerät und können vor dem Speichern der Nachricht keine Berechnungen durchführen.

soll
quelle