gpsdev
连接到连接到主机的GPS接收器
描述
的gpsdev
系统对象™连接到连接到主机的GPS接收器。
连接GPS接收器:
创建
gpsdev
对象并设置其属性。使用参数调用对象,就像调用函数一样。
有关系统对象如何工作的详细信息,请参见什么是系统对象?
创建
属性
除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放
功能解锁它们。
如果属性为可调,您可以随时更改其值。
有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计.
波特率
- - - - - -波特率
9600
此属性是只读的。
串口通信的波特率。波特率设置为9600bits /sec。GPS接收器必须配置为9600比特/秒。如果您的GPS接收器配置为其他波特率,请重新配置为9600比特/秒以使用gpsdev
函数。
ReadMode
- - - - - -指定要返回哪些数据样本
“最新”
(默认)|“古老的”
指定是返回最新的还是旧的数据样本。样本的数量取决于SamplesPerRead
价值。从GPS接收机读取的数据存储在MATLAB中®缓冲区。
最新的
—提供缓冲区中最新可用的数据样本。缓冲区中所有先前的数据样本将被丢弃。例如,如果SamplesPerRead
= 3时,返回GPS接收机读取的最近三个数据样本。最古老的
—提供缓冲区中可用的最古老的数据样本。在这种情况下,没有数据样本被丢弃。例如,如果SamplesPerRead
= 3,第一次读取时返回前三个数据样本,第二次读取时返回后三个数据样本,依此类推。
可调:没有
数据类型:特征向量
|字符串
SamplesRead
- - - - - -样品看
双
此属性是只读的。
从GPS接收器读取的样本数读
函数,在对象锁定后。的gpsdev
对象的第一次调用时锁定读
函数在对象创建之后或在执行后第一次调用read函数时释放
函数。
数据类型:双
SamplesAvailable
- - - - - -宿主缓冲区中的示例
双
此属性是只读的。
在主机缓冲区中可用的示例。当你释放
的对象,SamplesAvailable
设置为0。
数据类型:双
SamplesPerRead
- - - - - -每次读取的样本
1
(默认)
从第一个示例读取读
,指定为范围为[1 10]的正整数。
可调:没有
数据类型:双
OutputFormat
- - - - - -设置输出格式
“时间表”
(默认)|“矩阵”
方法返回的数据的输出格式读
函数。
当OutputFormat
设置为时间表
,时间表
返回有以下字段:
纬度、经度、高度
地面速度
地面航线
稀释精度(DOPs), VDOP,HDOP,PDOP
GPS接收机时间
Time -读取数据时的系统时间,in
datetime
或持续时间
格式
当OutputFormat
设置为矩阵
,数据以时间、LLA、地面速度、经过地面的航向、DOPs和GPS接收机时间的矩阵形式返回。GPS接收器读数的单位与时间表
格式。
可调:是的
数据类型:特征向量
|字符串
TimeFormat
- - - - - -设置读取GPS数据时显示时间的格式
“datetime”
(默认)|“持续时间”
设置读取GPS数据时显示时间的格式。
datetime
—显示读取数据的日期和时间。持续时间
—显示锁定GPS对象后经过的时间(以秒为单位)。的gpsdev
对象的第一次调用时锁定读
函数在对象创建之后或在执行后第一次调用read函数时释放
函数。
可调:是的
数据类型:特征向量
|字符串
对象的功能
要使用对象函数,请将System对象指定为第一个输入参数。例如,释放system对象的系统资源obj
,使用这种语法:
发行版(obj)
冲洗 |
刷新缓冲区中累积的所有GPS数据并重置属性 |
信息 |
读取更新速率,GPS锁定信息和GPS接收器的卫星数量 |
读 |
从GPS接收器读取数据 |
释放 |
释放GPS对象 |
writeBytes |
向GPS接收器写入原始命令 |
例子
利用与主机连接的GPS绘制地理位置
使用连接到特定串行端口的主机上的GPS接收器获取地理位置,并在地图上绘制位置。
所需的硬件
要运行这个例子,你需要:
UBlox Neo-6M GPS模块
GPS天线
USB转UART模块
USB电缆
连接电线
硬件连接
将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代表经纬度NaT
为gpsTime
.在这种情况下,请确保天线暴露在晴朗的天空中,并等待一段时间,然后再次尝试上述步骤。
如果(~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接收机
将配置命令写入连接到主机的GPS接收机串口
对象。
所需的硬件
要运行这个例子,你需要:
UBlox Neo-6M GPS模块
GPS天线
USB转UART模块
USB电缆
连接电线
硬件连接
将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接收器读取数据作为时间表
通过特定的串口从连接到主机的GPS接收器读取数据。
所需的硬件
要运行这个例子,你需要:
UBlox Neo-6M GPS模块
GPS天线
USB转UART模块
USB电缆
连接电线
硬件连接
将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);
更多关于
GPS模块
为了验证功能,使用了以下GPS模块:
Adafruit终极GPS
Ublox NEO 6M
Ublox NEO 7M
版本历史
R2020b中介绍
另请参阅
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。