Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Como fazer a interface do Arduino Mega com o Módulo GPS NEO-6M

Componentes e suprimentos

Arduino Mega 2560
× 1
módulo GPS u-blox NEO-6M
× 1

Aplicativos e serviços online

Arduino IDE

Sobre este projeto


O que descobri é que não há tutorial para interface do Arduino Mega com o módulo GPS NEO-6M, então decidi fazer um. Espero que você goste!





Componentes necessários


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

Software
  • Arduino IDE

O custo total do projeto é de $ 60.





Informações sobre GPS


O que é GPS?

O Sistema de Posicionamento Global (GPS) é um sistema de navegação baseado em satélite composto por 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 para o sinal de pelo menos 3 satélites. Com 4 ou mais satélites, 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
  • Rolamento
  • Trilha
  • Distância de 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 de 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 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 hora do dia e mostram as informações orbitais desse satélite e de todos os outros satélites do sistema.





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 11mA, 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 transmissão de 4800bps a 230400bps com transmissão padrão de 9600.

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

Há um LED no Módulo NEO-6M GPS que indica o status da posição fixa. Ele piscará em várias taxas, dependendo do estado em que se encontra
  • Sem piscar ==> significa que está procurando por satélites
  • Piscar a cada 1s - significa que a posição fixa 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á-los 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 (GNSS ou dados de bits) 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 é inicializado 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.
  • VCC fornece energia para o módulo. Você pode conectá-lo diretamente ao pino de 5 V no Arduino.





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 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.
  • 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 PIN

  • 5 V e 3,3 V ==> Este pino é usado para fornecer tensão regulada de saída em torno de 5V. 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.
  • Redefinir ==> 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, ou seja, 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) são usados ​​para comunicação SPI.





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 da placa, vá para Ferramentas ==> Portas.



6. Após selecionar a placa e a porta, clique em upload.





Conexões


Arduino MEGA ==> NEO-6M GPS
  • 3,3V ==> VCC
  • GND ==> GND
  • Tx1 (18) ==> Rx
  • Rx1 (19) ==> Tx

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

Pinos Serial2
  • Tx2 (16) ==> Rx
  • Rx2 (17) ==> Tx

Pinos Serial3
  • Tx3 (14) ==> Rx
  • Rx3 (15) ==> Tx






Resultado







Código

  • Arduinomega_GPS
Arduinomega_GPS Arduino
 // Conecte com os pinos 18 e 19 # include  // long lat, lon; // cria variável para latitude e longitude objectfloat lat, lon; TinyGPS gps; // cria configuração do objectvoid do GPS () {Serial.begin (57600); // conecte serialSerial.println ("O sinal recebido do GPS:"); Serial1.begin (9600); // conecte o sensor gps} void loop () {while (Serial1.available ()) {// verifique os dados do gps if (gps.encode (Serial1.read ())) // codifique os dados do gps {gps.f_get_position (&lat , &lon); // obtém latitude e longitude Serial.print ("Posição:"); // Latitude Serial.print ("Latitude:"); Serial.print (lat, 6); Serial.print (","); // Longitude Serial.print ("Longitude:"); Serial.println (lon, 6); }}} / * // Conecte com os pinos 16 e 17 # include  // long lat, lon; // cria variável para latitude e longitude objectfloat lat, lon; TinyGPS gps; // cria configuração do objectvoid do GPS () {Serial.begin (57600); // conecte serialSerial.println ("O sinal recebido do GPS:"); Serial2.begin (9600); // conecte o sensor gps} void loop () {while (Serial2.available ()) {// verifique os dados do gps if (gps.encode (Serial2.read ())) // codifique os dados do gps {gps.f_get_position (&lat , &lon); // obtém latitude e longitude Serial.print ("Posição:"); // Latitude Serial.print ("Latitude:"); Serial.print (lat, 6); Serial.print (","); // Longitude Serial.print ("Longitude:"); Serial.println (lon, 6); }}} * // * // Conecte com os pinos 14 e 15 # include  // long lat, lon; // cria variável para latitude e longitude objectfloat lat, lon; TinyGPS gps; // cria configuração do objectvoid do GPS () {Serial.begin (57600); // conecte serialSerial.println ("O sinal recebido do GPS:"); Serial3.begin (9600); // conecte o sensor gps} void loop () {while (Serial3.available ()) {// verifique os dados do gps if (gps.encode (Serial3.read ())) // codifique os dados do gps {gps.f_get_position (&lat , &lon); // obtém latitude e longitude Serial.print ("Posição:"); // Latitude Serial.print ("Latitude:"); Serial.print (lat, 6); Serial.print (","); // Longitude Serial.print ("Longitude:"); Serial.println (lon, 6); }}} * / 

Esquemas


Processo de manufatura

  1. Capturando as gotas de água com Arduino
  2. Brincando com Nextion Display
  3. u-blox LEA-6H 02 Módulo GPS com Arduino e Python
  4. Como ler a temperatura e umidade em Blynk com DHT11
  5. Como fazer música com um Arduino
  6. Como usar NMEA-0183 com Arduino
  7. Tela de localização GPS com GPS e telas TFT
  8. Como usar o Modbus com Arduino
  9. Registrar informações de GPS no cartão MicorSD com Visuino
  10. Módulo Arduino + GPS - Notificador de Destino