gpsdev

Свяжите с GPS-приемником, соединенным с хостом - компьютером

Описание

gpsdev Система object™ связывает с GPS-приемником, соединенным с хостом - компьютером.

Связывать с GPS-приемником:

  1. Создайте gpsdev объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?

Создание

Описание

пример

gps = gpsdev(port) подключения к GPS-приемнику в заданном последовательном порту хоста - компьютера.

пример

gps = gpsdev(serialobj) подключения к GPS-приемнику заданы последовательным объектом.

пример

gps = gpsdev(___,Name,Value) подключения к GPS-приемнику на заданном порте или заданный через последовательный объект, с помощью одной или нескольких пар "имя-значение".

Свойства

развернуть все

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release функция разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

Это свойство доступно только для чтения.

Скорость в бодах для последовательной передачи. Скорость в бодах установлена на уровне 9 600 бит/с. GPS-приемник должен быть сконфигурирован, чтобы работать на уровне 9 600 бит/с. Если ваш GPS-приемник сконфигурирован к некоторой другой скорости в бодах, реконфигурируйте его к 9 600 бит/с, чтобы использовать gpsdev функция.

Задайте, возвратить ли последнее или самые старые выборки данных. Количество отсчетов зависит от SamplesPerRead значение. Данные, считанные из GPS-приемника, хранятся в MATLAB® буфер.

  • latest — Обеспечивает последние выборки данных, доступные в буфере. Отбрасываются все предыдущие выборки данных в буфере. Например, если SamplesPerRead = 3, последние три выборки данных, считанные GPS-приемником, возвращены.

  • oldest — Обеспечивает самые старые выборки данных, доступные в буфере. В этом случае никакие выборки данных не отбрасываются. Например, если SamplesPerRead = 3, первые три демонстрационных чтения данных возвращены для первого чтения, следующие три выборки данных возвращены для второго чтения и так далее.

Настраиваемый: нет

Типы данных: character vector | string

Это свойство доступно только для чтения.

Количество отсчетов, считанное из GPS-приемника с помощью read функция, после того, как объект заблокирован. gpsdev объект заблокирован любой в первом вызове read функция после создания объекта или в первом вызове функции чтения после выполнения release функция.

Типы данных: double

Это свойство доступно только для чтения.

Выборки, доступные в буфере хоста. Когда вы release объект, SamplesAvailable установлен в 0.

Типы данных: double

Выборки считаны из первого readВ виде положительного целого числа в области значений [1 10].

Настраиваемый: нет

Типы данных: double

Установите выходной формат данных, возвращенных путем выполнения read функция.

Когда OutputFormat установлен в timetable, timetable возвращенный имеет следующие поля:

  • LLA (широта, долгота, высота)

  • Скорость относительно земли

  • Курс по земле

  • Растворение точности (МЕДНЫЕ ЗАЖИМЫ), VDOP, HDOP, PDOP

  • Время GPS-приемника

  • Время — Системное время, когда данные считаны в datetime или duration формат

Когда OutputFormat установлен в matrix, данные возвращены как матрицы Времени, LLA, Скорости относительно земли, Курса по земле, МЕДНЫМ ЗАЖИМАМ, и время GPS-приемника. Модули для показаний GPS-приемника совпадают с timetable формат.

Настраиваемый: да

Типы данных: character vector | string

Установите формат времени, отображенного, когда данные о GPS будут считаны.

  • datetime — Отображает дату и время, в которой считаны данные.

  • duration — Отображается время протекло в секундах после того, как объект GPS заблокирован. gpsdev объект заблокирован любой в первом вызове read функция после создания объекта или в первом вызове функции чтения после выполнения release функция.

Настраиваемый: да

Типы данных: character vector | string

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)
flushСбросьте все данные о GPS, накопленные в буферах, и сбросьте свойства
infoСчитайте частоту обновления, информацию о блокировке GPS и количество спутников в поле зрения для GPS-приемника
readСчитайте данные из GPS-приемника
releaseВыпустите объект GPS
writeBytesЗапишите необработанные команды в GPS-приемник

Примеры

свернуть все

Получите географическое положение с помощью GPS-приемника, соединенного с хостом - компьютером на определенном последовательном порте, и постройте местоположение в карте.

Необходимое оборудование

Чтобы запустить этот пример, вам нужно:

  • Модуль GPS UBlox Neo-6M

  • Антенна GPS

  • USB к модулю UART

  • USB-кабель

  • Соединение проводов

Аппаратная связь

Соедините контакты на модуле GPS UBlox Neo-6M к контактам на вашем USB к модулю UART. Связи:

  • VCC - +5V

  • RX - TXO

  • TX - RXI

  • GND - GND

Соедините антенну GPS с модулем GPS. Соедините USB с модулем UART к хосту - компьютеру с USB-кабелем. Фиксация GPS может быть легко получена в местоположениях, которые имеют хороший обзор о небе. Ожидайте модуля GPS, чтобы получить спутниковые сигналы (Фиксируют).This, может быть проверен путем проверки Фиксации LED (D1) модуля GPS.

Создайте объект GPS

Создайте gpsdev объект для модуля GPS, соединенного с определенным портом.

gps = gpsdev('COM4')
gps = 
  gpsdev with properties:

                         SerialPort: COM4	
                           BaudRate: 9600 (bits/s)

                     SamplesPerRead: 1	 
                           ReadMode: "latest"	 
                        SamplesRead: 0	 
Show all properties all functions

Считайте данные о GPS

Считайте данные о GPS и извлеките широту, долготу, и время от него. GPS возвращает datetime UTC. Преобразуйте его в зону системного времени.

[gpsData,~] = read(gps);
latitude = gpsData.LLA(1);
longitude = gpsData.LLA(2);
gpsTime = gpsData.GPSReceiverTime;
gpsTime.TimeZone = 'local';

Постройте положение в карте наряду с меткой времени

Постройте положение в географических осях с данными, полученными из модуля GPS. GPS должен иметь, фиксируют, чтобы получить допустимые значения для широты, долготы и gpsTime.

Если модуль GPS не имеет, фиксируют, вышеупомянутые команды дают NaNs для широты и долготы и NaT для gpsTime. В этом случае убедитесь, что антенна отсоединена, чтобы очистить небо и ожидать в течение некоторого времени и попробовать перечисленные выше шаги снова.

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

Очистка

Когда связь больше не будет необходима, очистите связанный объект.

delete(gps);
clear gps;

Запишите команды настройки в GPS-приемник, соединенный с хостом - компьютером с помощью serialport объект.

Необходимое оборудование

Чтобы запустить этот пример, вам нужно:

  • Модуль GPS UBlox Neo-6M

  • Антенна GPS

  • USB к модулю UART

  • USB-кабель

  • Соединение проводов

Аппаратная связь

Соедините контакты на модуле GPS UBlox Neo-6M к контактам на вашем USB к модулю UART. Связи:

  • VCC - +5V

  • RX - TXO

  • TX - RXI

  • GND - GND

Соедините антенну GPS с модулем GPS. Соедините USB с модулем UART к хосту - компьютеру с USB-кабелем. Фиксация GPS может быть легко получена в местоположениях, которые имеют хороший обзор о небе. Ожидайте модуля GPS, чтобы получить спутниковые сигналы (Фиксируют).This, может быть проверен путем проверки Фиксации LED (D1) модуля GPS.

Создайте объект GPS

Свяжите с GPS-приемником с помощью serialport объект. Задайте имя порта и скорость в бодах.

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

Запишите команды настройки

В настройке по умолчанию GPS-приемник возвращает следующие сообщения NMEA: GPRMC, GPVTG, GPGGA, GPGSA, GPGSV и GPGLL. Приемник может быть сконфигурирован, чтобы иметь определяемый пользователем набор выходных сигналов.

Прочитайте немного строк сообщений по умолчанию от последовательного порта, 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

Запишите команду контроля версии в GPS-приемник, чтобы возвратить версию программного и аппаратного обеспечения GPS-приемника.

configCMD = [0xB5 0x62 0x0A 0x04 0x00 0x00 0x0E 0x34];
% writeBytes(gps,cfg)
write(s,configCMD,'uint8')

Прочитайте немного строк сообщений снова, чтобы проверить сообщение версии.

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

Это может наблюдаться от выхода, 7.03 (45969) версия программного обеспечения и 00040007 версия оборудования.

Очистка

Когда связь больше не будет необходима, очистите связанный объект.

delete(gps);
clear gps;
clear s;

Считайте данные из GPS-приемника, соединенного с хостом - компьютером на определенном последовательном порте.

Необходимое оборудование

Чтобы запустить этот пример, вам нужно:

  • Модуль GPS UBlox Neo-6M

  • Антенна GPS

  • USB к модулю UART

  • USB-кабель

  • Соединение проводов

Аппаратная связь

Соедините контакты на модуле GPS UBlox Neo-6M к контактам на вашем USB к модулю UART. Связи:

  • VCC - +5V

  • RX - TXO

  • TX - RXI

  • GND - GND

Соедините антенну GPS с модулем GPS. Соедините USB с модулем UART к хосту - компьютеру с USB-кабелем. Фиксация GPS может быть легко получена в местоположениях, которые имеют хороший обзор о небе. Ожидайте модуля GPS, чтобы получить спутниковые сигналы (Фиксируют).This, может быть проверен путем проверки Фиксации LED (D1) модуля GPS.

Создайте объект GPS

Создайте gpsdev объект для GPS-приемника, соединенного с определенным портом. Задайте выходной формат данных как расписание.

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

Считайте данные о GPS

Считайте данные о GPS и возвратите их как расписание.

[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

Отобразите чтение количества отсчетов и выборки, доступные в буфере хоста.

gps.SamplesRead
ans = 1
gps.SamplesAvailable
ans = 0

Выпустите объект GPS сконфигурировать не настраиваемые свойства. Функция релиза также очищает буфер и сбрасывает SamplesRead и SamplesAvailable свойства.

release(gps)

Задайте количество отсчетов на чтение к 2. Считайте данные о 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

Отобразите чтение количества отсчетов и выборки, доступные в буфере хоста.

gps.SamplesRead
ans = 1
gps.SamplesAvailable
ans = 0

Очистка

Когда связь больше не будет необходима, очистите связанный объект.

delete(gps);
clear gps;

Больше о

развернуть все

Смотрите также

Введенный в R2020b