segunda-feira, 5 de abril de 2021

GPS - UbxGps PROTOCOL

GPS - UbxGps PROTOCOL

O objetivo deste BLOG é dar uma ideia geral da LIB para Arduino que utiliza o protocolo desenvolvido pela u-BLOX: UbxGps
Arduino pode gerar código para os módulos NINA B e W.

UbxGps

Esta biblioteca Arduino foi desenvolvida para a comunicação mais rápida e simples com os módulos GPS u-blox , que suportam o protocolo UBX proprietário que é binário e, portanto, mais compacto do que o NMEA comum. A ideia principal era alcançar 10 Hz reais com o NEO-7M e pronto. Agradecimentos imensos ao iforce2d por um vídeo cujo código é definido com os fundamentos da biblioteca.



Esta biblioteca depende da configuração do módulo GPS e pode lidar com apenas um tipo de pacote UBX por vez, que você pode escolher durante a configuração do GPSUbxGps fornece interface fácil de usar para todos os dados disponíveis de acordo com a especificação de protocolo que você pode encontrar no diretório abaixo . Além disso, a descrição completa das propriedades está acessível nos códigos-fonte.

UbxGps/extras/Docs at main · loginov-rocks/UbxGps (github.com)

Tipos de pacotes UBX suportados

Os tipos de pacote UBX suportados pela biblioteca estão listados abaixo. Sinta-se à vontade para adicionar outros pacotes à biblioteca, pois a biblioteca foi projetada para tornar os novos tipos tão fáceis quanto possível.

UbxGpsNavPosecef.h

NAV-POSECEF (solução de posição em ECEF): iTOW, ecefX, ecefY, ecefZ, pAcc.

UbxGpsNavPosllh.h

NAV-POSLLH (solução de posição geodésica): iTOW, lon, lat, height, hMSL, hAcc, vAcc.

UbxGpsNavPvt.h

NAV-PVT (Navigation Position Velocity Time Solution): iTOW, ano, mês, dia, hora, min, seg, válido, tAcc, nano, fixType, sinalizadores, reservado1, numSV, lon, lat, altura, hMSL, hAcc, vAcc , velN, velE, velD, gSpeed, header, sAcc, headerAcc, pDOP, reserved2, reserved3.

UbxGpsNavSol.h

NAV-SOL (Navigation Solution Information): iTOW, fTOW, week, gpsFix, flags, ecefX, ecefY, ecefZ, pAcc, ecefVX, ecefVY, ecefVZ, sAcc, pDOP, reserved1, numSV, reserved2.

Começo rápido

Baixe UbxGpse coloque-o no diretório de bibliotecas do Arduino. 

O próximo passo é configurar seu módulo GPS corretamente, para descobrir como fazer esta seção de verificação de configuração do módulo GPS . Além disso, dê uma olhada no esboço de configuração automática para as placas Arduino Mega para configurar seu módulo GPS automaticamente para obter mensagens NAV-PVT com frequência de 100 ms e taxa de baud 115200.

Depois disso, você pode usar os exemplos incluídos ou brincar com o seguinte esboço simples:

#include "UbxGpsNavPvt.h" UbxGpsNavPvt<HardwareSerial> gps(Serial3); void setup() { Serial.begin(9600); gps.begin(9600); } void loop() { if (gps.ready()) { Serial.print(gps.lon / 10000000.0, 7); Serial.print(','); Serial.print(gps.lat / 10000000.0, 7); Serial.print(','); Serial.print(gps.height / 1000.0, 3); Serial.print(','); Serial.println(gps.gSpeed * 0.0036, 5); } }

Nota para usuários Uno

A biblioteca foi projetada para funcionar com módulo GPS através de uma porta serial de hardware, mas o Uno possui apenas uma. Isso significa que você pode configurar o módulo GPS, mas a biblioteca ocupará a porta serial e você precisa fazer algo mais para obter os dados dela. Por exemplo: adicione um cartão SD para armazenar os dados, ou transmita-os através do Bluetooth ou Ethernet. SoftwareSerialpode ser usado, mas não posso garantir que funcionará sem bugs em alta frequência.

Configuração do módulo GPS

Etapa 1. Fiação

Portanto, temos uma placa Arduino e um módulo GPS. A fiação é muito simples: GNDpara GNDVCCpara 5VTXpara RXRXpara TXComo o Uno tem apenas um par TX/RX, devemos conectar o módulo GPS TXao 2pino e RXao 3pino e usar a SoftwareSerialbiblioteca para se comunicar com o GPS. Se você tiver algo com mais de um par TX/RX na placa, você pode usá-lo, por exemplo para Mega podemos conectar o GPS RXao TX3TXao RX3.

Auto-configuração

Após a fiação, você pode fazer o upload do esboço de configuração automática para as placas Arduino Mega para configurar seu módulo GPS automaticamente.

No momento ele configura o receptor para receber mensagens NAV-PVT com frequência de 100 ms e taxa de baud 115200, mas você pode alterá-lo de acordo com suas necessidades.

Etapa 2. Ponte serial

Esta etapa é opcional e só é necessária para usar o u-center . 

Vamos fazer uma ponte entre o módulo GPS e o computador: carregue Serial-Bridge-Uno.inoou Serial-Bridge-Mega.inodesenhe para a placa, nos permite comunicar com o módulo GPS diretamente do computador. Abra o Serial Monitor , e se o seu módulo GPS for novo ou tiver configurações padrão, você verá algo como na imagem abaixo. Se tudo estiver OK, o GPS enviará alguns dados.



Etapa 3. Conheça o u-center

Para a configuração do módulo GPS u-blox, usaremos o programa u-center que você pode encontrar no site da U-blox . Ele analisa os dados do módulo GPS e fornece ferramentas úteis para trabalhar com ele. Inicie o programa, escolha a porta COM apropriada e defina a taxa de transmissão 9600 como padrão. Ele começará a obter alguns dados.



Etapa 4. Alterar a taxa de transmissão (opcional)

Se você tiver algo com mais de um par TX / RX, será útil aumentar a taxa de transmissão do módulo GPS. Pode ajudar se você vai trabalhar com alta frequência, como 5 ou 10 Hz. Abra a janela Exibir - Exibição de mensagens e encontre o item UBX - CGF - PRT . Defina a taxa de transmissão para 115200, por exemplo, e clique no botão Enviar no canto inferior esquerdo.

Alterar a taxa de transmissão usando a SoftwareSerialbiblioteca pode causar erros!

O módulo GPS irá parar de obter dados, porque nosso esboço funciona com a taxa de transmissão antiga. Desconecte-se da porta COM no u-center, atualize GPS_BAUDRATEe, PC_BAUDRATEse desejar, carregue-o na placa. Reconecte o u-center e deve funcionar!



Etapa 5. Alterar a frequência de atualização (opcional)

Na visualização de mensagens na guia UBX - CFG - RATE, você pode alterar o período de medição para aumentar a frequência de obtenção de dados. Quero atingir 10 Hz, então mudo o período de medição para 100 milissegundos e clico no botão Enviar .



Etapa 6. Desativar canais desnecessários

Para facilitar a vida do módulo GPS, podemos desabilitar canais desnecessários na guia UBX - CFG - GNSS . Precisamos apenas de GPS, então desmarque outros canais na coluna de ativação . Novamente, clique em Enviar para salvar as alterações.



Etapa 7. Escolha o pacote

A biblioteca UBX GPS funciona com apenas um tipo de pacote UBX, portanto, precisamos desabilitar totalmente os pacotes NMEA e habilitar um do grupo UBX. Abra o menu de contexto em Exibição de mensagens - NMEA e clique em Desativar mensagens secundárias . O u-center enviará o comando apropriado para o módulo GPS e a obtenção de dados será interrompida. Se você estiver usando SoftwareSerial, pode demorar um pouco para acertar, tente clicar em Desativar mensagens secundárias novamente se não funcionar.

Em seguida, escolha um tipo de pacote UBX com o qual deseja trabalhar, por exemplo UBX - NAV - PVT , abra o menu de contexto e clique em Ativar mensagem , o módulo GPS começará a obter dados novamente. Abra View - Packet Console para ver se está tudo bem, deve obter um tipo de pacote UBX com a frequência escolhida.



Etapa 8. Salvar configuração

Vá para UBX - CFG - CFG e clique em Enviar para salvar a configuração atual.

Importante! O módulo GPS vai se lembrar do que fizemos, mas às vezes não é suficiente: o módulo GPS pode retornar às configurações de fábrica depois de muito tempo sem energia, então verifique a bateria do módulo GPS.



Etapa 9. Verificações

Feche o u-center e abra um NavPvtesboço de exemplo , verifique a taxa de transmissão e carregue-o no quadro. Se tudo estiver OK, você obterá os dados desejados. Isso é tudo, pessoal!



Mais detalhes sobre a configuração do módulo GPS u-blox estão em Descrição do receptor - Configuração do receptor localizada no diretório Docs .

Módulos GPS compatíveis

  • NEO-7M
  • Outros módulos u-blox GPS com suporte ao protocolo UBX
  • Observe (crie um problema) se funciona com o seu módulo GPS

DÚVIDAS BÁSICAS

suporte@smartcore.com.br

Sobre a SMARTCORE

A SmartCore fornece módulos para comunição wireless, biometria, conectividade, rastreamento e automação.
Nosso portifólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.
Mais detalhes em www.smartcore.com.br

Referência

Nenhum comentário:

Postar um comentário