Índice:

Interface Arduino Mega com módulo GPS (Neo-6M): 8 etapas
Interface Arduino Mega com módulo GPS (Neo-6M): 8 etapas
Anonim
Interface Arduino Mega com módulo GPS (Neo-6M)
Interface Arduino Mega com módulo GPS (Neo-6M)

Neste projeto, mostrei como fazer a interface de um módulo GPS (Neo-6M) com o Arduino Mega. A biblioteca TinyGPS é usada para exibir os dados de Longitude e Latitude e TinyGPS ++ é usada para exibir Latitude, Longitude, Altitude, Velocidade e número de satélites no monitor serial.

Etapa 1: componentes necessários

Hardware

  • Arduino Mega ==> $ 30
  • Módulo GPS Neo-6M ==> $ 30

Programas

IDE Arduino

O custo total do projeto é de $ 60

Etapa 2: Informações sobre GPS

O que é GPS

O Sistema de Posicionamento Global (GPS) é um sistema de navegação baseado em satélite composto de pelo menos 24 satélites. O GPS funciona em qualquer condição climática, em qualquer lugar do mundo, 24 horas por dia, sem taxas de assinatura ou taxas de configuração.

Como funciona o GPS

Os satélites GPS giram em torno da Terra duas vezes por dia em uma órbita precisa. Cada satélite transmite um sinal único e parâmetros orbitais que permitem que os dispositivos GPS decodifiquem e calculem a localização precisa do satélite. Os receptores GPS usam essas informações e trilateração para calcular a localização exata de um usuário. Essencialmente, o receptor GPS mede a distância de cada satélite pela quantidade de tempo que leva para receber um sinal transmitido. Com medições de distância de mais alguns satélites, o receptor pode determinar a posição de um usuário e exibi-la.

Para calcular sua posição 2-D (latitude e longitude) e o movimento da trilha, um receptor GPS deve ser travado no sinal de pelo menos 3 satélites. Com 4 ou mais satélites à vista, o receptor pode determinar sua posição 3-D (latitude, longitude e altitude). Geralmente, um receptor GPS rastreia 8 ou mais satélites, mas isso depende da hora do dia e de onde você está na Terra. Assim que sua posição for determinada, a unidade GPS pode calcular outras informações, como

  • Velocidade
  • Consequência
  • Acompanhar
  • Distância da viagem
  • Distância até o destino

O que é sinal

Os satélites GPS transmitem pelo menos 2 sinais de rádio de baixa potência. Os sinais viajam pela linha de visão, o que significa que eles passarão por nuvens, vidro e plástico, mas não passarão pela maioria dos objetos sólidos, como edifícios e montanhas. No entanto, os receptores modernos são mais sensíveis e geralmente podem rastrear através das casas. Um sinal GPS contém 3 tipos diferentes de informação

Código pseudoaleatório

É um ID código que identifica qual satélite está transmitindo informações. Você pode ver de quais satélites está recebendo sinais na página de satélite do seu dispositivo.

Dados de efemérides

Os dados das efemérides são necessários para determinar a posição de um satélite e fornecem informações importantes sobre a saúde de um satélite, data e hora atuais.

Dados do Almanaque

Os dados do Almanaque informam ao receptor GPS onde cada satélite GPS deve estar a qualquer momento ao longo do dia e mostram as informações orbitais desse satélite e de todos os outros satélites do sistema.

Etapa 3: Módulo GPS Neo-6M

O módulo NEO-6M GPS é mostrado na figura abaixo. Ele vem com uma antena externa e não vem com pinos de cabeçalho. Portanto, você precisará soldá-lo.

Visão geral do módulo NEO-6M GPS

NEO-6M GPS Chip

O coração do módulo é um chip NEO-6M GPS da u-blox. Ele pode rastrear até 22 satélites em 50 canais e atinge o nível mais alto de sensibilidade da indústria, ou seja, rastreamento de -161 dB, enquanto consome apenas 45mA de corrente de alimentação. O motor de posicionamento u-blox 6 também possui um Time-To-First-Fix (TTFF) de menos de 1 segundo. Um dos melhores recursos que o chip oferece é o Modo de economia de energia (PSM). Ele permite uma redução no consumo de energia do sistema, ligando e desligando seletivamente partes do receptor. Isso reduz drasticamente o consumo de energia do módulo para apenas 11 mA, tornando-o adequado para aplicações sensíveis à energia, como relógio de pulso GPS. Os pinos de dados necessários do chip NEO-6M GPS são divididos em cabeçalhos de pitch de 0,1 ″. Isso inclui os pinos necessários para comunicação com um microcontrolador via UART.

Nota: - O módulo suporta taxa de baud de 4800bps a 230400bps com baud padrão de 9600.

Indicador LED de correção de posição

Há um LED no Módulo de GPS NEO-6M que indica o status da posição fixa. Ele piscará em várias taxas, dependendo do estado em que estiver

  1. Sem piscar ==> significa que está procurando por satélites
  2. Pisca a cada 1s - significa que a correção de posição foi encontrada

Regulador LDO de 3,3 V

A tensão de operação do chip NEO-6M é de 2,7 a 3,6 V. Porém, o módulo vem com o regulador 3V3 de dropout ultrabaixo MIC5205 da MICREL. Os pinos lógicos também são tolerantes a 5 volts, portanto, podemos conectá-lo facilmente a um Arduino ou a qualquer microcontrolador lógico de 5 V sem usar nenhum conversor de nível lógico.

Bateria e EEPROM

O módulo está equipado com um EEPROM serial de dois fios HK24C32. É de 4 KB e conectado ao chip NEO-6M via I2C. O módulo também contém uma bateria recarregável que atua como um supercapacitor.

Uma EEPROM junto com a bateria ajuda a reter a RAM com bateria de reserva (BBR). O BBR contém dados de relógio, dados de posição mais recentes (dados de órbita GNSS) e configuração de módulo. Mas não se destina ao armazenamento permanente de dados.

Como a bateria retém o relógio e a última posição, o tempo para a primeira correção (TTFF) reduz significativamente para 1s. Isso permite bloqueios de posição muito mais rápidos.

Sem a bateria, o GPS sempre inicializa a frio, de modo que o bloqueio inicial do GPS leva mais tempo. A bateria é carregada automaticamente quando a energia é aplicada e mantém os dados por até duas semanas sem energia.

Pinagem

GND é o pino de aterramento e precisa ser conectado ao pino GND no Arduino

O pino TxD (transmissor) é usado para comunicação serial

O pino RxD (receptor) é usado para comunicação serial

O VCC fornece energia para o módulo. Você pode conectá-lo diretamente ao pino de 5 V no Arduino

Etapa 4: Arduino Mega

Arduino é uma plataforma eletrônica de código aberto baseada em hardware e software fáceis de usar. As placas Arduino são capazes de ler entradas - luz em um sensor, um dedo em um botão ou uma mensagem do Twitter - e transformá-la em uma saída - ativando um motor, ligando um LED, publicando algo online. Você pode dizer à sua placa o que fazer enviando um conjunto de instruções para o microcontrolador da placa. Para fazer isso, você usa a linguagem de programação Arduino (baseada em Wiring) e o Arduino Software (IDE), baseado em Processing.

Arduino Mega

Arduino Mega 2560 é uma placa de microcontrolador baseada no Atmega2560.

  • Existem 54 pinos de E / S digitais e 16 pinos analógicos incorporados na placa que tornam este dispositivo único e se destaca dos outros. Das 54 E / S digitais, 15 são usadas para PWM (modulação por largura de pulso).
  • Um oscilador de cristal de frequência de 16 MHz é adicionado à placa.
  • A placa vem com uma porta de cabo USB que é usada para conectar e transferir códigos do computador para a placa.
  • O conector de alimentação DC é acoplado à placa que é usada para alimentar a placa.
  • A placa vem com dois reguladores de tensão, ou seja, 5 V e 3,3 V, que fornecem flexibilidade para regular a tensão de acordo com os requisitos.
  • Há um botão de reinicialização e 4 portas seriais de hardware chamadas USART que produzem uma velocidade máxima para configurar a comunicação.
  • Existem três maneiras de alimentar a placa. Você pode usar um cabo USB para alimentar a placa e transferir o código para a placa ou pode ligá-lo usando o Vin da placa ou através do conector de alimentação ou bateria.

Especificações

Pinagem

Descrição do pino

  • 5 V e 3,3 V ==> Este pino é usado para fornecer tensão regulada de saída em torno de 5 V. Esta fonte de alimentação regulada energiza o controlador e outros componentes da placa. Ele pode ser obtido do Vin da placa ou do cabo USB ou de outra fonte de tensão regulada de 5 V. Enquanto outra regulação de tensão é fornecida pelo pino de 3,3V. A potência máxima que pode consumir é de 50mA.
  • GND ==> Existem 5 pinos de aterramento disponíveis na placa, o que o torna útil quando mais de um pino de aterramento é necessário para o projeto.
  • Reinicializar ==> Este pino é usado para reinicializar a placa. Definir este pino como BAIXO irá reinicializar a placa.
  • Vin ==> É a tensão de entrada fornecida à placa que varia de 7V a 20V. A tensão fornecida pelo conector de alimentação pode ser acessada por meio deste pino. No entanto, a tensão de saída através deste pino para a placa será automaticamente configurada para 5V.
  • Comunicação serial ==> RXD e TXD são os pinos seriais usados para transmitir e receber dados seriais, ou seja, Rx representa a transmissão de dados enquanto Tx é usado para receber dados. Existem quatro combinações desses pinos seriais, onde Serail 0 contém RX (0) e TX (1), Serial 1 contém TX (18) e RX (19), Serial 2 contém TX (16) e RX (17), e Serial 3 contém TX (14) e RX (15).
  • Interrupções externas ==> Seis pinos são usados para criar interrupções externas, ou seja, interrupção 0 (0), interrupção 1 (3), interrupção 2 (21), interrupção 3 (20), interrupção 4 (19), interrupção 5 (18). Esses pinos produzem interrupções de várias maneiras, ou seja, fornecendo valor BAIXO, borda ascendente ou descendente ou valor alterado para os pinos de interrupção.
  • LED ==> Esta placa vem com LED embutido conectado ao pino digital 13. O valor HIGH neste pino irá acender o LED e o valor LOW irá desligá-lo.
  • AREF ==> AREF significa Tensão de Referência Analógica, que é uma tensão de referência para entradas analógicas.
  • Pinos analógicos ==> Existem 16 pinos analógicos incorporados na placa rotulados como A0 a A15. É importante observar que todos esses pinos analógicos podem ser usados como pinos de E / S digitais. Cada pino analógico vem com resolução de 10 bits. Esses pinos podem medir desde o aterramento até 5V. No entanto, o valor superior pode ser alterado usando a função AREF e analogReference ().
  • I2C ==> Dois pinos 20 e 21 suportam comunicação I2C, onde 20 representa SDA (linha de dados serial usada principalmente para manter os dados) e 21 representa SCL (linha de relógio serial usada principalmente para fornecer sincronização de dados entre os dispositivos)
  • Comunicação SPI ==> SPI significa Interface Periférica Serial usada para a transmissão de dados entre o controlador e outros componentes periféricos. Quatro pinos, isto é, 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) são usados para comunicação SPI.

Etapa 5: IDE Arduino

Estou assumindo que você já instalou o IDE do Arduino.

1. Baixe a biblioteca necessária fornecida abaixo

TinyGPS lib

2. Depois de fazer o download. Extraia-o e mova-o para a pasta C: / Usuários \… / Documentos / Arduino / bibliotecas, certifique-se de que não haja (-).

3. Abra o IDE do Arduino e copie o código da seção do programa.

4. Em seguida, selecione a placa para ir em Ferramentas ==> Placas ==> selecione a placa aqui estamos usando o Arduino Mega 2560

5. Depois de selecionar a porta, selecione a placa para ir para Ferramentas ==> Portas

6 Depois de selecionar a placa e a porta, clique em upload.

7. Assim que o código for carregado, abra o terminal serial para ver a saída.

Etapa 6: conexões

Arduino MEGA ==> NEO-6M GPS

  • 3,3 V ==> VCC
  • GND ==> GND
  • Tx1 (18) ==> Rx
  • Rx (19) ==> Tx

Você também pode usar Serial2 ou Serial3 em vez de Serial1

Recomendado: