mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik GPS Bogensekunden


Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich sitze gerade vor folgendem Problem:
Ich möchte die Breite und Länge auf einem LCD Display anzeigen.
Soweit funktioniert das auch super. Nur die Werte für die Bogensekunde 
stimmen überhaupt nicht.
(empfange 12Satteliten davon 10 fix)
Wo mache ich da etwas falsch?
Gruß Dirk

Auszug Header
typedef struct{
  uint8_t    Grad;
  uint8_t    Bogenminuten;
  uint16_t           Bogensekunden;
  uint8_t    NS;
}TBreite;

Auszug Main
Font_SetPos(2,40); // Anzeige Position festlegen
printf("Breite   %02d.%02d.%02d.%c",
         GPS_Daten0.Breite.Grad,
  GPS_Daten0.Breite.Bogenminuten,
  GPS_Daten0.Breite.Bogensekunden,
  GPS_Daten0.Breite.NS);

Font_SetPos(2,50); // Anzeige Position festlegen
printf("Laenge %02d.%02d.%02d.%c",       GPS_Daten0.Laenge.Grad,
  GPS_Daten0.Laenge.Bogenminuten,
  GPS_Daten0.Laenge.Bogensekunden,
  GPS_Daten0.Laenge.WE);

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Soweit funktioniert das auch super. Nur die Werte für die Bogensekunde
>stimmen überhaupt nicht.

Woher weisst du das? Was erwartest du und was wird angezeigt?

>Wo mache ich da etwas falsch?

Beim einlesen der Bogensekunden?

Sorry, zu wenig Infos.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Eigentlich wäre die Berechnung interessant.

MfG Spess

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

der Code ist von Marc Seiffert.
nähere Infos hier

Beitrag "GPS-Parser für XMEGA"

Gruß Dirk

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dirk schrieb:
> Hallo,
>
> der Code ist von Marc Seiffert.
> nähere Infos hier
>
> Beitrag "GPS-Parser für XMEGA"
>
> Gruß Dirk

Da kommen aber deine Variablen und Strukturen gar nicht vor!

So wirst du dir nicht viele Helfer finden, wenn sich die Helfer erst mal 
alles aus 25 Quellen zusammensuchen müssen, um dann die noch fehlenden 
Details zu erraten um daraus dann eine Hypothese abzuleiten, was du wohl 
alles falsch gemacht haben könntest.

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Angezeigt wird

Breite xx.xx.6837.N

richtig wäre aber

Breite xx.xx.4926.N   (laut Google Earth)

Gruß Dirk

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>  Ziel->Breite.Bogensekunden     = (Quelle[18]-48)*1000;
>  Ziel->Breite.Bogensekunden    += (Quelle[19]-48)*100;
>  Ziel->Breite.Bogensekunden    += (Quelle[20]-48)*10;
>  Ziel->Breite.Bogensekunden    += (Quelle[21]-48);

Liefert dein GPS vier Stellen für die Bogensekunden?

Hast du mal einen Terminal Mitschnitt vom GPS?

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>der Code ist von Marc Seiffert.
>nähere Infos hier

>Beitrag "GPS-Parser für XMEGA"

>Gruß Dirk

Das ist Müll. Die Stellen nach dem Komma müssen mit 60 Multipliziert 
werden. Der Intergerteil davon sind die Minuten. Der Nachkommateil davon 
x 60 ergibt die Sekunden.

MfG Spess

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Denke mal ja

holger schrieb:
>>  Ziel->Breite.Bogensekunden     = (Quelle[18]-48)*1000;
>
>>  Ziel->Breite.Bogensekunden    += (Quelle[19]-48)*100;
>
>>  Ziel->Breite.Bogensekunden    += (Quelle[20]-48)*10;
>
>>  Ziel->Breite.Bogensekunden    += (Quelle[21]-48);
>
>
>
> Liefert dein GPS vier Stellen für die Bogensekunden?

$GPRMC,215359.000,V,0000.0000,N,00000.0000,E,000.0,000.0,170111,,,N*78
$GPVTG,000.0,T,,M,000.0,N,000.0,K,N*02
$GPGGA,215400.000,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,0.0,M,,0000*6F
$GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30
$GPGSV,1,1,02,15,00,000,31,24,00,000,33*7B

soeben Mitgeschnitten. Ist zwar null Empfang (Fenster zu Rollo runter)
aber das tut ja nichts zur Sache.

Dirk

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Angezeigt wird
>
>Breite xx.xx.6837.N
>
>richtig wäre aber
>
>Breite xx.xx.4926.N   (laut Google Earth)


Ach Mann, das ist doch wieder das Ding mit den
Nachkommastellen. Das sind keine Sekunden sondern
Bruchteile von Minuten. Umrechnung: bemühe die Forensuche.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>soeben Mitgeschnitten. Ist zwar null Empfang (Fenster zu Rollo runter)
>aber das tut ja nichts zur Sache.

Klaro, wenn mein Fernseher nicht an ist kann ich dir
sagen welches Programm eingeschaltet ist. Pappnase;)

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Ach Mann, das ist doch wieder das Ding mit den
>Nachkommastellen. Das sind keine Sekunden sondern
>Bruchteile von Minuten. Umrechnung: bemühe die Forensuche.

Richtig.

MfG Spess

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Holger

der Mitschnitt war nur auf die Anzahl der Stellen für die Bogenkunde 
gedacht.
Wie gesagt wenn der Empfänger draußen liegt empfange ich 12Satteliten 
davon 10 fix.

Dirk

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Das ändert nichts daran, das die Berechnung in deiner Vorlage falsch 
ist.

MfG Spess

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dirk schrieb:
> @Holger
>
> der Mitschnitt war nur auf die Anzahl der Stellen für die Bogenkunde
> gedacht.
> Wie gesagt wenn der Empfänger draußen liegt empfange ich 12Satteliten
> davon 10 fix.

Dann mach draussen einen Mitschnitt und sieh dir an, was denn nun 
richtig ist.

Je nach verwendetem Erd und Kartenmodell können GPS Koordinaten 
nämlich durchaus von anderen veröffentlichten Daten abweichen.

D.h. wenn du vergleichen willst, dann Vergleich deinen Mitschnitt mit 
deiner Anzeige. Die müssen übreinstimmen. Aber Vergleich nicht mit einer 
Quelle, bei der du nicht weißt, wie die Daten aufbereitet wurden.

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ist ca. 30km daneben. Die Berechnung ist also nicht ganz richtig 
(falsch)

Danke für Eure Hilfe.

Dirk

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
0.6837 * 60 = 41 Sekunden

Gib das mal als Sekunden ein.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>0.6837 * 60 = 41 Sekunden
>Gib das mal als Sekunden ein.

0.6837 x 60 = 41.022 Minuten

0.022 x 60 = 1,32 Sekunden

MfG Spess

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Holger hast Recht: Nur Nachkommastellen x 60 = Sekunden

MfG Spess

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
holger schrieb:
>>  Ziel->Breite.Bogensekunden     = (Quelle[18]-48)*1000;
>
>>  Ziel->Breite.Bogensekunden    += (Quelle[19]-48)*100;
>
>>  Ziel->Breite.Bogensekunden    += (Quelle[20]-48)*10;
>
>>  Ziel->Breite.Bogensekunden    += (Quelle[21]-48)*60;

Dann wäre es ja so oder stehe ich jetzt ganz auf dem Schlauch.

Dirk

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Breite xx.xx.6837.N
>richtig wäre aber
>Breite xx.xx.4926.N   (laut Google Earth)

Mal so als Hinweis:

Breitengrade:

1° = 111,1  Kilometer
1' =   1852 Meter
1" =  ~  31 Meter

Und jetzt kannst du mal die angebliche Differenz ausrechnen.

Autor: Mir ist eh langweilig und ich kann nicht schlafen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dirk schrieb:
> holger schrieb:
>>>  Ziel->Breite.Bogensekunden     = (Quelle[18]-48)*1000;
>>
>>>  Ziel->Breite.Bogensekunden    += (Quelle[19]-48)*100;
>>
>>>  Ziel->Breite.Bogensekunden    += (Quelle[20]-48)*10;
>>
>>>  Ziel->Breite.Bogensekunden    += (Quelle[21]-48)*60;
>
> Dann wäre es ja so oder stehe ich jetzt ganz auf dem Schlauch.
>
> Dirk

Vorher wars richtig, entferne deine Verschlimmbesserung besser wieder.

Die Abweichung von der Googleposition hat nichts mit einem 
Umrechnungsfehler von Dezimalsekunden in Sekunden zu tun. Google benutzt 
wohl einfach ein anderes oder abgewandeltes geodätisches Referenzsystem 
und verursacht dadurch in deinem Fall eben eine Abweichung von 350 
Metern.

Habe grade mal nachgeschaut, Google werwendet eine einfache 
Zylinderprojektion mit dem WGS84 Referenzelipsoid, was die Unterschiede 
schon erklären könnte.

Das kannst du dir vereinfacht in etwa so vorstellen als das die Erde als 
Kugel (Elipsoid) angenommen wird und darauf eine Kartenhaut gespannt 
wird. Was dabei vernachlässigt wird ist die Tatsache das die Erde an 
manchen Stellen etwas höher, an anderen etwas tiefer ist. Durch diese 
Verzerrungen stimmt die Kartenhaut zwar an den meisten Stellen so 
ungefähr, sitzt aber manchmal doch etwas daneben.

Der Fehler kommt also nur daher das Google Earth die Luftbilder nicht 
exakt auf die Erde abbildet.
Als Beispiel hierfür kann man sich z.B. mal den 50. Breitengrad in der 
Mainzer Innenstadt in Google Earth anschauen ( 49°59'56.00"N, 
8°16'16.10"E ), der liegt auf den Bildern auch 4 Sekunden bzw. 120m 
daneben.

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.