Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

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 :

  1. Créez l'objet gpsdev et définissez ses propriétés.

  2. 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

exemple

gps = gpsdev(port) se connecte à un récepteur GPS sur le port série spécifié de l'ordinateur hôte.

exemple

gps = gpsdev(serialobj) se connecte à un récepteur GPS spécifié par un objet série.

exemple

gps = gpsdev(___,Name,Value) 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.

Propriétés

développer tout

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.

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 .

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, si SamplesPerRead = 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, si SamplesPerRead = 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

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

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

Échantillons lus à partir du premier read, spécifié comme un entier positif dans la plage [1 10].

Ajustable : No

Types de données : double

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 ou duration

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

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'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 .

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)
flushVider toutes les données GPS accumulées dans les tampons et réinitialiser les propriétés
infoLire le taux de mise à jour, les informations de verrouillage GPS et le nombre de satellites visibles pour le récepteur GPS
readLire les données du récepteur GPS
releaseRelâchez l'objet GPS
writeBytesÉcrire des commandes brutes sur le récepteur GPS

Exemples

réduire tout

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

GPS_UART_USB_PC.png

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;

É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

GPS_UART_USB_PC.png

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;

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

GPS_UART_USB_PC.png

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

développer tout

Historique des versions

Introduit dans R2020b

Voir aussi