Matlab and GPS

10 次查看(过去 30 天)
Shwetank
Shwetank 2012-1-1
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 个评论
jibs
jibs 2020-12-15
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.

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2012-1-1
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/

更多回答(4 个)

Shwetank
Shwetank 2012-1-1
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 2012-1-1
编辑:Randy Souza 2012-9-7
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 个评论
Walter Roberson
Walter Roberson 2012-1-1
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

请先登录,再进行评论。


Shwetank
Shwetank 2012-1-3
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 2022-1-5
Hi,
nmeaParser in Navigation toolbox can be used to parse data from GPS. Refer the following links for more info :
Hope this helps
Thanks

类别

Help CenterFile Exchange 中查找有关 Automotive 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by