主要内容

gpsdev

连接到连接到主机的GPS接收器

描述

gpsdev系统对象™连接到连接到主机的GPS接收器。

连接GPS接收器:

  1. 创建gpsdev对象并设置其属性。

  2. 使用参数调用对象,就像调用函数一样。

有关系统对象如何工作的详细信息,请参见什么是系统对象?

创建

描述

例子

全球定位系统(gps)= gpsdev (港口连接到主机指定串口的GPS接收器。

例子

全球定位系统(gps)= gpsdev (serialobj连接到由串行对象指定的GPS接收器。

例子

全球定位系统(gps)= gpsdev (___、名称、值)使用一个或多个名称-值对连接到指定端口或通过串行对象指定的GPS接收器。

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放功能解锁它们。

如果属性为可调,您可以随时更改其值。

有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计

此属性是只读的。

串口通信的波特率。波特率设置为9600bits /sec。GPS接收器必须配置为9600比特/秒。如果您的GPS接收器配置为其他波特率,请重新配置为9600比特/秒以使用gpsdev函数。

指定是返回最新的还是旧的数据样本。样本的数量取决于SamplesPerRead价值。从GPS接收机读取的数据存储在MATLAB中®缓冲区。

  • 最新的—提供缓冲区中最新可用的数据样本。缓冲区中所有先前的数据样本将被丢弃。例如,如果SamplesPerRead= 3时,返回GPS接收机读取的最近三个数据样本。

  • 最古老的—提供缓冲区中可用的最古老的数据样本。在这种情况下,没有数据样本被丢弃。例如,如果SamplesPerRead= 3,第一次读取时返回前三个数据样本,第二次读取时返回后三个数据样本,依此类推。

可调:没有

数据类型:特征向量|字符串

此属性是只读的。

从GPS接收器读取的样本数函数,在对象锁定后。的gpsdev对象的第一次调用时锁定函数在对象创建之后或在执行后第一次调用read函数时释放函数。

数据类型:

此属性是只读的。

在主机缓冲区中可用的示例。当你释放的对象,SamplesAvailable设置为0。

数据类型:

从第一个示例读取,指定为范围为[1 10]的正整数。

可调:没有

数据类型:

方法返回的数据的输出格式函数。

OutputFormat设置为时间表,时间表返回有以下字段:

  • 纬度、经度、高度

  • 地面速度

  • 地面航线

  • 稀释精度(DOPs), VDOP,HDOP,PDOP

  • GPS接收机时间

  • Time -读取数据时的系统时间,indatetime持续时间格式

OutputFormat设置为矩阵,数据以时间、LLA、地面速度、经过地面的航向、DOPs和GPS接收机时间的矩阵形式返回。GPS接收器读数的单位与时间表格式。

可调:是的

数据类型:特征向量|字符串

设置读取GPS数据时显示时间的格式。

  • datetime—显示读取数据的日期和时间。

  • 持续时间—显示锁定GPS对象后经过的时间(以秒为单位)。的gpsdev对象的第一次调用时锁定函数在对象创建之后或在执行后第一次调用read函数时释放函数。

可调:是的

数据类型:特征向量|字符串

对象的功能

要使用对象函数,请将System对象指定为第一个输入参数。例如,释放system对象的系统资源obj,使用这种语法:

发行版(obj)
冲洗 刷新缓冲区中累积的所有GPS数据并重置属性
信息 读取更新速率,GPS锁定信息和GPS接收器的卫星数量
从GPS接收器读取数据
释放 释放GPS对象
writeBytes 向GPS接收器写入原始命令

例子

全部折叠

使用连接到特定串行端口的主机上的GPS接收器获取地理位置,并在地图上绘制位置。

所需的硬件

要运行这个例子,你需要:

  • UBlox Neo-6M GPS模块

  • GPS天线

  • USB转UART模块

  • USB电缆

  • 连接电线

硬件连接

GPS_UART_USB_PC.png

将UBlox Neo-6M GPS模块上的引脚连接到USB转UART模块上的引脚。联系如下:

  • VCC - + 5v

  • Rx - txo

  • Tx - rxi

  • GND - GND

将GPS天线连接到GPS模块。使用USB电缆将USB to UART模块连接到主机。GPS定位可以在有清晰天空视野的地方很容易获得。等待GPS模块获取卫星信号(修复)。这可以通过检查GPS模块的固定LED (D1)来验证。

创建GPS对象

创建一个gpsdev对象为连接到特定端口的GPS模块。

GPS = gpsdev(“COM4为”
gps = gpsdev with properties: SerialPort: COM4 BaudRate: 9600 (bits/s) SamplesPerRead: 1 ReadMode: "latest" SamplesRead: 0显示所有属性所有功能

读取GPS数据

读取GPS数据并从中提取纬度、经度和时间。GPS返回UTC日期时间。将其转换为系统时区。

[gpsData,~] = read(gps);纬度= gpsData.LLA(1);经度= gpsData.LLA(2);gpsTime = gpsData.GPSReceiverTime;gpsTime。时区=“本地”

在映射中绘制位置和时间戳

利用GPS模块获取的数据在地理轴上绘制位置。GPS应该有固定得到有效的值的纬度,经度和gpsTime

如果GPS模块没有固定,以上命令给出S代表经纬度NaTgpsTime.在这种情况下,请确保天线暴露在晴朗的天空中,并等待一段时间,然后再次尝试上述步骤。

如果(~isnan(纬度)&& ~isnan(经度))在地理坐标中绘制位置FIG = geoplot(纬度,经度,“标记”“o”“MarkerSize”6“颜色”“红色”“MarkerFaceColor”“红色”);设置基本地图的纬度和经度限制地质界限([纬度-0.05纬度+0.05],[经度-0.05经度+0.05]);选择底图geobasemap街道;timeString = strcat(时间戳:“字符串(gpsTime));创建注释并显示从GPS接收到的时间注释(“文本框”,[0.005 0.98 0.6 0.01],“FitBoxToText”“上”“字符串”timeString,“颜色”“蓝”“字形大小”10);结束

清理

当不再需要该连接时,清除关联对象。

删除(gps);清晰的全球定位系统(gps)

将配置命令写入连接到主机的GPS接收机串口对象。

所需的硬件

要运行这个例子,你需要:

  • UBlox Neo-6M GPS模块

  • GPS天线

  • USB转UART模块

  • USB电缆

  • 连接电线

硬件连接

GPS_UART_USB_PC.png

将UBlox Neo-6M GPS模块上的引脚连接到USB转UART模块上的引脚。联系如下:

  • VCC - + 5v

  • Rx - txo

  • Tx - rxi

  • GND - GND

将GPS天线连接到GPS模块。使用USB电缆将USB to UART模块连接到主机。GPS定位可以在有清晰天空视野的地方很容易获得。等待GPS模块获取卫星信号(修复)。这可以通过检查GPS模块的固定LED (D1)来验证。

创建GPS对象

连接到GPS接收器使用串口对象。请输入端口名称和波特率。

S =串口(“COM4为”, 9600)
s = Serialport with properties: Port: "COM4" BaudRate: 9600 NumBytesAvailable: 0显示所有属性,函数
GPS = gpsdev(s)
gps = gpsdev with properties: SerialPort: COM4 BaudRate: 9600 (bits/s) SamplesPerRead: 1 ReadMode: "latest" SamplesRead: 0显示所有属性所有功能

写配置命令

在默认配置下,GPS接收机返回以下NMEA消息:GPRMC、GPVTG、GPGGA、GPGSA、GPGSV和GPGLL。可以将接收器配置为具有用户定义的一组输出消息。

从连接GPS接收器的串口读取几行默认消息。

I = 1:10 data = readline(s);disp(数据);结束
GPRMC美元,V ,,,,,,,,,, N * 53 GPVTG……N * 30美元GPGGA……0 00,99.99……* GPGSA(48美元,,1 ,,,,,,,,,,,,, 99.99, 99.99, 99.99 * GPGSV(30美元),2,1,08年,08年…12日01…18日09…12日15…19 * GPGSV(77美元),2,2,08年,23…13日24…09年,25…10,27…25 * 79美元GPGLL……V, N * GPRMC(64美元),V ,,,,,,,,,, N * 53 GPVTG……N * 30美元GPGGA……0 00,99.99……* 48

向GPS接收机写入版本监视器命令,返回GPS接收机的软硬件版本。

configCMD = [0xB5 0x62 0x0A 0x04 0x00 0x00 0x0E 0x34];% writeBytes (gps, cfg)写(s configCMD“uint8”

再次阅读几行消息以验证版本消息。

I = 1:10 data = readline(s);disp(数据);结束
GPGSA美元,1 ,,,,,,,,,,,,, 99.99, 99.99, 99.99 * GPGSV(30美元),2,1,05年,09年…11日01…13日15…16日23……12 * GPGSV(74美元),2,2,05年,25…10 * 7美元GPGLL……V, N * 64µb(7.03(45969) 00040007°GPRMC美元,V ,,,,,,,,,, N * 53 GPVTG……N * 30美元GPGGA……0 00,99.99……* GPGSA(48美元,,1 ,,,,,,,,,,,,, 99.99, 99.99, 99.99 * GPGSV(30美元),2,1,06年,09年…11日01…11日23…14日24…21 * 75

可以从输出中观察到,7.03 (45969)软件版本和00040007硬件版本。

清理

当不再需要该连接时,清除关联对象。

删除(gps);清晰的全球定位系统(gps);清晰的年代

通过特定的串口从连接到主机的GPS接收器读取数据。

所需的硬件

要运行这个例子,你需要:

  • UBlox Neo-6M GPS模块

  • GPS天线

  • USB转UART模块

  • USB电缆

  • 连接电线

硬件连接

GPS_UART_USB_PC.png

将UBlox Neo-6M GPS模块上的引脚连接到USB转UART模块上的引脚。联系如下:

  • VCC - + 5v

  • Rx - txo

  • Tx - rxi

  • GND - GND

将GPS天线连接到GPS模块。使用USB电缆将USB to UART模块连接到主机。GPS定位可以在有清晰天空视野的地方很容易获得。等待GPS模块获取卫星信号(修复)。这可以通过检查GPS模块的固定LED (D1)来验证。

创建GPS对象

创建一个gpsdev对象用于连接到特定端口的GPS接收机。将数据的输出格式指定为时间表。

GPS = gpsdev(“COM4为”“OutputFormat”“时间表”
gps = gpsdev with properties: SerialPort: COM4 BaudRate: 9600 (bits/s) SamplesPerRead: 1 ReadMode: "latest" SamplesRead: 0显示所有属性所有功能

读取GPS数据

读取GPS数据并将其作为时间表返回。

[tt,overruns] = read(gps)
tt =1×5时间表时间LLA水平课程计划GPSReceiverTime  ________________________ _________________________ ___________ ______ ____________________ ________________________ 22 - 3月- 2021 15:31:15.190南9.31 1.48 9.19 0.25619 17.47 78.343 449.6 22 - 3月- 2021 10:01:14.000
超支= 0

显示读取的样本数量和主机缓冲区中可用的样本。

gps。SamplesRead
Ans = 1
gps。SamplesAvailable
Ans = 0

释放GPS对象以配置不可调属性。释放函数还会清除缓冲区并重置SamplesRead而且SamplesAvailable属性。

释放(gps)

指定每次读取的样本数为2。读取GPS数据。

gps。SamplesPerRead = 2;读(gps)
ans =2×5时间表时间LLA水平课程计划GPSReceiverTime  ________________________ _________________________ ___________ ______ ____________________ ________________________ 22 - 3月- 2021 15:31:17.178南9.32 1.48 9.2 0.063791 17.47 78.343 450 22 - 3月- 2021 10:01:16.000 22 - 3月- 2021 15:31:17.178南9.32 1.48 9.2 0.063791 17.47 78.343 450 22 - 3月- 2021 10:01:16.000

显示读取的样本数量和主机缓冲区中可用的样本。

gps。SamplesRead
Ans = 1
gps。SamplesAvailable
Ans = 0

清理

当不再需要该连接时,清除关联对象。

删除(gps);清晰的全球定位系统(gps)

更多关于

全部展开

版本历史

R2020b中介绍

另请参阅