PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche gps Modul



Der Einsteiger
05.06.2013, 19:33
Hallo Leute,

ich bin mal wieder auf der Suche nach etwas . Und zwar nach einem gps Modul ,was ich über Uart (5V Pegel) auslesen kann und was auch recht verbreitet ist.
(vielleicht sogar eins ,was ihr schon getestet habt ??? Navilock ???) Außerdem sollte es wenn möglich nicht zu teuer (nicht über 45-50€) sein und min. 4 Mal in der Sekunde eine Ausgabe machen.

Dieses Modul möchte ich für mein erstes ,bald auch als Thema erscheinendes , autonomes Fahrzeug (RC - Auto 1:10) verwenden.
Da ich noch nie mit gps zu tun hatte und auch noch nicht die richtigen Informationen dazu gefunden habe , würde ich auch noch gerne von euch wissen ,wo ich zum Beispiel Karten bekomme (Internet) ,von denen ich die Längen und Breitenkoordinaten (in dr Einheit passend zum Modul ) nehmen kann.

Wenn möglich würde ich gerne einen gps E. nehmen ,den ich bei amazon oder in einem recht bekannten online Fachhandel erwerben kann.

Ich bin schon gespannt auf die Empfehlungen ....
Und schon mal vielen Dank vorab. :)

Der Einsteiger

Dirk
05.06.2013, 20:13
Der NL-552ETTL könnte passen.

Der Einsteiger
05.06.2013, 20:26
Meinst du den ??? : http://www.amazon.de/Navilock-GPS-Engine-Module-NL-552ETTL/dp/B00304PRQ0/ref=sr_1_5?ie=UTF8&qid=1370456709&sr=8-5&keywords=navilock

Dirk
05.06.2013, 20:31
Genau. Und unbedingt das passende Anschlusskabel mitbestellen!

Der Einsteiger
05.06.2013, 20:36
Wird gemacht !! :) :)

Wie sieht es denn mit den Ausgaben aus ?? In welchem Format ??

Dirk
05.06.2013, 20:45
Stöber mal hier: http://www.rn-wissen.de/index.php/RP6v2_Orientierung
Da gibt's auch ein Software-Beispiel.

Der Einsteiger
05.06.2013, 20:53
Danke für den Link :) Das dort der gleiche Empfänger verwendet wird hatte ich schon ganz vergessen..... ](*,)

Der Einsteiger
07.06.2013, 08:21
Da ich noch nie mit gps zu tun hatte und auch noch nicht die richtigen Informationen dazu gefunden habe , würde ich auch noch gerne von euch wissen ,wo ich zum Beispiel Karten bekomme (Internet) ,von denen ich die Längen und Breitenkoordinaten (in dr Einheit passend zum Modul ) nehmen kann.
Und woher bekomme ich nun diese Daten ??

MagicWSmoke
07.06.2013, 09:02
Deine Frage ist unverständlich. Was für Kartendaten, Straßenkarten und für welchen Zweck?
Google Maps kann sowohl die Position zu eingegebenen Dezimalkoordinaten finden, als auch die Koordinaten für eine bestimmte Position ermitteln.

Der Einsteiger
07.06.2013, 15:24
Also ,ich bekomme doch Informationen über den Längen und Breitengrad ( wo ich mich gerade befinde) vom GPS Modul.
Diese Daten möchte ich irgendwo eingeben können, damit ich dann eine Karte vom Standort angezeigt bekomme.
Auch möchte ich eine Karte habe ,wo ich ein Punkt auf die Karte setzen kann und mir dann die Koordinaten des Punktes genannt werden.

Ich hoffe ,ich konnte mich verständlicher ausdrücken ...

MagicWSmoke
07.06.2013, 15:34
Diese Daten möchte ich irgendwo eingeben können, damit ich dann eine Karte vom Standort angezeigt bekomme.
Auch möchte ich eine Karte habe ,wo ich ein Punkt auf die Karte setzen kann und mir dann die Koordinaten des Punktes genannt werden.
Solange dies händisch gemacht werden kann, also per Browser via Internet, wurde die Lösung von mir bereits genannt.

Der Einsteiger
08.06.2013, 17:48
Ja ,ich will es per Hand machen. Ich habe es jetzt aber schon hinbekommen.

Ich habe mich jetzt mal mit dem Auslesen des Moduls beschäftigt ,doch irgenwie funktioniert das nicht ,da ich nur den Wert vom ersten Mid bekomme ... ????

Ich verwende Bascom.



$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
$hwstack = 32
$swstack = 32
$framesize = 32



Dim A As String * 20 'Das bekomme ich vom Gps Modul

Dim B As String * 10 'Das sollen die Werte sein ,die haben möchte
Dim C As String * 10
Dim D As String * 10
Dim E As String * 10
Dim F As String * 10

Dim K As Byte 'Wo soll er anfangen zu Suchen
Dim L As Byte 'Wie viel soll er rausschreiben

A = "100.258,N,487.456,W"

Print "A= " ; A 'Ich lasse mir den Wert den ich vom gps bekomme anzeigen

K = 1
L = 7
B = Mid(a , K , L)
Print "B= " ; B 'Soll mir den ersten Wert bis zum Komma vor N sagen

K = 9
L = 1
B = Mid(a , K , L)
Print "C= " ; C 'Soll mir N ausgeben

K = 11
L = 7
B = Mid(a , K , L)
Print D 'Soll mir den zweiten Wert nennen

K = 19
L = 1
B = Mid(a , K , L)
Print F 'Soll mir W ausgeben



End

Auf dem Simulator bekomme ich nur : A=100.258,N,487.456,W
B=100.258
C=

Warum bekomme ich das nicht vollständig angezeigt ??? Wie kann man das sonst machen ??

MagicWSmoke
08.06.2013, 18:28
Hmm, die meisten GPS-Empfänger geben etwas anderes aus, als was jetzt in Variable A steht.
Und wenn die restlichen Variablen etwas enthalten sollen, muss ihnen zuerst etwas zugewiesen werden, das dürfte noch ein steiniger Weg bis zur ersten autonomen Fahrt werden.

Der Einsteiger
08.06.2013, 18:38
Hmm, die meisten GPS-Empfänger geben etwas anderes aus, als was jetzt in Variable A steht.
Das war ja auch nur ein Test. Die Koordinaten habe ich mir ausgedacht und das Protokoll ist natürlich auch falsch...


Hmm, die meisten GPS-Empfänger geben etwas anderes aus, als was jetzt in Variable A steht.
Meinst du C, D, F ???


muss ihnen zuerst etwas zugewiesen werden
Hab ich doch ,oder nicht ????


Also ich möchte aus dem Anfangswert ,den ich von dem Modul bekomme (String A) , mehrere Teilstrings (Strings B-F) mit den jeweiligen Informationen z.B. über Breitengrad oder so bekommen. Doch ich bekomme nur die erste Teilinformation ..... Warum ??? und wie mache ich es jetzt richtig ????


das dürfte noch ein steiniger Weg bis zur ersten autonomen Fahrt werden.
Da hast du wohl Recht . Aber das kann ja ruhig ein wenig dauern. :) Ist ja mein Hobby.

MagicWSmoke
08.06.2013, 18:43
Warum ??? und wie mache ich es jetzt richtig ????
Weniger Fragezeichen verwenden und die Beträge anderer aufmerksam lesen, auch das hab' ich bereits beantwortet.

Che Guevara
08.06.2013, 18:50
Hi,

ich habe vor einigen Tagen fast dasselbe gemacht, nämlich ein GPS Modul ausgelesen und es zur autonomen Navigation benutzt. Es ist einfacher als man denkt ;)
Den String habe ich so zerlegt:


Dim Stringinput As String * 100 'ein GPGGA Datensatz kann fast 100 Zeichen haben, der Rest ist Reserve
Dim Teilstrings(15) As String * 15 'einzelne / zerlegte Strings
Dim Stringscnt As Byte
...
Stringinput = "$GPGGA,191410,4735.5634,N,00739.3538,E,1,04,4.4,35 1.5,M,48.0,M,,*45" 'als Beispiel
...
Stringscnt = Split(Stringinput, Teilstrings(1), ",")

Jetzt steht in der Variable Stringscnt die Anzahl der zerlegten Teilstrings und in dem Array Teilstrings finden sich die einzelnen Elemente, getrennt durch die Kommas.

Gruß
Chris

Der Einsteiger
08.06.2013, 19:59
An Che Guevara : Danke ,das hat mir sehr geholfen. (Auch wenn ich nicht so ganz verstanden habe ,wie es funktioniert. Unter anderem wegen dem Array und der Klammer) . Jetzt kann ich nämlich z.B. mit Print Teilstrings(3) den dritten String ausgeben lassen . :)
Also nochmal vielen Dank :)

Zu MagicWSmoke :
Weniger Fragezeichen verwenden und die Beträge anderer aufmerksam lesen, auch das hab' ich bereits beantwortet.
Ja ,das hattest du zwar schon geschrieben , doch ich hab nicht verstanden , was du damit meintest....

MagicWSmoke
08.06.2013, 20:05
Ja ,das hattest du zwar schon geschrieben , doch ich hab nicht verstanden , was du damit meintest....
Wenn Du nur immer B den Mid-Wert zuweist, kannst Du nicht erwarten, dass er in C, D usw. steht. :D

Che Guevara
08.06.2013, 20:20
Hi,

was genau verstehst du nicht?
Weißt du was ein Array ist? Ich hoffe doch :D
Schau mir mal die Bascom Hilfe zu dem Befehl Split an, vielleicht wirds dann klarer. Im Prinzip teilt Bascom den String an den Stellen, nach denen gesucht wird (","), auf und füllt die einzelnen Elemente dann der Reihe nach in das Array.

Gruß
Chris

Der Einsteiger
08.06.2013, 20:38
Zu MagicWSmoke : Danke für den Hinweis mit dem B. Das ist mir nämlich nicht aufgefallen und ich wusste nicht was du mir davor sagen wolltest . Jetzt funktioniert meine Ursprungslösung auch. :)

Zu Che Guevara :
was genau verstehst du nicht?
Also ich verstehe nicht warum da : Dim Teilstrings(15) eine (15) steht (also was sie bedeutet) und da: (Stringinput, Teilstrings(1), ",") , was die (1) bedeutet.


Schau mir mal die Bascom Hilfe zu dem Befehl Split an
Das hatte ich schon getan. Der Befehl ist mir klar verständlich (glaube ich jedenfalls )


Weißt du was ein Array ist? Ich hoffe doch
Naja ,wenn ich ehrlich bin ,weiß ich jetzt nicht so genau ,was ein Array ist ,da ich noch Anfänger in Sachen Programmierung bin...
Aber ich glaube ,das ist so eine Art von Speicherform mit mehreren Variablen oder Strings ,oder so ?

Che Guevara
09.06.2013, 11:25
Hi,

also ein Array (dt. Feld) besteht aus mehreren gleichnamigen Variablen, die über die Zahl in der Klammer angesprochen werden können. Die Zahl bei der Initialisierung gibt die Anzahl der Variablen (hier 15) an. In unserem Beispiel werden dann 15 Strings bestehend aus jeweils 15 Bytes (Dim .. As String * 15) erstellt.
Arrays verwendet man, um z.b. in einer For-Schleife mithilfe des Zählers (For Zähler = 1 to 10 Step 1) unkompliziert auf die verschiedenen Variablen zugreifen zu können.
Es gibt auch Arrays mit mehr als einer Klammer, das ist in Bascom jedoch nicht Standartmäßig implementiert. Damit kann man dann z.b. mit einem 2-D Array einem Punkt in einem 2-D Koordinatensystem beschreiben, ihm also einen Wert geben oder auslesen.

Gruß
Chris

Der Einsteiger
10.06.2013, 22:10
Aha, danke für die Erklärung. :)

So, ich habe jetzt mal einen kleinen Schaltplan für den Pegelwandler des GPS erstellt:

25705

Könnt ihr mir mal sagen ob der so funktioniert ?? (Hinweis : MC hat 5V GPS hat 3,3V )
Welche Werte für den Spannungsteiler benötige ich eigentlich? Ich hab jetzt erst einmal das angenommen.

Wäre wie gesagt schön, wenn mal einer darüberschaut. :)

Wie kann ich das denn mit der 3,3V Versorgungsspannung des GPS lösen ?? Denn ich will jetzt mir nicht extra einen Regler kaufen (ich bestelle mir doch bei Reichelt nicht für 50ct ein einziges Bauteil. Das wäre doch irre). Geht das auch erstmal , indem ich z.B. einen Widerstand an 5V hänge und mir so ca. 3,3V wandle ??

Dirk
11.06.2013, 09:27
Hi Einsteiger:
1. Das Modul hat 5V Versorgungsspannung. Du brauchst also keinen Regler.
2. Die Anpassung mit den 2 Transistoren ist auch nicht nötig.
3. Die Anpassung an GPS-RX ist nur nötig (mit Spannungsteiler), wenn du den GPS anders konfigurieren möchtest, sonst kannst du GPS-RX unbeschaltet lassen.

Für erste Tests brauchst du also keine weitere Hardware!!!

Der Einsteiger
13.06.2013, 18:55
Hallo Dirk, danke für die Info. :) Das erspart mir viel Arbeit.
Wenn ich aber etwas konfigurieren will,was benötige ich dann an Werten für die Widerstände ???

Noch eine ganz andere Frage: Ich habe noch nie Libs in Bascom erstellt, und wollte das mal mit der Auswertungssoftware versuchen. Doch finde ich nicht das Installationsverzeichnis, wo ich die mit dem Editor geschriebene Datei ablege. Wo ist die ??

MagicWSmoke
13.06.2013, 19:31
Ich habe noch nie Libs in Bascom erstellt, und wollte das mal mit der Auswertungssoftware versuchen. Doch finde ich nicht das Installationsverzeichnis, wo ich die mit dem Editor geschriebene Datei ablege.
Hmm, da passt was nicht zusammen.
Eine Bascom-Lib wird hauptsächlich in Assembler geschrieben, Dir fehlen bereits grundlegende Kenntnisse um Bascom-Basic richtig zu verwenden und Du möchtest aber etwas, für das man ein ganz normales Programm schreiben würde, als ASM-Lib ausführen?
Das Lib Verzeichnis befindet sich im Bascom Installationsverzeichnis, aber eigentlich glaube ich nicht, dass Du das tatsächlich willst.

Der Einsteiger
13.06.2013, 20:09
Hallo MagicWSmoke

Dir fehlen bereits grundlegende Kenntnisse um Bascom-Basic richtig zu verwenden
Ja das stimmt. Ich bin auch erst Anfänger, aber ich habe eben hochtrabende Ideen und stecke immer, für mich (einen 16 jährigen Schüler) zu hohe Ziele.
Aber ich habe einfach kein kleineres Projekt gefunden, wofür ich mich momentan interessiere. Vielleicht hast du ja eine Idee für einen Schüler, der sein erstes größeres Roboterprojekt vor sich hat (Was könnte man so bauen)??


Das Lib Verzeichnis befindet sich im Bascom Installationsverzeichnis
Ja, aber wo ist das Installationsverzeichnis?? Ich habe es nicht gefunden.


aber eigentlich glaube ich nicht, dass Du das tatsächlich willst.
Ne, dann lasse ich das erst einmal mit den Libs.

MagicWSmoke
13.06.2013, 20:19
für mich (einen 16 jährigen Schüler) zu hohe Ziele.
Das Alter ist prinzipiell egal, manche stecken sich deswegen unerreichbare Ziele, um das Ziel nie erreichen zu müssen.

Aber ich habe einfach kein kleineres Projekt gefunden, wofür ich mich momentan interessiere.
Du solltest Fähigkeiten und Interessen irgendwie in Einklang bringen, sonst wird das unbefriedigend.

Vielleicht hast du ja eine Idee für einen Schüler, der sein erstes größeres Roboterprojekt vor sich hat (Was könnte man so bauen)??
Du hast ein im Eröffnungsthread erklärtes Ziel, dafür benötigt werden einzelne Einheiten, eine davon ist das korrekte Lesen des GPS-Moduls, solange das nicht erledigt ist, muss man sich um andere Projekte keine Gedanken machen.

Ja, aber wo ist das Installationsverzeichnis?? Ich habe es nicht gefunden.
Was im Lib-Verzeichnis drinne ist, kann als Lib eingebunden werden.

Der Einsteiger
13.06.2013, 20:33
eine davon ist das korrekte Lesen des GPS-Moduls
Also, der Code ist dafür schon fast fertig, doch habe ich ihn noch nicht testen können, da ich das Modul noch nicht vollständig habe (Amazon lässt sich mit dem Kabel zeit)...
Ist das nicht blöde !! Ich habe das Navilock-Modul hier schon liegen, doch kann ich damit noch nichts machen. :(
Ach da fälltmir noch eine Sache ein : Sendet das Modul eigentlich jetzt auf 4800 oder 3irgendwas ??

MagicWSmoke
13.06.2013, 20:45
Also, der Code ist dafür schon fast fertig, doch habe ich ihn noch nicht testen können, da ich das Modul noch nicht vollständig habe (Amazon lässt sich mit dem Kabel zeit)...
Das ist dann das Spannende, ob sich die theoretische Software mit der tatsächlichen Hardware verträgt :D

Sendet das Modul eigentlich jetzt auf 4800 oder 3irgendwas ??
Solche Sachen werden recht gut vom Datenblatt beantwortet, welches ich nicht kenne, aber Du solltest es kennen.

Der Einsteiger
13.06.2013, 21:04
Das ist dann das Spannende, ob sich die theoretische Software mit der tatsächlichen Hardware verträgt
Das stimmt. Ich bin mir dabei auch noch nicht so sicher. :)

aber Du solltest es kennen
Ich habe jetzt mal auf die mitgelieferte CD geschaut, die mir vorher gar nicht aufgefallen ist... Da steht 38.400 bps. Also 38400 Baud.

Doch ist mir gerade eingefallen, dass ich ein kleines Problem habe: Meine Controllerplatine hat nur einen Uart und kann so nur das GPS-Modul auslesen. Doch will ich auch noch mit dem PC über die XBee Module was schicken und empfangen. Wie soll ich das dann machen ?? Mit einem zweiten Controller über I2C, wobei ich auch mit I2C noch nie gearbeitet habe und auch nicht so ganz die Seiten im RN-Wissen dazu verstanden habe (Was ist mit der Adresse, wie finde ich sie heraus und weise ich sie zu, was ist das mit dem send §H68 oder so) ??

MagicWSmoke
13.06.2013, 21:20
Es gäbe auch noch Soft-UARTSs. Ansonsten, wie Du siehst, jede Menge Herausforderungen ;-)
Das zu lösen, wird garantiert nicht langweilig. Ansonsten würd' ich erst einmal den geraden Weg nehmen und nicht versuchen, 'ne neue Baustelle über I2C aufmachen. Außer eben Dein Ziel ist es letzten Endes hinzuschmeißen.

Der Einsteiger
13.06.2013, 21:36
Dein Ziel ist es letzten Endes hinzuschmeißen
Nein, im Gegensatz zu meinem Roboterarm, bei dem ich mich überschätzt habe, will ich dieses Projekt nicht schmeißen :)


Ansonsten würd' ich erst einmal den geraden Weg nehmen und nicht versuchen, 'ne neue Baustelle über I2C aufmachen
Meinst du damit, dass ich erst mal die Auswertung des GPS schaffen soll ?? So würde ich das auch sehen, doch wollte ich schon mal vorausdenken .

Und wie funktioniert das mit den Soft-Uarts und unterschiedlichen Baudraten (ich habe einen Atmega 32) ??

MagicWSmoke
14.06.2013, 02:26
Ja, erstmal etwas für sich zum Laufen bringen, natürlich schon mit Blick darauf, dass es später als einzelner Funktionsblock im Gesamtprojekt läuft. Zu Soft-UART gibt's Beispiele unter Bascom, auch die Hilfe geht darauf ein.

Der Einsteiger
14.06.2013, 16:46
Hallo Ich habe jetzt mal Soft-Uart testen wollen, doch habe ich nichts angezeigt bekommen. Woran kann es liegen ???

Dazu habe ich zwei Mega 32 Boards verbunden. Board 1 (Hardware Uart) <-> Board 2 (Software Uart) und dann noch Board 2 (Hardware Uart) <-> PC

Die Codes : Board1 :


$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
$hwstack = 32
$swstack = 32
$framesize = 32

Config Portd.7 = Output

Wait 1
Sound Portd.7 , 400 , 450
Sound Portd.7 , 400 , 250
Sound Portd.7 , 400 , 450
Wait 2

Do
Print "Hallo"
Waitms 400
Loop
End

Board 2:


$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
$hwstack = 32
$swstack = 32
$framesize = 32

Open "Comb.0: 9600 , 8 , n , 1" for Input As #1
Open "Comb.1: 9600 , 8 , n , 1" For Output As #2

Config Portd.7 = Output 'Summer

Dim K As String * 11

Waitms 50
Sound Portd.7 , 400 , 450 'Summer summt : Alles OK
Sound Portd.7 , 400 , 250
Sound Portd.7 , 400 , 450
Wait 50

Do
Input #1 , K
Print K

Loop
End

MagicWSmoke
14.06.2013, 21:01
Und schon gehen die Herausforderungen los. :D
Da wäre drauf zu achten, dass B.0 RXD ist und mit TXD des ersten ATM32 verbunden sein muss, Masse muss natürlich gemeinsam sein, dann müssen beide auch mit 16MHz laufen, d.h. externer Quarz, der dann auch tunlichst angeschlossen sein sollte.
Anschlusseinstellungen unter Windows können falsch sein, dann in der Systemsteuerung berichtigen. Als erste Maßnahme vom zweiten ATM32 periodisch etwas an den PC senden, nicht auf ein Input warten.
Wenn das dann geht, im nächsten Schritt nachsehen, wo's bei der Interprozessorkommunikation hakt. RS232-Wandler von ATM32-2 zu PC ist dran?

Der Einsteiger
15.06.2013, 11:38
Da wäre drauf zu achten, dass B.0 RXD ist und mit TXD des ersten ATM32 verbunden sein muss, Masse muss natürlich gemeinsam sein, dann müssen beide auch mit 16MHz laufen, d.h. externer Quarz, der dann auch tunlichst angeschlossen sein sollte.
Anschlusseinstellungen unter Windows können falsch sein, dann in der Systemsteuerung berichtigen.


RS232-Wandler von ATM32-2 zu PC ist dran?
Ja. :) Das hab ich alles so.


Als erste Maßnahme vom zweiten ATM32 periodisch etwas an den PC senden, nicht auf ein Input warten.
Und wie ??

MagicWSmoke
15.06.2013, 13:34
Und wie ??
Ist die Frage ernst gemeint?
Das Gleiche, was Du mit ATM32-1 gemacht hast.

Der Einsteiger
19.06.2013, 19:19
Hallo, die Verbindung klappt jetzt. :) Weißt du warum es nicht ging: Schau mal bei Code 2 unter Pulseout. Da steht Wait 50 und so lange hab ich natürlich nie gewartet. Außerdem hatte ich es doch ein wenig falsch verkabelt. Naja, jetzt funktioniert es ja endlich. :)

Doch leider ist das Kabel für das GPS-Modul immer noch nicht da, so dass ich noch immer nicht weiterkomme. :( Schade, die lasse sich ganz schön Zeit mit der Lieferung eines so kleinen Paketes....

Sollte ich vielleicht mal ein neues Thema aufmachen für mein Projekt ?? Wäre doch besser.

MagicWSmoke
19.06.2013, 19:41
Da steht Wait 50 und so lange hab ich natürlich nie gewartet.
Ja, nett :D

Sollte ich vielleicht mal ein neues Thema aufmachen für mein Projekt ?? Wäre doch besser.
Wie Du meinst. Wobei der Titel wurscht ist, wenn der Inhalt interessant ist.

Der Einsteiger
20.06.2013, 16:18
Wie Du meinst. Wobei der Titel wurscht ist, wenn der Inhalt interessant ist.
Stimmt auch wieder, aber ich habe doch mal ein neues Thema aufgemacht. Wäre schön, wenn du mir da auch weiterhelfen würdest. ... :)
Aber die GPS Geschichte mache ich erstmal hier weiter.

Der Einsteiger
21.06.2013, 11:41
Hallo, ich habe eben das Kabel bekommen und getestet:Doch leider gibt es Probleme : Hab es mit zwei verschiedenen Codes getestet:

Code 1:


$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
$hwstack = 32
$swstack = 32
$framesize = 32


Config Portd.7 = Output 'Summer

Dim K As String * 100

Open "Comb.0: 38400 , 8 , n , 1" For Input As #1
Open "Comb.1: 38400 , 8 , n , 1" For Output As #2


Waitms 50
Sound Portd.7 , 400 , 450 'Summer summt : Alles OK
Sound Portd.7 , 400 , 250
Sound Portd.7 , 400 , 450
Waitms 50

Do
Input #1 , K
Print K
Waitms 500
Loop
End

Code 2: einfach ohne Waitms 500.

Raus habe ich ( ich zeige nur den Anfang . Es geht dann immer so weiter,denke ich mal, habe es aber nicht getestet):

Code 1 : (Da habe ich das Modul zum ersten mal angeschaltet, so könnte ich mir das $GPTXT,01,01,02,ANTSTATUS=INIT*25 erklären,welches nur beim ersten mal erschiennen ist.)

$GPRMC,235945.500,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*78
$GPTXT,01,01,02,ANTSTATUS=INIT*25
$GPRMC,235946.750,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7C
$GPRMC,235947.500,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7A
$GPRMC,235948.250,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*77
$GPRMC,235949.000,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*71
$GPRMC,235949.750,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*73
$GPRMC,235950.500,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7C
$GPRMC,235951.250,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7F
$GPRMC,235952.000,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7B
$GPRMC,235952.750,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*79
$GPRMC,235953.500,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7F
$GPRMC,235954.250,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7A
$GPRMC,235955.000,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7C
$GPRMC,235955.750,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7E
$GPRMC,235956.500,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7A
$GPRMC,235957.250,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*79
$GPRMC,235958.000,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*71
$GPRMC,235958.750,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*73
$GPRMC,235959.500,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*75
$GPRMC,000000.250,V,0000.0000,N,00000.0000,E,0.00, 0.00,060180,,,N*7E
$GPRMC,000001.000,V,0000.0000,N,00000.0000,E,0.00, 0.00,060180,,,N*78
$GPRMC,000001.750,V,0000.0000,N,00000.0000,E,0.00, 0.00,060180,,,N*7A
$GPRMC,000002.500,V,0000.0000,N,00000.0000,E,0.00, 0.00,060180,,,N*7E
$GPRMC,000003.250,V,0000.0000,N,00000.0000,E,0.00, 0.00,060180,,,N*7D
$GPRMC,000004.000,V,0000.0000,N,00000.0000,E,0.00, 0.00,060180,,,N*7D
$GPRMC,000004.750,V,0000.0000,N,00000.0000,E,0.00, 0.00,060180,,,N*7F
$GPRMC,000005.500,V,0000.0000,N,00000.0000,E,0.00, 0.00,060180,,,N*79
$GPRMC,000006.250,V,0000.0000,N,00000.0000,E,0.00, 0.00,060180,,,N*78
$GPRMC,000007.000,V,0000.0000,N,00000.0000,E,0.00, 0.00,060180,,,N*7E
$GPRMC,000007.750,V,0000.0000,N,00000.0000,E,0.00, 0.00,060180,,,N*7C


Bei Code 2:

$GPRMC,235947.750,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7D
$GPRMC,235948.000,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*70
$GPRMC,235948.250,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*77
$GPRMC,235948.500,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*75
$GPRMC,235948.750,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*72
$GPRMC,235949.000,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*71
$GPRMC,235949.250,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*76
$GPRMC,235949.500,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*74
$GPRMC,235949.750,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*73
$GPRMC,235950.000,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*79
$GPRMC,235950.250,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7E
$GPRMC,235950.500,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7C
$GPRMC,235950.750,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7B
$GPRMC,235951.000,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*78
$GPRMC,235951.250,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7F
$GPRMC,235951.500,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7D
$GPRMC,235951.750,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7A
$GPRMC,235952.000,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7B
$GPRMC,235952.250,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7C
$GPRMC,235952.500,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7E
$GPRMC,235952.750,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*79
$GPRMC,235953.000,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7A
$GPRMC,235953.250,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7D
$GPRMC,235953.500,V,0000.0000,N,00000.0000,E,0.00, 0.00,120136,,,N*7F



So jetzt zu den Problemen :
1: Es wird kein Längen und Breitengrad angezeigt! Warum?? (ich habe den nur paar sec laufen lassen. Im Haus)
2: Laut Wikipedia ist das V nach $GPRMC,235953.500, ein Zeichen dafür, dass eine Warnung vorliegt. Was ist das für eine Warnung ???
3: Muss ich das Modul, bevor ich es verwenden möchte erst konfigurieren ?? Nein, oder??
4:Wo muss ich die Abschirmung anschließen ?? Ich habe sie an GND gehängt, aber weß nicht ob man das soll ??

Ich hoffe, ihr könnt mir helfen...

MagicWSmoke
21.06.2013, 12:02
F: 1: Es wird kein Längen und Breitengrad angezeigt! Warum??
A: (ich habe den nur paar sec laufen lassen. Im Haus)

2: Laut Wikipedia ist das V nach $GPRMC,235953.500, ein Zeichen dafür, dass eine Warnung vorliegt. Was ist das für eine Warnung ???
Kein gültiger Fix vielleicht?

3: Muss ich das Modul, bevor ich es verwenden möchte erst konfigurieren ?? Nein, oder??
Müssen nicht, können oftmals schon. Das DB gibt dazu Auskunft.

4:Wo muss ich die Abschirmung anschließen ??
Was/wo willst Du abschirmen?

Der Einsteiger
21.06.2013, 12:09
Kein gültiger Fix vielleicht?
Also kann es daran liegen, dass ich mich im Haus befinde ?? Denn das N fast ganz hinten sagt ja, dass Data Not Valid ist...


Müssen nicht, können oftmals schon. Das DB gibt dazu Auskunft.
So wie ich das verstanden habe muss ich es nur anstecken und konfigurieren, wenn ich eine höhere Genauigkeit haben möchte.


Was/wo willst Du abschirmen?
Im Datenblatt steht, dass Pin 3 die Abschirmung ist. Wo soll ich denn Pin 3 anschließen ??

MagicWSmoke
21.06.2013, 12:32
Hast Du noch kein Autonavi gesehen? Die verwenden z.T Lookuptables für die Satellitenpositionen, damit der Fix schneller geht. Ohne kann's schon mal ein paar Minuten dauern.
Du wirst nicht erwarten können, dass ein paar Sekunden Betrieb, noch dazu im Haus (wobei's auch dabei darauf ankommt, was drüber ist) eine gültigen Position ergibt.

Wie ich schon sagte, Du wirst das DB haben. Wenn man etwas Geschirmtes daran anschließt, dann halt den Schirm vom Kabel.
Wenn Dein Kabel keinen Schirm hat, kannst Du auch nix daran anschließen.

Der Einsteiger
21.06.2013, 13:29
Hast Du noch kein Autonavi gesehen?
Doch :)

Dann gehe ich mal in den Garten und komme in 10 min wieder...

- - - Aktualisiert - - -

Also jetzt kamen Ergebnisse. Nach etwa 10 sec Laufzeit wurde mir was angezeigt. :)

Musste aber schin ein bisschen mit dem Code rumspielen, da irgendwie immer was komisches angezeigt wurde (lag vielleicht daran, dass ich Waitms überall zu klein gemacht hatte ) . Naja, jetzt geht es...

Doch schwanken die Werte beim Längen und Breitengrad ganz schön, obwohl ich mich nicht bewegt habe. Warum ?? (Es schwankte um 0000.0010 nach oben und unten! ) Ist das normal ??

Wo kann ich die Werte eintragen (internet), damit mir eine Karte von dem Standort geliefert wird ?? Geht das bei GoogleMaps oder so (ohne Konto)??

MagicWSmoke
21.06.2013, 13:58
Wo kann ich die Werte eintragen (internet), damit mir eine Karte von dem Standort geliefert wird ?? Geht das bei GoogleMaps oder so (ohne Konto)??
Du hast doch auf Seite 2 dieses Threads geschrieben, dass Du es bereits hinbekommen hast ;-)

Der Einsteiger
21.06.2013, 15:48
Du hast doch auf Seite 2 dieses Threads geschrieben, dass Du es bereits hinbekommen hast
Ja, ich habe was gefunden.Aber das ist nicht das ,was ich suchte.

Des weiteren Suche ich ja eine Möglichkeit Daten, die ich vom Sensor bekomme habe einzulesen in eine Karte, um mir den aktuellen Standpunkt anzeigen zu lassen.
Danach suche ich noch, denn bei Google Maps geht es nur anders herum.

Ich hoffe du verstehst, was ich meine und hoffe du kennst eine Lösung...

- - - Aktualisiert - - -

Mein Frage hat sich gerade erledigt. Ich kann nämlich bei Google in die Suchleiste einfach die Werte einsetzen, nachdem ich sie umgerechnet habe. :)

MagicWSmoke
21.06.2013, 16:26
Mein Frage hat sich gerade erledigt. Ich kann nämlich bei Google in die Suchleiste einfach die Werte einsetzen, nachdem ich sie umgerechnet habe.
Hatte ich schon mal geschrieben. Und ein Rechtsklick auf die Kartenposition, dann "Was ist hier?", ergibt einen grüne Pfeil an der Stelle des Klicks, wenn man mit den Mauszeiger über den Pfeil geht, bekommt man dessen Koordinaten angezeigt.

Der Einsteiger
21.06.2013, 17:13
Stimmt.

Ich habe jetzt noch eine Frage zum Umrechnen, wenn ich es als Code für Bascom schreibe (mit dem teste ich nur im Simulator):


$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
$hwstack = 32
$swstack = 32
$framesize = 32


Print "GPS-Datenausgabe"
Print "Version: 2.0"


Dim Stringinput As String * 120
Dim Teilstrings(13) As String * 13 'einzelne / zerlegte Strings
Dim Stringscnt As Byte

Dim Breitengrad1 As String * 3
Dim Breitengrad2 As String * 8
Dim Breiten1 As Single
Dim Breiten2 As Single
Dim A As Byte
A = 2
Dim B As Byte
B = 7
Dim Wert1 As Single
Dim Breitengrad As Single








Stringinput = "$GPRMC,162614,A,5209.8830,N,Beispiel,E,10.0,90.0,1 31006,1.2,E,A*13"
Stringscnt = Split(stringinput , Teilstrings(1) , ",") 'aufteilen


Breitengrad1 = Left(teilstrings(4) , A) 'Wert XX rausziehen

Print "Breitengrad1 : " ; Breitengrad1 'Wert XX anzeigen

Breitengrad2 = Right(teilstrings(4) , B) 'Wert YY.ZZZZ rausziehen

Print "Breitengrad2 : " ; Breitengrad2 'Wert YY.ZZZZ anzeigen

Breiten1 = Val(breitengrad1) 'ummodeln zum rechnen, da mit
Breiten2 = Val(breitengrad2) 'Strings nicht gerechnet werden kann

Wert1 = Breiten2 / 60 'rechnen

Print "Wert1 : " ; Wert1 'Wert 1 anzeigen

Breitengrad = Breiten1 + Wert1 'zusammenrechnen

Print "Breitengrad : " ; Breitengrad 'fertige Breitengradangabe ausgeben

End


Als Printwerte bekomme ich angezeigt:
GPS-Datenausgabe
Version: 2.0
Breitengrad1 : 52
Breitengrad2 : 09.8830
Wert1 : 0.164716597
Breitengrad : 52.164714811

Dazu muss man sich die Rechnung bei Wikipedia anschauen: http://de.wikipedia.org/wiki/NMEA_0183
oder hier der Auszug: XXYY.ZZZZ ⇒ XX° + (YY.ZZZZ / 60)° um die Werte vom Sensor in Gradwerte umzurechnen.

Doch bekomme ich, wenn ich mit dem Taschenrechner rechne andere Nachkommastellen raus. Warum ?? Ist der MC nicht so genau??

Gibt es noch elegantere Methoden den Breitengrad und Längengrad mit der Formel umzurechnen???

MagicWSmoke
21.06.2013, 19:46
Doch bekomme ich, wenn ich mit dem Taschenrechner rechne andere Nachkommastellen raus. Warum ?? Ist der MC nicht so genau??
Das hat nix mit dem µC zu tun, sondern der Genauigkeit des Datentyps Single, schau' in der Hilfe nach, wei viele Bits davon für den Nachkommaanteil verfügbar sind.
Double wäre genauer, braucht aber mehr Platz und Prozessorzeit.

Der Einsteiger
22.06.2013, 21:54
Das hat nix mit dem µC zu tun, sondern der Genauigkeit des Datentyps Single, schau' in der Hilfe nach, wei viele Bits davon für den Nachkommaanteil verfügbar sind.
Dann ist es ja nicht so schlimm. :)


Gibt es noch elegantere Methoden den Breitengrad und Längengrad mit der Formel umzurechnen???
Gibt es welche???

da_miez3
26.06.2013, 17:37
Schau dich da mal um, imho sehr gutes Projekt bei dem man einiges an Wissen mitnehmen kann ;) :

http://www.krasser-mann.com/projects/open-gps/

Der Einsteiger
19.07.2013, 15:34
Vielen Dank für den Link. :) ist sehr hilfreich .
Schade ,dass ich erst jetzt deine Antwort bemerkt habe ( muss ich wohl übersehen haben) .....