Matlab and GPS

11 Ansichten (letzte 30 Tage)
Shwetank
Shwetank am 1 Jan. 2012
Beantwortet: Gayatri Menon am 5 Jan. 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 Kommentar
jibs
jibs am 15 Dez. 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.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 1 Jan. 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/

Weitere Antworten (4)

Shwetank
Shwetank am 1 Jan. 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 am 1 Jan. 2012
Bearbeitet: Randy Souza am 7 Sep. 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 Kommentar
Walter Roberson
Walter Roberson am 1 Jan. 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

Melden Sie sich an, um zu kommentieren.


Shwetank
Shwetank am 3 Jan. 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 am 5 Jan. 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

Kategorien

Mehr zu Time Series Objects finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by