Tutorial Módulo GPS con Arduino Deja un comentario

El módulo GPS en su modelo GY-GPS6MV2 viene con un módulo de serie U-Blox NEO 6M  equipado en el PCB, una EEPROM con configuración de fábrica, una pila de botón para mantener los datos de configuración en la memoria EEPROM, un indicador LED y una antena cerámica. También posee los pines o conectores Vcc, Rx, Tx y Gnd por el que se puede conectar a algún microcontrolador mediante una interfaz serial. Para que nuestro módulo GPS funcione a la perfección se recomienda hacer las pruebas en un ambiente abierto o cercano a la ventana para una correcta recepción de la señal.

   Bien, ahora vamos a probar nuestro módulo conectándolo a nuestro Arduino (en este caso se usará un Arduino UNO) mediante un puerto serie que se emulará por Software ya que usaremos el Rx0 y TX0 (puerto serie por Hardware) para la comunicación con nuestra PC y así verificar los datos que recibimos por el módulo GPS.

Vamos a realizar las conexiones que se muestran en la siguiente imagen o seguir los pasos que se describen a continuación:

– Conecte el pin 3.3V del Arduino UNO al pin Vcc del módulo GPS.
– Conecte el pin GND del Arduino UNO al pin GND del módulo GPS.
– Conecte el pin digital 4 del Arduino UNO al pin Tx del módulo GPS.
– Conecte el pin digital 3 del Arduino UNO al pin Rx del módulo GPS.

Conexiones GPS y Arduino

Cabe indicar que nuestro módulo GPS también se puede alimentar con una tensión de 5V ya que posee un regulador integrado dentro de sí.

A continuación, cargaremos el siguiente código a nuestro Arduino, en el cual se puede apreciar que se emplea la librería SoftwareSerial para emular un puerto serie como se mencionó anteriormente (no es necesaria instalarla, ya que viene por defecto en nuestro IDE de Arduino).

#include <SoftwareSerial.h>

SoftwareSerial gps(4,3);

char dato=' ';

void setup()
{
 Serial.begin(115200);            
 gps.begin(9600); 
}


void loop()
{
  if(gps.available())
  {
    dato=gps.read();
    Serial.print(dato);
  }
}

Como podemos ver, lo que hace nuestro programa es leer constantemente el módulo GPS a una velocidad de 9600 baudios que es la velocidad por la que viene configurado por defecto nuestro módulo GPS y  enviar dichos datos a la PC a través del puerto serie físico para poder visualizarlos en nuestro Monitor Serial. Al abrir nuestro Monitor Serial, nos aseguramos de configurarlo a una velocidad de 115200 baudios. Podremos ver los datos que recibimos.

Monitor Serial GPS

Los datos que recibimos en nuestro módulo GPS siguen el protocolo NMEA (siglas de National Marine Electronics Asociation), las cuales son sentencias estándares para la recepción de datos GPS. Una de ellas y la más usada son las sentencias $GPRMC, las cuales tienen la siguiente estructura:

$GPRMC,044235.000,A,4322.0289,N,00824.5210,W,0.39,65.46,020615,,,A*44

Donde si analizamos la trama de este ejemplo y basándose en el protocolo NMEA, podríamos determinar las siguientes variables:

– 044235.000 representa la hora GMT (04:42:35)
– “A” es la indicación de que el dato de posición está fijado y es correcto. “V” sería no válido
– 4322.0289 representa la longitud (43º 22.0289´)
– N representa el Norte
– 00824.5210 representa la latitud (8º 24.5210´)
– W representa el Oeste
– 0.39 representa la velocidad en nudos
– 65.46 representa la orientación en grados
– 020615 representa la fecha (2 de Junio del 2015)
Como vimos, de la trama de datos que nos envía nuestro módulo GPS podemos obtener varias variables, siendo las importantes para proyectos de posicionamiento la latitud y la longitud. Para ello, vamos a hacer uso de la librería TinyGPS que la podemos descargar de aquí:

https://github.com/mikalhart/TinyGPS

Recuerde que una vez descargada la Libreria, tenemos que importarla copiándola en la carpeta “Libraries” donde se instaló nuestro IDE de Arduino y luego reiniciar el programa para que sea cargada correctamente. La librería TinyGPS nos facilitará la identificación tanto de la latitud y longitud, así como las otras variables descritas anteriormente sin tener que recurrir a algoritmos complejos para lograr obtenerlas. Para ello ejecutamos un sencillo ejemplo que nos provee la librería, para lo cual nos vamos a Archivo/Ejemplos/TinyGPS/simple_test en nuestro IDE de Arduino.

A continuación, nos aseguramos de cambiar la velocidad de lectura del puerto serie emulado a 9600 baudios y cargamos nuestro código a nuestra tarjeta Arduino.

Sketch GPS

Finalmente, podremos abrir nuestro Monitor serial y visualizar las variables mencionadas tal como se pueden ver en la siguiente imagen:

Datos GPS

Pueden adquirir los materiales usados en este tutorial en nuestra tienda

         Módulo GPS NEO-6M

         Arduino Uno R3

         Cable Dupont, hembra a macho 20cm x 20Und

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Enviar Whatsapp
Hola 👋
¿En qué podemos ayudarte?