mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik GPS Distanz und Richtung mit AVR berechnen


Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,
nach dem sich mein Sohn mit der ganzen Schulklasse beim Wandertag im
Wald verlaufen hatte (sind aber doch noch alle heil zu Hause
angekommen) möchte ich ihm einen "Wegnachhausefinder" basteln.
NMEA Daten parsen ist ja kein Problem.
ABER:
Distanz und Richtung zum Abgespeicherten Wegpunkt berechnen...
Ich habe etwas gegurgelt udn das hier gefunden.
http://www.herrmann-w.de/Geocaching/Downloads/Richt.XLS
=SIN(G3*PI()/180)*SIN(G6*PI()/180)+COS(G3*PI()/180)*COS(G6*PI()/180)*COS 
((G4-G7)*PI()/180)
wird ua als Formel angegeben.
Was ein Polardreieck ist und das man "mal PI durch 180" rechnen muss,
habe ich auch verstanden.
Aber das ganze Sinus und Cosinus geraffel kann ich doch mitm Mega88
knicken, oder?
Also die Portierung der Excel Datei nach ASM oder besser nach C passt
doch im Leben nie nicht in 8K Flash.

Mein FastAVR Basic kann sogar die ganzen Winkelfunktionen - ob das
schnell genug geht?
Na - vielleicht hat ja jemand schonmal eine ähnlich Idee verfolgt und
kann was dazu sagen.
Sinuns und Cosinus kann man evtl. als Tabelle ablegen, Pi entsprechend
auf 4Byte skalieren. Mal sehn, wie schnell das ganze wird.
N4TXI wird sicher nichts dagegen haben, wenn ich mir die NMEA Parserei
aus seinem "WhereAVR" Projekt mal ausborge:-)

Viele Grüße
73 DG1RTO
AxelR.

Autor: romanua (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

>Pi entsprechend auf 4kByte skalieren.

Pi/2 reichen aus. Zwischen zwei Punkten kann man dazu linear
interpolieren. Welche Werte nehmen Gx an?

Gruss

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

in der Spalte "G" sind die Breiten und Längengrade als Dezimalzahl
hochgerechnet. Aus zB.
A3 |B3 |C3
---+---+---
51°|14'|4,2"
---+---+---
 wird dann in Zelle "G3"
via A3+B3/60+C3/3600
 51,2345
Länengrade ebenso - nur das wir uns hier nicht um 50 rum bewegen,
sondern "nur" um 12-13-14 Grad (glaube ich).
Das ist aber nur die Entfernungsberechnung, der Kurs ist dann doch noch
ein Zacken schärfer :-))
Ich würde das schon gern in WinAVR machen, schon damit auch mal ein
anderer draufsehen kann. Leider habe ich da noch keine Erfahrungen.
WinAVR ist zwar eingerichtet und comiliert auch alles ordentlich. Was
ein Makefile ist, weiss ich auch. Aber sonst muss ich mich erstmal
belesen. PI(), SIN() usw. wird es ja in C geben, denke ich.
Muss halt nur schauen, welche *.h ich da einbinden muss.
Na, wird schon werden; N4TXI hat ja gezeigt, wie - und das - es geht.

mny tnks an dieser Stelle gg

Sonst muss ich es mit FastAVR machen grusel .

Gruss zurück

AxelR.

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Axel,

zu diesem Thema habe ich mir auch schon Gedanken gemacht und ein
einfaches Rechenverfahren genutzt, um die Entfernung zw. zweich
Punkten hinreichend genau zu bestimmen.

http://www.mikrocontroller.net/forum/read-4-354990.html

Ein ATmega8 mit 8k Flash erfüllt die Aufgabe ganz ordentlich.

Bernhard

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heftig!

!!RESPEKT!!

und vor allen Dingen: fertig geworden!

Vielen herzlichen Dank, werde ich mir mal genauer ansehen...

Gruß
AxelR.

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@AxelR

>Vielen herzlichen Dank, werde ich mir mal genauer ansehen...

Dieses Projekt wurde zwar in Assembler geschrieben, aber ich habe
versucht, den Rechenweg vernünftig und nachvollziehbar zu
dokumentieren.

Bernhard

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.