Matlab and GPS

11 visualizzazioni (ultimi 30 giorni)
Shwetank
Shwetank il 1 Gen 2012
Risposto: Gayatri Menon il 5 Gen 2022
hi i have my globsat BU-353 gps connected via usb to matlab. i am trying to read data from it.
what i did so far was create a serial object, opened it and applied a fread method. what i got was a lot of numbers and i cannot make any sense of it.
s = serial('COM3', 'Baudrate', 4800);
fopen(s)
fread(s)
214
214
41
41
23
13
635
...
the gps is supposed to follow NMEA protocal, and i think that the data the matlab is reading from USB is the packets and the binary number and is translating them into number. (i think) but of this i am not sure
can anyone help me get the data from the USB so that its in NMEA format.
are tehre any libraries out there that can do this work. if not, can anyone direct me to proper documentation from which i can undedsratnd the information that is being read by matlab and how i can convert it to NMEA format.
thank you.
  1 Commento
jibs
jibs il 15 Dic 2020
Hi
Im working on a GUI, whose purpose is to develop a system to measure distance between two work stations using GPS coordinate system.
pl guide me how can i measure distance if i get 4 GPS coordinates , two of the existing syste and two from other remote system.
moreover im drawing these coordinates on a graph, the problem is that after sometime when the points are updated, the graph shows the points in a straight line, since there is not much distance not more than 50 m.
kindly share with me a technique so that the distinguished points are shown in graph instaed of a jumbled set of points like a straight line.

Accedi per commentare.

Risposta accettata

Walter Roberson
Walter Roberson il 1 Gen 2012
Try reading it as a text string using fgetl() or fscanf() or fread() with '*char' option. You may need to adjust the Terminator property of the serial port.
For interpretation of the data, see http://aprs.gids.nl/nmea/

Più risposte (4)

Shwetank
Shwetank il 1 Gen 2012
hey i did do fscanf() and the error i got was
Error: a matlab string constant is not terminated properly. i did look at the link u suggested, but i am not sure how to chose the right terminator
the current terminator i have it says is LF

Shwetank
Shwetank il 1 Gen 2012
Modificato: Randy Souza il 7 Set 2012
I figured it out, thank you!
The terminator needed to be a *
>> fopen(s)
>> set(s, 'terminator', ',')
>> fscanf(s)
ans =
Ì3YÆ&vÆÆ&ÆÆ&&&ƦvVk
>> set(s, 'terminator', '*')
>> fscanf(s)
ans =
$GPRMC,054146.313,A,4341.0402,N,07934.1286,W,0.07,311.50,010112,,,A*7D
  1 Commento
Walter Roberson
Walter Roberson il 1 Gen 2012
You should provide a format string for fscanf()
You should be using CR/LF for the terminator. The * marks an optional checksum field.
http://www.gpsinformation.org/dale/nmea.htm

Accedi per commentare.


Shwetank
Shwetank il 3 Gen 2012
you are right. fscanf(s, '%s') did the trick.
i wonder why it didnt work before :S
thank you for your help :)

Gayatri Menon
Gayatri Menon il 5 Gen 2022
Hi,
nmeaParser in Navigation toolbox can be used to parse data from GPS. Refer the following links for more info :
Hope this helps
Thanks

Categorie

Scopri di più su Automotive in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by