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 GPS. UbxGps 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 UbxGps
e 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. SoftwareSerial
pode 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: GND
para GND
, VCC
para 5V
, TX
para RX
e RX
para TX
. Como o Uno tem apenas um par TX/RX, devemos conectar o módulo GPS TX
ao 2
pino e RX
ao 3
pino e usar a SoftwareSerial
biblioteca 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 RX
ao TX3
e TX
ao 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.ino
ou Serial-Bridge-Mega.ino
desenhe 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 SoftwareSerial
biblioteca 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_BAUDRATE
e, PC_BAUDRATE
se 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 NavPvt
esboç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
Nenhum comentário:
Postar um comentário