gpsdev
Connectez-vous à un récepteur GPS connecté à l'ordinateur hôte
Depuis R2020b
Description
Le gpsdev
System object™ se connecte à un récepteur GPS connecté à l'ordinateur hôte.
Pour vous connecter à un récepteur GPS :
Créez l'objet
gpsdev
et définissez ses propriétés.Appelez l'objet avec des arguments, comme s'il s'agissait d'une fonction.
Pour en savoir plus sur le fonctionnement des objets système, voir What Are System Objects?
Création
Description
se connecte à un récepteur GPS sur le port série spécifié de l'ordinateur hôte.gps
= gpsdev(port
)
se connecte à un récepteur GPS spécifié par un objet série.gps
= gpsdev(serialobj
)
se connecte à un récepteur GPS sur le port spécifié ou spécifié via un objet série, en utilisant une ou plusieurs paires nom-valeur.gps
= gpsdev(___,Name,Value)
Propriétés
Sauf indication contraire, les propriétés sont non réglables , ce qui signifie que vous ne pouvez pas modifier leurs valeurs après avoir appelé l'objet. Les objets se verrouillent lorsque vous les appelez et la fonction release
les déverrouille.
Si une propriété est ajustable , vous pouvez modifier sa valeur à tout moment.
Pour plus d'informations sur la modification des valeurs des propriétés, voir System Design in MATLAB Using System Objects.
BaudRate
— Débit en bauds
9600
Ce propriété est en lecture seule.
Le débit en bauds pour la communication série. Le débit en bauds est fixé à 9 600 bits/sec. Le récepteur GPS doit être configuré pour fonctionner à 9600 bits/sec. Si votre récepteur GPS est configuré sur un autre débit en bauds, reconfigurez-le à 9 600 bits/sec pour utiliser la fonction gpsdev
.
ReadMode
— Spécifiez les échantillons de données à renvoyer
'latest'
(par défaut) | 'oldest'
Spécifiez s’il faut renvoyer les échantillons de données les plus récents ou les plus anciens. Le nombre d'échantillons dépend de la valeur SamplesPerRead
. Les données lues sur le récepteur GPS sont stockées dans le tampon MATLAB® .
latest
— Fournit les derniers échantillons de données disponibles dans la mémoire tampon. Tous les échantillons de données précédents dans la mémoire tampon sont supprimés. Par exemple, siSamplesPerRead
= 3, les trois derniers échantillons de données lus par le récepteur GPS sont renvoyés.oldest
— Fournit les échantillons de données les plus anciens disponibles dans la mémoire tampon. Dans ce cas, aucun échantillon de données n’est rejeté. Par exemple, siSamplesPerRead
= 3, les trois premiers échantillons de données lus sont renvoyés pour la première lecture, les trois échantillons de données suivants sont renvoyés pour la deuxième lecture, et ainsi de suite.
Ajustable : No
Types de données : character vector
| string
SamplesRead
— Échantillons lus
double
Ce propriété est en lecture seule.
Nombre d'échantillons lus sur le récepteur GPS à l'aide de la fonction read
, après verrouillage de l'objet. L'objet gpsdev
est verrouillé soit au premier appel de la fonction read
après la création de l'objet, soit au premier appel de la fonction read après l'exécution du Fonction $release
.
Types de données : double
SamplesAvailable
— Échantillons dans le tampon hôte
double
Ce propriété est en lecture seule.
Échantillons disponibles dans le tampon hôte. Lorsque vous release
l'objet, SamplesAvailable
est défini sur 0.
Types de données : double
SamplesPerRead
— Échantillons par lecture
1
(par défaut)
Échantillons lus à partir du premier read
, spécifié comme un entier positif dans la plage [1 10].
Ajustable : No
Types de données : double
OutputFormat
— Définir le format de sortie
'timetable'
(par défaut) | 'matrix'
Définissez le format de sortie des données renvoyées en exécutant la fonction read
.
Lorsque le OutputFormat
est défini sur timetable
, le timetable
renvoyé comporte les champs suivants :
LLA (Latitude, Longitude, Altitude)
Vitesse au sol
Parcours sur sol
Dilution des précisions (DOP), VDOP, HDOP, PDOP
Temps du récepteur GPS
Heure — Heure système à laquelle les données sont lues, au format
datetime
ouduration
Lorsque le OutputFormat
est réglé sur matrix
, les données sont renvoyées sous forme de matrices de temps, LLA, vitesse sol, cap sur sol, DOP et temps du récepteur GPS. Les unités pour les lectures du récepteur GPS sont les mêmes que celles du format timetable
.
Ajustable : Yes
Types de données : character vector
| string
TimeFormat
— Définir le format de l'heure affichée lors de la lecture des données GPS
'datetime'
(par défaut) | 'duration'
Définissez le format de l'heure affichée lors de la lecture des données GPS.
datetime
— Affiche la date et l'heure auxquelles les données sont lues.duration
— Affiche le temps écoulé en secondes après le verrouillage de l'objet GPS. L'objetgpsdev
est verrouillé soit au premier appel de la fonctionread
après la création de l'objet, soit au premier appel de la fonction read après l'exécution du Fonction $release
.
Ajustable : Yes
Types de données : character vector
| string
Fonctions d'objet
Pour utiliser une fonction objet, spécifiez le System object comme premier argument d'entrée. Par exemple, pour libérer les ressources système d'un System object nommé obj
, utilisez cette syntaxe :
release(obj)
flush | Vider toutes les données GPS accumulées dans les tampons et réinitialiser les propriétés |
info | Lire le taux de mise à jour, les informations de verrouillage GPS et le nombre de satellites visibles pour le récepteur GPS |
read | Lire les données du récepteur GPS |
release | Relâchez l'objet GPS |
writeBytes | Écrire des commandes brutes sur le récepteur GPS |
Exemples
Tracer la position géographique à l'aide du GPS connecté à l'ordinateur hôte
Obtenez l'emplacement géographique à l'aide du récepteur GPS connecté à l'ordinateur hôte sur un port série spécifique et tracez l'emplacement sur une carte.
Matériel requis
Pour exécuter cet exemple, vous avez besoin de :
Module GPS Ublox Neo-6M
Antenne GPS
Module USB vers UART
cable USB
Fils de connexion
Connexion matérielle
Connectez les broches du module GPS UBlox Neo-6M aux broches de votre module USB vers UART. Les connexions sont :
VCC-+5V
RX-TXO
TX-RXI
Masse - Masse
Connectez l'antenne GPS au module GPS. Connectez le module USB vers UART à l'ordinateur hôte avec un câble USB. GPS Fix peut être facilement acquis dans des endroits offrant une vue dégagée sur le ciel. Attendez que le module GPS acquière les signaux satellite (Fix). Cela peut être vérifié en vérifiant la LED Fix (D1) de votre module GPS.
Créer un objet GPS
Créez un objet gpsdev
pour le module GPS connecté à un port spécifique.
gps = gpsdev('COM4')
gps = gpsdev with properties: SerialPort: COM4 BaudRate: 9600 (bits/s) SamplesPerRead: 1 ReadMode: "latest" SamplesRead: 0 Show all properties all functions
Lire les données GPS
Lisez les données GPS et extrayez-en la latitude, la longitude et l’heure. Le GPS renvoie la date et l'heure UTC. Convertissez-le en fuseau horaire système.
[gpsData,~] = read(gps);
latitude = gpsData.LLA(1);
longitude = gpsData.LLA(2);
gpsTime = gpsData.GPSReceiverTime;
gpsTime.TimeZone = 'local';
Tracez la position sur une carte avec l'horodatage
Tracez la position en axes géographiques avec les données obtenues du module GPS. Le GPS devrait avoir un correctif pour obtenir des valeurs valides pour la latitude, la longitude et gpsTime
.
Si le module GPS n'a pas de correctif, les commandes ci-dessus donnent NaN
s pour la latitude et la longitude et NaT
pour gpsTime
. Dans ce cas, assurez-vous que l'antenne est exposée à un ciel dégagé, attendez un moment et réessayez les étapes ci-dessus.
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
Nettoyer
Lorsque la connexion n'est plus nécessaire, effacez l'objet associé.
delete(gps);
clear gps;
Écrire les commandes de configuration sur le récepteur GPS
Écrivez les commandes de configuration sur le récepteur GPS connecté à l'ordinateur hôte à l'aide de l'objet serialport
.
Matériel requis
Pour exécuter cet exemple, vous avez besoin de :
Module GPS Ublox Neo-6M
Antenne GPS
Module USB vers UART
cable USB
Fils de connexion
Connexion matérielle
Connectez les broches du module GPS UBlox Neo-6M aux broches de votre module USB vers UART. Les connexions sont :
VCC-+5V
RX-TXO
TX-RXI
Masse - Masse
Connectez l'antenne GPS au module GPS. Connectez le module USB vers UART à l'ordinateur hôte avec un câble USB. GPS Fix peut être facilement acquis dans des endroits offrant une vue dégagée sur le ciel. Attendez que le module GPS acquière les signaux satellite (Fix). Cela peut être vérifié en vérifiant la LED Fix (D1) de votre module GPS.
Créer un objet GPS
Connectez-vous au récepteur GPS à l'aide de l'objet serialport
. Spécifiez le nom du port et le débit en bauds.
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
Écrire les commandes de configuration
Dans la configuration par défaut, le récepteur GPS renvoie les messages NMEA suivants : GPRMC, GPVTG, GPGGA, GPGSA, GPGSV et GPGLL. Le récepteur peut être configuré pour avoir un ensemble de messages de sortie défini par l'utilisateur.
Lisez quelques lignes de messages par défaut à partir du port série auquel le récepteur GPS est connecté.
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
Écrivez la commande de surveillance de version sur le récepteur GPS pour renvoyer la version logicielle et matérielle du récepteur GPS.
configCMD = [0xB5 0x62 0x0A 0x04 0x00 0x00 0x0E 0x34]; % writeBytes(gps,cfg) write(s,configCMD,'uint8')
Relisez quelques lignes de messages pour vérifier le message de version.
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
On peut l'observer à partir de la sortie, 7.03 (45969)
est la version du logiciel et 00040007
est la version du matériel.
Nettoyer
Lorsque la connexion n'est plus nécessaire, effacez l'objet associé.
delete(gps); clear gps; clear s;
Lire les données du récepteur GPS sous forme d'horaire
Lisez les données du récepteur GPS connecté à l'ordinateur hôte sur un port série spécifique.
Matériel requis
Pour exécuter cet exemple, vous avez besoin de :
Module GPS Ublox Neo-6M
Antenne GPS
Module USB vers UART
cable USB
Fils de connexion
Connexion matérielle
Connectez les broches du module GPS UBlox Neo-6M aux broches de votre module USB vers UART. Les connexions sont :
VCC-+5V
RX-TXO
TX-RXI
Masse - Masse
Connectez l'antenne GPS au module GPS. Connectez le module USB vers UART à l'ordinateur hôte avec un câble USB. GPS Fix peut être facilement acquis dans des endroits offrant une vue dégagée sur le ciel. Attendez que le module GPS acquière les signaux satellite (Fix). Cela peut être vérifié en vérifiant la LED Fix (D1) de votre module GPS.
Créer un objet GPS
Créez un objet gpsdev
pour le récepteur GPS connecté à un port spécifique. Spécifiez le format de sortie des données sous forme de calendrier.
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
Lire les données GPS
Lisez les données GPS et renvoyez-les sous forme d'horaire.
[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
Affiche le nombre d'échantillons lus et les échantillons disponibles dans le tampon hôte.
gps.SamplesRead
ans = 1
gps.SamplesAvailable
ans = 0
Relâchez l'objet GPS pour configurer les propriétés non réglables. La fonction release efface également le tampon et réinitialise les propriétés SamplesRead
et SamplesAvailable
.
release(gps)
Spécifiez le nombre d’échantillons par lecture sur 2. Lisez les données 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
Affiche le nombre d'échantillons lus et les échantillons disponibles dans le tampon hôte.
gps.SamplesRead
ans = 1
gps.SamplesAvailable
ans = 0
Nettoyer
Lorsque la connexion n'est plus nécessaire, effacez l'objet associé.
delete(gps);
clear gps;
En savoir plus
Modules GPS
Pour vérifier la fonctionnalité, les modules GPS suivants ont été utilisés :
Adafruit GPS ultime
Ublox NÉO 6M
Ublox NÉO 7M
Historique des versions
Introduit dans R2020b
Voir aussi
Commande MATLAB
Vous avez cliqué sur un lien qui correspond à cette commande MATLAB :
Pour exécuter la commande, saisissez-la dans la fenêtre de commande de MATLAB. Les navigateurs web ne supportent pas les commandes 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)