gpsdev
Descripción
El gpsdev
System object™ se conecta a un receptor GPS conectado a la computadora host.
Para conectarse a un receptor GPS:
Cree el objeto
gpsdev
y establezca sus propiedades.Llame al objeto con argumentos, como si fuera una función.
Para obtener más información sobre cómo funcionan los System objects, consulte What Are System Objects?
Creación
Descripción
se conecta a un receptor GPS en el puerto serie especificado de la computadora host.gps
= gpsdev(port
)
se conecta a un receptor GPS especificado por un objeto serial.gps
= gpsdev(serialobj
)
se conecta a un receptor GPS en el puerto especificado o especificado a través de un objeto serie, utilizando uno o más pares de nombre-valor.gps
= gpsdev(___,Name,Value)
Propiedades
A menos que se indique lo contrario, las propiedades son no ajustables, lo que significa que no se pueden cambiar sus valores después de llamar al objeto. Los objetos se bloquean cuando los llamas y la función release
los desbloquea.
Si una propiedad es ajustable, puedes cambiar su valor en cualquier momento.
Para obtener más información sobre cómo cambiar los valores de las propiedades, consulte System Design in MATLAB Using System Objects.
BaudRate
— Velocidad de baudios
9600
Esta propiedad o parámetro es de solo lectura.
La velocidad en baudios para la comunicación en serie. La velocidad en baudios se establece en 9600 bits/seg. El receptor GPS debe estar configurado para funcionar a 9600 bits/seg. Si su receptor GPS está configurado con alguna otra velocidad en baudios, reconfigurelo a 9600 bits/seg para usar la función gpsdev
.
ReadMode
— Especificar qué muestras de datos se devolverán
'latest'
(predeterminado) | 'oldest'
Especifique si se deben devolver las muestras de datos más recientes o más antiguas. El número de muestras depende del valor SamplesPerRead
. Los datos leídos del receptor GPS se almacenan en el buffer MATLAB® .
latest
: proporciona las últimas muestras de datos disponibles en el búfer. Todas las muestras de datos anteriores en el búfer se descartan. Por ejemplo, siSamplesPerRead
= 3, se devuelven las últimas tres muestras de datos leídas por el receptor GPS.oldest
: proporciona las muestras de datos más antiguas disponibles en el búfer. En este caso, no se descartan muestras de datos. Por ejemplo, siSamplesPerRead
= 3, las tres primeras muestras de datos leídas se devuelven para la primera lectura, las siguientes tres muestras de datos se devuelven para la segunda lectura, y así sucesivamente.
Ajustable: No
Tipos de datos: character vector
| string
SamplesRead
— Muestras leídas
doble
Esta propiedad o parámetro es de solo lectura.
Número de muestras leídas del receptor GPS usando la función read
, después de bloquear el objeto. El objeto gpsdev
se bloquea en la primera llamada de la función read
después de la creación del objeto o en la primera llamada de la función de lectura después de la ejecución de release
función.
Tipos de datos: double
SamplesAvailable
— Muestras en el búfer del host
doble
Esta propiedad o parámetro es de solo lectura.
Muestras disponibles en el búfer del host. Cuando release
el objeto, SamplesAvailable
se establece en 0.
Tipos de datos: double
SamplesPerRead
— Muestras por lectura
1
(predeterminado)
Muestras leídas del primer read
, especificado como un entero positivo en el rango [1 10].
Ajustable: No
Tipos de datos: double
OutputFormat
— Establecer formato de salida
'timetable'
(predeterminado) | 'matrix'
Establezca el formato de salida de los datos devueltos ejecutando la función read
.
Cuando OutputFormat
se establece en timetable
, el timetable
devuelto tiene los siguientes campos:
LLA (Latitud, Longitud, Altitud)
Pista de velocidad
Curso sobre tierra
Dilución de precisiones (DOP), VDOP, HDOP, PDOP
Hora del receptor GPS
Hora: hora del sistema cuando se leen los datos, en formato
datetime
oduration
Cuando OutputFormat
se establece en matrix
, los datos se devuelven como matrices de tiempo, LLA, velocidad sobre el terreno, rumbo sobre el terreno, DOP y tiempo del receptor GPS. Las unidades para las lecturas del receptor GPS son las mismas que las del formato timetable
.
Ajustable: Yes
Tipos de datos: character vector
| string
TimeFormat
— Establezca el formato de la hora que se muestra cuando se leen los datos del GPS.
'datetime'
(predeterminado) | 'duration'
Establezca el formato de la hora que se muestra cuando se leen los datos del GPS.
datetime
: muestra la fecha y hora en que se leen los datos.duration
: muestra el tiempo transcurrido en segundos después de bloquear el objeto GPS. El objetogpsdev
se bloquea en la primera llamada de la funciónread
después de la creación del objeto o en la primera llamada de la función de lectura después de la ejecución derelease
función.
Ajustable: Yes
Tipos de datos: character vector
| string
Funciones del objeto
Para utilizar una función de objeto, especifique System object como primer argumento de entrada. Por ejemplo, para liberar recursos del sistema de un System object llamado obj
, use esta sintaxis:
release(obj)
flush | Borre todos los datos de GPS acumulados en los buffers y restablezca las propiedades |
info | Lea la frecuencia de actualización, la información de bloqueo del GPS y la cantidad de satélites a la vista para el receptor GPS. |
read | Leer datos del receptor GPS |
release | Liberar el objeto GPS |
writeBytes | Escribir comandos sin formato al receptor GPS |
Ejemplos
Trazar la posición geográfica mediante GPS conectado a la computadora host
Obtenga la ubicación geográfica utilizando el receptor GPS conectado a la computadora host en un puerto serie específico y trace la ubicación en un mapa.
Hardware requerido
Para ejecutar este ejemplo, necesita:
Módulo GPS UBlox Neo-6M
antena gps
Módulo USB a UART
cable USB
Cables de conexión
Conexión de hardware
Conecte los pines del módulo GPS UBlox Neo-6M a los pines de su módulo USB a UART. Las conexiones son:
VCC - +5V
RX-TXO
TX-RXI
Tierra - Tierra
Conecte la antena GPS al módulo GPS. Conecte el módulo USB a UART a la computadora host con un cable USB. GPS Fix se puede adquirir fácilmente en lugares que tengan una vista despejada del cielo. Espere a que el módulo GPS adquiera señales satelitales (Fix). Esto se puede verificar verificando el LED Fix (D1) de su módulo GPS.
Crear objeto GPS
Cree un objeto gpsdev
para el módulo GPS conectado a un puerto específico.
gps = gpsdev('COM4')
gps = gpsdev with properties: SerialPort: COM4 BaudRate: 9600 (bits/s) SamplesPerRead: 1 ReadMode: "latest" SamplesRead: 0 Show all properties all functions
Leer los datos del GPS
Lea los datos del GPS y extraiga la latitud, longitud y hora de ellos. El GPS devuelve la fecha y hora UTC. Conviértalo a la zona horaria del sistema.
[gpsData,~] = read(gps);
latitude = gpsData.LLA(1);
longitude = gpsData.LLA(2);
gpsTime = gpsData.GPSReceiverTime;
gpsTime.TimeZone = 'local';
Trazar la posición en un mapa junto con la marca de tiempo.
Trazar la posición en ejes geográficos con los datos obtenidos del módulo GPS. El GPS debería tener una corrección para obtener valores válidos de latitud, longitud y gpsTime
.
Si el módulo GPS no tiene corrección, los comandos anteriores dan NaN
s para latitud y longitud y NaT
para gpsTime
. En este caso, asegúrese de que la antena esté expuesta a un cielo despejado, espere un tiempo y vuelva a intentar los pasos anteriores.
if(~isnan(latitude) && ~isnan(longitude)) % plot the position in geographic coordinates fig = geoplot(latitude,longitude,'Marker',"o",'MarkerSize',6,'Color','red','MarkerFaceColor','red'); % Sets the latitude and longitude limits of the base Map geolimits([latitude-0.05 latitude+0.05],[longitude-0.05 longitude+0.05]) ; % Selects the basemap geobasemap streets; timeString = strcat("Timestamp: ",string(gpsTime)); % Create annotation and display time received from GPS annotation('textbox',[0.005 0.98 0.6 0.01],'FitBoxToText','on','string',timeString,'Color','blue','FontSize',10); end
Limpiar
Cuando la conexión ya no sea necesaria, borre el objeto asociado.
delete(gps);
clear gps;
Escribir comandos de configuración en el receptor GPS
Escriba comandos de configuración en el receptor GPS conectado a la computadora host usando el objeto serialport
.
Hardware requerido
Para ejecutar este ejemplo, necesita:
Módulo GPS UBlox Neo-6M
antena gps
Módulo USB a UART
cable USB
Cables de conexión
Conexión de hardware
Conecte los pines del módulo GPS UBlox Neo-6M a los pines de su módulo USB a UART. Las conexiones son:
VCC - +5V
RX-TXO
TX-RXI
Tierra - Tierra
Conecte la antena GPS al módulo GPS. Conecte el módulo USB a UART a la computadora host con un cable USB. GPS Fix se puede adquirir fácilmente en lugares que tengan una vista despejada del cielo. Espere a que el módulo GPS adquiera señales satelitales (Fix). Esto se puede verificar verificando el LED Fix (D1) de su módulo GPS.
Crear objeto GPS
Conéctese al receptor GPS usando el objeto serialport
. Especifique el nombre del puerto y la velocidad en baudios.
s = serialport('COM4',9600)
s = Serialport with properties: Port: "COM4" BaudRate: 9600 NumBytesAvailable: 0 Show all properties, functions
gps = gpsdev(s)
gps = gpsdev with properties: SerialPort: COM4 BaudRate: 9600 (bits/s) SamplesPerRead: 1 ReadMode: "latest" SamplesRead: 0 Show all properties all functions
Escribir comandos de configuración
En la configuración predeterminada, el receptor GPS devuelve los siguientes mensajes NMEA: GPRMC, GPVTG, GPGGA, GPGSA, GPGSV y GPGLL. El receptor se puede configurar para que tenga un conjunto de mensajes de salida definido por el usuario.
Lea algunas líneas de mensajes predeterminados desde el puerto serie al que está conectado el receptor GPS.
for i = 1:10 data = readline(s); disp(data); end
$GPRMC,,V,,,,,,,,,,N*53 $GPVTG,,,,,,,,,N*30 $GPGGA,,,,,,0,00,99.99,,,,,,*48 $GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30 $GPGSV,2,1,08,01,,,18,08,,,12,09,,,12,15,,,19*77 $GPGSV,2,2,08,23,,,13,24,,,09,25,,,10,27,,,25*79 $GPGLL,,,,,,V,N*64 $GPRMC,,V,,,,,,,,,,N*53 $GPVTG,,,,,,,,,N*30 $GPGGA,,,,,,0,00,99.99,,,,,,*48
Escriba el comando del monitor de versión en el receptor GPS para devolver la versión de software y hardware del receptor GPS.
configCMD = [0xB5 0x62 0x0A 0x04 0x00 0x00 0x0E 0x34]; % writeBytes(gps,cfg) write(s,configCMD,'uint8')
Lea algunas líneas de mensajes nuevamente para verificar la versión del mensaje.
for i = 1:10 data = readline(s); disp(data); end
$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30 $GPGSV,2,1,05,01,,,13,09,,,11,15,,,16,23,,,12*74 $GPGSV,2,2,05,25,,,10*7A $GPGLL,,,,,,V,N*64 µb ( 7.03 (45969) 00040007 °$GPRMC,,V,,,,,,,,,,N*53 $GPVTG,,,,,,,,,N*30 $GPGGA,,,,,,0,00,99.99,,,,,,*48 $GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30 $GPGSV,2,1,06,01,,,11,09,,,11,23,,,14,24,,,21*75
Se puede observar en la salida que 7.03 (45969)
es la versión de software y 00040007
es la versión de hardware.
Limpiar
Cuando la conexión ya no sea necesaria, borre el objeto asociado.
delete(gps); clear gps; clear s;
Leer datos del receptor GPS como horario
Lea los datos del receptor GPS conectado a la computadora host en un puerto serie específico.
Hardware requerido
Para ejecutar este ejemplo, necesita:
Módulo GPS UBlox Neo-6M
antena gps
Módulo USB a UART
cable USB
Cables de conexión
Conexión de hardware
Conecte los pines del módulo GPS UBlox Neo-6M a los pines de su módulo USB a UART. Las conexiones son:
VCC - +5V
RX-TXO
TX-RXI
Tierra - Tierra
Conecte la antena GPS al módulo GPS. Conecte el módulo USB a UART a la computadora host con un cable USB. GPS Fix se puede adquirir fácilmente en lugares que tengan una vista despejada del cielo. Espere a que el módulo GPS adquiera señales satelitales (Fix). Esto se puede verificar verificando el LED Fix (D1) de su módulo GPS.
Crear objeto GPS
Cree un objeto gpsdev
para el receptor GPS conectado a un puerto específico. Especifique el formato de salida de los datos como un calendario.
gps = gpsdev('COM4','OutputFormat',"timetable")
gps = gpsdev with properties: SerialPort: COM4 BaudRate: 9600 (bits/s) SamplesPerRead: 1 ReadMode: "latest" SamplesRead: 0 Show all properties all functions
Leer los datos del GPS
Leer los datos del GPS y devolverlos como horario.
[tt,overruns] = read(gps)
tt=1×5 timetable
Time LLA GroundSpeed Course DOPs GPSReceiverTime
________________________ _________________________ ___________ ______ ____________________ ________________________
22-Mar-2021 15:31:15.190 17.47 78.343 449.6 0.25619 NaN 9.31 1.48 9.19 22-Mar-2021 10:01:14.000
overruns = 0
Muestra el número de muestras leídas y las muestras disponibles en el búfer del host.
gps.SamplesRead
ans = 1
gps.SamplesAvailable
ans = 0
Suelte el objeto GPS para configurar las propiedades no ajustables. La función de liberación también borra el búfer y restablece las propiedades SamplesRead
y SamplesAvailable
.
release(gps)
Especifique el número de muestras por lectura en 2. Leer los datos del GPS.
gps.SamplesPerRead = 2; read(gps)
ans=2×5 timetable
Time LLA GroundSpeed Course DOPs GPSReceiverTime
________________________ _________________________ ___________ ______ ____________________ ________________________
22-Mar-2021 15:31:17.178 17.47 78.343 450 0.063791 NaN 9.32 1.48 9.2 22-Mar-2021 10:01:16.000
22-Mar-2021 15:31:17.178 17.47 78.343 450 0.063791 NaN 9.32 1.48 9.2 22-Mar-2021 10:01:16.000
Muestra el número de muestras leídas y las muestras disponibles en el búfer del host.
gps.SamplesRead
ans = 1
gps.SamplesAvailable
ans = 0
Limpiar
Cuando la conexión ya no sea necesaria, borre el objeto asociado.
delete(gps);
clear gps;
Más acerca de
Módulos GPS
Para verificar la funcionalidad se utilizaron los siguientes módulos GPS:
GPS definitivo de Adafruit
Ublox NEO 6M
Ublox NEO 7M
Historial de versiones
Introducido en R2020b
Consulte también
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)