gpsdev
Conéctese a un receptor GPS conectado a la computadora host
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 configure sus propiedades.Llame al objeto con argumentos, como si fuera una función.
Para más información sobre el funcionamiento de los System objects, consulte ¿Qué son los 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 de puerto serie.gps
= gpsdev(serialobj
)
especifica propiedades utilizando uno o más argumentos de nombre-valor. Por ejemplo, gps
= gpsdev(___,Name=Value)gps = gpsdev("COM4",SamplesPerRead=2)
establece muestras por lectura en 2.
Argumentos de entrada
Nombre del puerto serie, especificado como un vector de caracteres o un escalar de cadena. Utilice serialportlist
para obtener una lista de puertos conectados.
Ejemplo: "COM2"
Conexión de puerto serie, especificada como un objeto serialport
Propiedades
A menos que se indique lo contrario, las propiedades son no ajustables, lo que significa que no puede modificar sus valores después de llamar al objeto. Los objetos se bloquean cuando llama a ellos, y la función release
los desbloquea.
Si una propiedad es ajustable, puede modificar su valor en cualquier momento.
Para obtener más información sobre cómo modificar los valores de las propiedades, consulte Diseñar sistemas en MATLAB utilizando System objects.
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 otra velocidad en baudios, reconfigúrelo a 9600 bits/seg para utilizar la función gpsdev
.
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 búfer 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, se devuelven las primeras tres muestras de datos leídas para la primera lectura, se devuelven las siguientes tres muestras de datos para la segunda lectura, y así sucesivamente.
Ajustable: No
Tipos de datos: character vector
| string
Esta propiedad o parámetro es de solo lectura.
Número de muestras leídas desde el receptor GPS mediante la función read
, después de bloquear el objeto. El objeto gpsdev
se bloquea en la primera llamada a la función read
después de la creación del objeto o en la primera llamada a la función de lectura después de la ejecución de la función release
.
Tipos de datos: double
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
Muestras leídas desde el primer read
, especificadas como un entero positivo en el rango [1 10].
Ajustable: No
Tipos de datos: double
Establezca el formato de salida de los datos devueltos al ejecutar 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 respecto al suelo, rumbo sobre el suelo, 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
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 que se bloquea el objeto GPS. El objetogpsdev
se bloquea en la primera llamada a la funciónread
después de la creación del objeto o en la primera llamada a la función de lectura después de la ejecución de la funciónrelease
.
Ajustable: Yes
Tipos de datos: character vector
| string
Funciones del objeto
Para usar una función de objeto, especifique el System object como el primer argumento de entrada. Por ejemplo, para liberar recursos de sistema de un System object llamado obj
, utilice la siguiente 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
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 de satélite (Fix). Esto se puede verificar verificando el LED Fix (D1) de su módulo GPS.
Crear objeto GPS
Crea 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 solució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;
Escriba comandos de configuración en el receptor GPS conectado a la computadora host mediante 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 utilizando 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 del software y 00040007
es la versión del hardware.
Limpiar
Cuando la conexión ya no sea necesaria, borre el objeto asociado.
delete(gps); clear gps; clear s;
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 de satélite (Reparación). Esto se puede verificar verificando el LED Fix (D1) de su módulo GPS.
Crear objeto GPS
Crea 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
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
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- 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)