km zählen mit gps

Hallo zusammen,
ich möchte einen Kilometerzähler (Distanz) mit gps realisieren. Als Bord nehme ich einen Mega 2560 mit einem 3.2" TFT Display, als GPS-Modul werde ich das NANO GPS Click verwenden. Das Auslesen der Daten (Speed etc.) ist kein Problem, nur komme ich bei der Distanz nicht weiter. Das ganze soll einfach nur die gefahrene Distanz zwischen zwei Punkten berechnen, bzw. die km dann mit der nächsten Distanz addieren, so wie beim Reisecomputer in den Navis. Ich weiss leider nicht, wie man die gps-koordinaten so umrechnet, das entsprechende Werte für die km berechnung herauskommen.
Hat jemand entsprechende Denkanstöße ?

Danke.

Du solltest Dich mal mit geografischen Ortsbestimmung befassen.

Wenn wir die Abweichung der Erde von der Kugelform und die Meereshöhe nicht berücksichtigen:
Der Winkel der Geografischen Breite entspricht überall einer konstanten Länge von ca 111km pro °
Die Länge der geografischen Länge hängt von der Breite ab. Am Äquator sind das ca 111 km pro °, während am Pol alle Längengrade zusammenlaufen.

Grüße Uwe

Hallo,
für das, was Du da vor hast, wird die RechenPower eines ArduinoMega nicht
reichen.
Du kannst es ja einmal "einfach versuchen".

Aus dem VTG-Datensatz bekommst Du die Geschwindigkeit in km/h.
Aus dem ZDA-Datensatz wird Dir eine genaue Zeit geliefert.
Aus dem RMC-Datensatz Deine aktuelle Position und den Kurs.

Mit diesen Informationen kannst Du schon eine Menge anfangen.
Du drückst also die StartTaste.
Dann speicherst Du die aktuelle Position und die Zeit ab.
Nun setzt Du Dich in Bewegung.

Mit einer bestimmten Zeit und einer bestimmten Geschwindigkeit kannst Du Dir
immer die zurückgelegte Strecke anzeigen lassen. Einfaches Beispiel:
30min. mit 20km/h ist- zurückgelegte Strecke gleich 10km.

Das kannst Du Dir ganz "einfach" errechnen und auch lfd. anzeigen lassen.
Nun drückst Du Stop und speicherst die Position und die Zeit.
Jetzt hast Du
-die StartZeit
-die EndZeit
-die Startposition
-die Endposition
-die errechnete ReiseZeit
-die errechnete zurückgelegte Strecke

Das kannst Du für die Dauer Deiner Reise auch automatisch machen. Bei jedem
KursWechsel speicherst Du ab. Nun hast Du auch eine Route.

Und alles ohne geografischen Ortsbestimmung- ganz einfach.

"die km dann mit der nächsten Distanz addieren"

Wie das geht, hat uwefed Dir ja schon erklärt. Du brauchst also nur die Formel
in den Sketch hämmern und "ab geht die Lutzi"
Gruß und viel Spaß dabei
Andreas

Hallo,
erstmal Danke für die Antworten. Da ich ja keine Ortsbestimmung und Routenaufzeichnung brauche, sondern nur einen einfachen km-zähler, ist die Lösung mit Zeit/Geschwindigkeit wahrscheinlich die einfachere (bessere?) Lösung.

Gruß
Erhard

Arduinokiller1:
... Da ich ja keine Ortsbestimmung und Routenaufzeichnung brauche, sondern nur einen einfachen km-zähler, ist die Lösung mit Zeit/Geschwindigkeit wahrscheinlich die einfachere (bessere?) Lösung.

Meiner Meinung nach ist eine einfachere Lösung immer die bessere Lösung. Mir fällt zumindest im Moment kein Gegenbeispiel ein.

Gruß

Gregor

Du mußt aber dann entweder einen Durchschnittsgeschwindigkeit über die gesamte Zeit ausrechnen oder die Summe des Weges über die Summe der Teilstrecken für jedes Datenpacket errechnen.

Grüße Uwe

Hallo zusammen,

meine Idee wäre, die Geschwindikeit alle 2 sec. aus dem VTG-Datensatz auslesen, durch 1800 teilen. Das Ergebniss würde ich in eine Variable schreiben, bzw. addieren und sobald die 1000 m voll sind, die Anzeige um 1 erhöhen, der Rest bleibt zum weiterzählen in der Variablen.

Ansonsten bin ich noch auf folgendes gestoßen: Entfernungsberechnung

Kann der Arduino mit dem Wert "acos" (Arkuskosinus) arbeiten ? In der Referenz habe ich nur sin, cos, und tan gefunden.

Gruß
Erhard

Hallo,
schaue mal unter 4.2.1.1.
Gruß und Spaß
Andreas

Km berechnen indem man alle 2sec die Geschwindigkeit misst und umrechnet funktioniert nur bei Bewegungen mit hoher Änderungsträgheit. Soll heisen, wenn du es am Körper trägst wird das nichts. Abweichungen von 50% sind drin. Ein Schiff dagegen würde man mit weniger als 0,1% Fehler berechnen können.

Alle Fahrzeuge haben relativ gleichförmige Bewegungen, eventuell muss man die Zeit reduzieren. Der menschliche Körper hat keine gleichförmige Bewegung. Dein Oberkörper bewegt sich zum Gleichgewichtsausgleich ziemlich viel und abweichend von der eigentlichen Bewegungsrichtung. Denk mal drüber nach, das du die Lichtgeschwindigkeit als Messreferenz benutzt. bzw ein GPS die Geschwindigkeit aus der Frequenzverschiebung (Dopplereffekt) berechnet. Gerade wenn man langsam unterwegs ist, hat man nur sehr sehr kleine Verschiebung.

Alles in allem, viel Fehlerquellen, wenig Genauigkeit, dafür auch wenig Programmieraufwand. Würde das alles so einfach gehen, müsste man nicht viel Zeit und Gehirnschmalz investieren ein Navi zu bauen,

Hallo,
das geht so einfach. Auf jeder Landkarte ist jede Position durch das "internationale" Gitter bekannt.
Das einzige Gehirnschmalz im Navi ist die Routenplanung, die Positionsbestimmung ist Mathe- und beim Navi
Mathe und Mogeln.
Gruß und Spaß
Andreas

jo, das mogeln ist der Gehirnschmalz, damit der Kunde es nicht merkt

SkobyMobil:
Das einzige Gehirnschmalz im Navi ist die Routenplanung

Ich Idiot habe mir als „jetzt lerne ich C++“-Aufgabe eine „Wegsuche“ vorgenommen. War eine ziemlich blöde Idee, weil das tatsächlich nicht ohne ist. Immerhin bin ich auf etwas gekommen, was eine uninformierte Variante des A*-Algorithmus ist. Aber dass etwas, das intuitiv sehr einfach aussieht, eine hundsgemeine Pfriemelei ist, lernt man ja immer wieder :slight_smile:

Gruß

Gregor

Hallo,
ja die Routenplanung läßt ein leise weinend zu Grunde gehe.
Wenn man Start, Weg und Ziel hat, dann ist das kein Problem.
Wenn aber der Weg wegfällt, dann rafft es Dich nieder.
Kann mir aber egal sein, ich nutze Landkarte und Stadtplan.
Gruß und Spaß
Andreas

@ chefin: ich will das Projekt nicht am Köper oder sonstewo tragen. Das ganze wird am Motorroller (50 ccm) angebracht.

@SkobyMobil: Danke für den Link, ist sehr interessant.

Hintergrund des Projekts ist einfach den vorhanden Tacho, der nur sporatisch funktioniert mit einem 2. zu ergänzen, damit ich weiß, wie schnell ich ungefähr fahre und wie weit (soll ja nicht hochpräzise sein).
Brauch keine Routenplanung, Wegstreckenaufzeichnung, Karte mit Spurassistenz etc., wenn ich das alles brauchen würde könnte ich mir auch ein Motorrad-Navi für 400 € kaufen :angry:
Ja, ja ich weiß, Gerhinschmalz und Mathe waren noch nie meine Stärke :o

Gruß
Erhard

Arduinokiller1:
Kann der Arduino mit dem Wert "acos" (Arkuskosinus) arbeiten ? In der Referenz habe ich nur sin, cos, und tan gefunden.

Die Standard Arduoino Referenz ist da wenig hilfreich. Die bezieht sich mehr auf die Arduino API als auf die eigentlichen Bibliotheken die im Hintergrund eingebunden werden

Hier steht was es alles an Mathematik gibt:
http://www.nongnu.org/avr-libc/user-manual/group__avr__math.html