Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Cómo conectar Arduino Mega con el módulo GPS NEO-6M

Componentes y suministros

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

Aplicaciones y servicios en línea

Arduino IDE

Acerca de este proyecto

Lo que encontré es que no hay un tutorial para la interfaz de Arduino Mega con el módulo GPS NEO-6M, así que decidí hacer uno. ¡Espero que te guste!

Componentes necesarios

Hardware

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

Software

  • IDE de Arduino

El costo total del proyecto es de $ 60.

Información sobre GPS

¿Qué es el GPS?

El Sistema de Posicionamiento Global (GPS) es un sistema de navegación por satélite compuesto por al menos 24 satélites. El GPS funciona en cualquier condición climática, en cualquier parte del mundo, las 24 horas del día, sin tarifas de suscripción ni cargos de configuración.

Cómo funciona el GPS

Los satélites GPS giran alrededor de la Tierra dos veces al día en una órbita precisa. Cada satélite transmite una señal única y parámetros orbitales que permiten que los dispositivos GPS decodifiquen y calculen la ubicación precisa del satélite. Los receptores GPS utilizan esta información y trilateración para calcular la ubicación exacta de un usuario. Esencialmente, el receptor GPS mide la distancia a cada satélite por la cantidad de tiempo que tarda en recibir una señal transmitida. Con mediciones de distancia de algunos satélites más, el receptor puede determinar la posición de un usuario y mostrarla.

Para calcular su posición 2-D (latitud y longitud) y rastrear el movimiento, un receptor GPS debe estar conectado a la señal de al menos 3 satélites. Con 4 o más satélites, el receptor puede determinar su posición 3-D (latitud, longitud y altitud). Por lo general, un receptor de GPS rastreará 8 o más satélites, pero eso depende de la hora del día y de dónde se encuentre en la tierra. Una vez que se ha determinado su posición, la unidad de GPS puede calcular otra información, como

  • Velocidad
  • Teniendo
  • Seguimiento
  • Dist. de viaje
  • Distancia al destino

Qué es la señal

Los satélites GPS transmiten al menos 2 señales de radio de baja potencia. Las señales viajan por la línea de visión, lo que significa que atravesarán nubes, vidrio y plástico, pero no atravesarán la mayoría de los objetos sólidos, como edificios y montañas. Sin embargo, los receptores modernos son más sensibles y normalmente pueden rastrear casas. Una señal de GPS contiene 3 tipos diferentes de información

  • Código pseudoaleatorio

Es un I.D. código que identifica qué satélite está transmitiendo información. Puede ver de qué satélites está recibiendo señales en la página de satélites de su dispositivo.

  • Datos de efemérides

Los datos de efemérides son necesarios para determinar la posición de un satélite y brindan información importante sobre el estado de un satélite, la fecha y hora actuales.

  • Datos de almanaque

Los datos del almanaque le dicen al receptor GPS dónde debe estar cada satélite GPS en cualquier momento del día y muestran la información orbital de ese satélite y de todos los demás satélites del sistema.

Módulo GPS Neo-6M

El módulo GPS NEO-6M se muestra en la siguiente figura. Viene con una antena externa y no viene con pines de cabecera. Entonces necesitarás soldarlo.

Descripción general del módulo GPS NEO-6M

  • Chip GPS NEO-6M

El corazón del módulo es un chip GPS NEO-6M de u-blox. Puede rastrear hasta 22 satélites en 50 canales y alcanza el nivel más alto de sensibilidad de la industria, es decir, seguimiento de -161 dB, mientras consume solo 45 mA de corriente de suministro. El motor de posicionamiento u-blox 6 también cuenta con un tiempo hasta la primera reparación (TTFF) de menos de 1 segundo. Una de las mejores características que ofrece el chip es el modo de ahorro de energía (PSM). Permite una reducción en el consumo de energía del sistema al encender y apagar de manera selectiva partes del receptor. Esto reduce drásticamente el consumo de energía del módulo a solo 11 mA, lo que lo hace adecuado para aplicaciones sensibles a la energía, como el reloj de pulsera con GPS. Los pines de datos necesarios del chip GPS NEO-6M están divididos en encabezados de paso de "0,1 ″. Esto incluye los pines necesarios para la comunicación con un microcontrolador a través de UART.

Nota :- El módulo admite una velocidad en baudios de 4800bps a 230400bps con una velocidad de transmisión predeterminada de 9600.

Indicador LED de corrección de posición

Hay un LED en el módulo GPS NEO-6M que indica el estado de la corrección de posición. Parpadeará a varias velocidades según el estado en el que se encuentre

  • Sin parpadeo ==> significa que está buscando satélites
  • Parpadea cada 1 s - significa que se encuentra la corrección de posición
  • Regulador LDO de 3,3 V

El voltaje de operación del chip NEO-6M es de 2.7 a 3.6V. Pero, el módulo viene con el regulador 3V3 de caída ultrabaja MIC5205 de MICREL. Los pines lógicos también son tolerantes a 5 voltios, por lo que podemos conectarlo fácilmente a un Arduino o cualquier microcontrolador lógico de 5 V sin usar ningún convertidor de nivel lógico.

Batería y EEPROM

El módulo está equipado con una EEPROM serial de dos cables HK24C32. Tiene un tamaño de 4 KB y está conectado al chip NEO-6M a través de I2C. El módulo también contiene una batería de botón recargable que actúa como un supercondensador.

Una EEPROM junto con la batería ayuda a retener la RAM respaldada por batería (BBR). El BBR contiene datos de reloj, datos de posición más recientes (GNSS o datos de bits) y configuración del módulo. Pero no está diseñado para el almacenamiento permanente de datos.

A medida que la batería retiene el reloj y la última posición, el tiempo hasta la primera reparación (TTFF) se reduce significativamente a 1 s. Esto permite bloqueos de posición mucho más rápidos.

Sin la batería, el GPS siempre arranca en frío, por lo que el bloqueo del GPS inicial lleva más tiempo. La batería se carga automáticamente cuando se aplica energía y mantiene los datos hasta dos semanas sin energía.

Pinout

  • GND es el pin de tierra y debe estar conectado al pin GND en el Arduino.
  • El pin TxD (transmisor) se utiliza para la comunicación en serie.
  • El pin RxD (receptor) se utiliza para la comunicación en serie.
  • VCC suministra energía para el módulo. Puede conectarlo directamente al pin de 5V en el Arduino.

Arduino Mega

Arduino es una plataforma electrónica de código abierto basada en hardware y software fáciles de usar. Las placas Arduino pueden leer entradas (luz en un sensor, un dedo en un botón o un mensaje de Twitter) y convertirlo en una salida, activando un motor, encendiendo un LED, publicando algo en línea. Puede decirle a su tablero qué hacer enviando un conjunto de instrucciones al microcontrolador en el tablero. Para hacerlo, utiliza el lenguaje de programación Arduino (basado en Wiring) y el Software Arduino (IDE), basado en Processing.

Arduino Mega 2560 es una placa de microcontrolador basada en Atmega2560.

  • Hay 54 pines de E / S digitales y 16 pines analógicos incorporados en la placa que hacen que este dispositivo sea único y se destaque de los demás. De las 54 E / S digitales, 15 se utilizan para PWM (modulación de ancho de pulso).
  • Un oscilador de cristal de frecuencia de 16 MHz.
  • La placa viene con un puerto de cable USB que se utiliza para conectar y transferir el código de la computadora a la placa.
  • El conector de alimentación de CC está acoplado con la placa que se utiliza para alimentar la placa.
  • La placa viene con dos reguladores de voltaje, es decir, 5V y 3.3V, que proporciona la flexibilidad para regular el voltaje según los requisitos.
  • Hay un botón de reinicio y 4 puertos en serie de hardware llamados USART que producen una velocidad máxima para configurar la comunicación.
  • Hay tres formas de alimentar la placa. Puede usar un cable USB para alimentar la placa y transferir el código a la placa o puede encenderlo usando Vin de la placa o mediante el conector de alimentación o la batería.

Especificaciones

Pinout

Descripción del pin

  • 5 V y 3,3 V ==> Este pin se usa para proporcionar voltaje regulado de salida alrededor de 5V. Esta fuente de alimentación regulada enciende el controlador y otros componentes de la placa. Se puede obtener de Vin de la placa o cable USB u otra fuente de voltaje regulada de 5V. Mientras que otra regulación de voltaje es proporcionada por un pin de 3.3V. La potencia máxima que puede extraer es de 50 mA.
  • GND ==> Hay 5 pines de tierra disponibles en la placa, lo que la hace útil cuando se requieren más de un pines de tierra para el proyecto.
  • Restablecer ==> Este pin se usa para reiniciar la placa. Establecer este pin en BAJO reiniciará la placa.
  • Vin ==> Es el voltaje de entrada suministrado a la placa que varía de 7V a 20V. Se puede acceder a la tensión proporcionada por el conector de alimentación a través de este pin. Sin embargo, el voltaje de salida a través de este pin a la placa se configurará automáticamente en 5V.
  • Comunicación en serie ==> RXD y TXD son los pines en serie que se utilizan para transmitir y recibir datos en serie, es decir, Rx representa la transmisión de datos, mientras que Tx se utiliza para recibir datos. Hay cuatro combinaciones de estos pines seriales que se utilizan donde Serail 0 contiene RX (0) y TX (1), Serial 1 contiene TX (18) y RX (19), Serial 2 contiene TX (16) y RX (17), y la Serie 3 contiene TX (14) y RX (15).
  • Interrupciones externas ==> Se utilizan seis pines para crear interrupciones externas, es decir, interrumpir 0 (0), interrumpir 1 (3), interrumpir 2 (21), interrumpir 3 (20), interrumpir 4 (19), interrumpir 5 (18). Estos pines producen interrupciones de varias formas, es decir, proporcionando valor BAJO, flanco ascendente o descendente o valor cambiante a los pines de interrupción.
  • LED ==> Esta placa viene con un LED incorporado conectado al pin digital 13. El valor HIGH en este pin encenderá el LED y el valor LOW lo apagará.
  • AREF ==> AREF son las siglas de Analog Reference Voltage, que es un voltaje de referencia para entradas analógicas.
  • Pines analógicos ==> Hay 16 pines analógicos incorporados en la placa etiquetados como A0 a A15. Es importante tener en cuenta que todos estos pines analógicos se pueden utilizar como pines de E / S digitales. Cada pin analógico viene con una resolución de 10 bits. Estos pines pueden medir desde tierra hasta 5V. Sin embargo, el valor superior se puede cambiar usando la función AREF y analogReference ().
  • I2C ==> Dos pines 20 y 21 admiten la comunicación I2C, donde 20 representa SDA (línea de datos en serie que se usa principalmente para almacenar los datos) y 21 representa SCL (línea de reloj en serie que se usa principalmente para proporcionar sincronización de datos entre los dispositivos)
  • Comunicación SPI ==> SPI son las siglas de Serial Peripheral Interface utilizado para la transmisión de datos entre el controlador y otros componentes periféricos. Se utilizan cuatro pines, es decir, 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) para la comunicación SPI.

IDE de Arduino

Aquí supongo que ya instaló Arduino IDE.

1. Descargue la biblioteca requerida que se proporciona a continuación

TinyGPS lib

2. Después de descargarlo. Extraerlo y moverlo a la carpeta C:\ Users \ ... \ Documents \ Arduino \ libraries asegúrese de que no haya (-).

3. Abra el IDE de Arduino y copie el código de la sección del programa.

4. Luego seleccione el tablero para eso, vaya a Herramientas ==> Tableros ==> seleccione tablero aquí estamos usando Arduino Mega 2560.

5. Después de seleccionar la placa, seleccione el puerto para eso, vaya a Herramientas ==> Puertos.

6. Después de seleccionar la placa y el puerto, haga clic en cargar.

Conexiones

Arduino MEGA ==> GPS NEO-6M

  • 3.3V ==> VCC
  • GND ==> GND
  • Tx1 (18) ==> Rx
  • Rx1 (19) ==> Tx

También puede utilizar Serial2 o Serial3 en lugar de Serial1

Serial2 pines

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

Serial3 pines

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

Resultado

Código

  • Arduinomega_GPS
Arduinomega_GPS Arduino
 // Conéctese con los pines 18 y 19 # include  // long lat, lon; // crea variable para latitud y longitud objectfloat lat, lon; TinyGPS gps; // crea gps objectvoid setup () {Serial.begin (57600); // conecta serialSerial.println ("La señal GPS recibida:"); Serial1.begin (9600); // conectar el sensor gps} void loop () {while (Serial1.available ()) {// comprobar si hay datos gps if (gps.encode (Serial1.read ())) // codificar datos gps {gps.f_get_position (&lat , &lon); // obtener latitud y longitud Serial.print ("Posición:"); // Latitude Serial.print ("Latitud:"); Serial.print (lat, 6); Serial.print (","); // Longitud Serial.print ("Longitud:"); Serial.println (lon, 6); }}} / * // Conecta con los pines 16 y 17 # include  // long lat, lon; // crea variable para latitud y longitud objectfloat lat, lon; TinyGPS gps; // crea gps objectvoid setup () {Serial.begin (57600); // conecta serialSerial.println ("La señal GPS recibida:"); Serial2.begin (9600); // conecta el sensor gps} void loop () {while (Serial2.available ()) {// comprueba si hay datos gps if (gps.encode (Serial2.read ())) // codifica datos gps {gps.f_get_position (&lat , &lon); // obtener latitud y longitud Serial.print ("Posición:"); // Latitude Serial.print ("Latitud:"); Serial.print (lat, 6); Serial.print (","); // Longitud Serial.print ("Longitud:"); Serial.println (lon, 6); }}} * // * // Conecta con los pines 14 y 15 # include  // long lat, lon; // crea variable para latitud y longitud objectfloat lat, lon; TinyGPS gps; // crea gps objectvoid setup () {Serial.begin (57600); // conecta serialSerial.println ("La señal GPS recibida:"); Serial3.begin (9600); // conecta el sensor gps} void loop () {while (Serial3.available ()) {// comprueba si hay datos gps if (gps.encode (Serial3.read ())) // codifica datos gps {gps.f_get_position (&lat , &lon); // obtener latitud y longitud Serial.print ("Posición:"); // Latitude Serial.print ("Latitud:"); Serial.print (lat, 6); Serial.print (","); // Longitud Serial.print ("Longitud:"); Serial.println (lon, 6); }}} * / 

Esquemas


Proceso de manufactura

  1. Capturando las gotas de agua con Arduino
  2. Jugando con Nextion Display
  3. Módulo GPS u-blox LEA-6H 02 con Arduino y Python
  4. Cómo leer la temperatura y la humedad en Blynk con DHT11
  5. Cómo hacer música con un Arduino
  6. Cómo utilizar NMEA-0183 con Arduino
  7. Pantalla de ubicación GPS con protectores de pantalla GPS y TFT
  8. Cómo utilizar Modbus con Arduino
  9. Registra la información del GPS en la tarjeta MicorSD con Visuino
  10. Módulo Arduino + GPS - Notificador de destino
  11. Módulo SIM800L GPRS con comandos Arduino AT