GPS Arduino: para localización y posicionamiento

GPS Arduino

Con la placa de desarrollo Arduino se pueden realizar multitud de proyectos, el límite muchas veces es la imaginación. Con los componentes electrónicos y módulos, se pueden ir agregando funcionalidades para que pueda hacer más cosas. Una de esas funcionalidades puede ser la capacidad de ubicar objetos o personas, o localizar mediante posicionamiento con GPS Arduino.

Este tipo de posicionamiento y trazamiento se puede hacer mediante RFID o receptores como el que vamos a tratar en este artículo. Con ello podrás crear multitud de proyectos, desde juegos con los que crear un detector y localizar objetos, hasta localizar objetos robados, pasando por poder ubicarte usando un GPS, etc.

Módulo GPS Arduino NEO-7

NEO-6 GPS Arduino

Para disponer de GPS Arduino, puedes usar los dispositivos NEO-6, una familia fabricada por U-Blox y que pueden ser conectados a la placa Arduino de una forma sencilla. Además, poseen una interfaz de comunicación completa, con UART, SPI, I2C, y USB, además de soportar protocolos NMEA, UBX binary y RTCM.

Además, este GPS Arduino con NEO-6 también permite minimizar el tamaño de tu proyecto, ya que tiene un pequeño tamaño, así como un reducido coste. En cuanto al consumo, también es pequeño. Cuando se encuentra en modo activo, solo necesitará 37mA. Se alimenta mediante 2.7 a 3.6V para los modelos NEO-6Q y NEO-6M, mientras que existen otros de menor voltaje llamados NEO-6G que solo necesitan entre 1.75 y 2v.

Si se encuentran integrados en un módulo, incluirán un regulador de voltaje que permitirá alimentarlo directamente desde la conexión 5v de Arduino
.

Otros parámetros interesantes de este módulo son:

  • Los 30 segundos de tiempo de encendido en frío, y tan solo 1 segundo para el encendido en caliente.
  • La frecuencia máxima de medición a la que funcionan es de tan solo 5Hz.
  • Precisión de la posición de 2.5 metros de variación.
  • Precisión de velocidad de 0.1 m/s.
  • Variación de orientación de solo 0.5º.

Dónde comprar un NEO-6 para GPS Arduino

Puedes encontrar estos dispositivos y módulos en multitud de tiendas de electrónica especializadas, o también en Amazon. Por ejemplo, aquí puedes adquirirlo a un precio muy barato:

Ejemplo con Arduino

Captura de pantalla de Arduino IDE

Puedes aprender más sobre programación con Arduino con el curso en PDF gratis que podrás descargar desde aquí.

Lo primero que debes hacer para acoplarlo a tu placa de desarrollo y disponer de tu GPS Arduino es conectar tu módulo NEO-6 a la placa. Las conexiones se realizan de forma muy simple (conexiones módulo NEO-6 – conexiones Arduino):

  • GND – GND
  • TX – RX (D4)
  • RX – TX (D3)
  • Vcc – 5V

Una vez ya lo tienes conectado, también tendrás que descargar la biblioteca SoftSerial en tu Arduino IDE, ya que será necesaria para la comunicación serie. Es probable que ya la tengas de otros proyectos, pero si no es así la tendrás que descargar e instalar en tu IDE.

Una vez hecho eso, ya puedes comenzar con tu código sencillo para realizar las lecturas. Por ejemplo, como se pueden usar varios protocolos, aquí tienes el sketch para NMEA:


#include <SoftwareSerial.h>

const int RX = 4;
const int TX = 3;

SoftwareSerial gps(RX, TX);

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

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

Por supuesto, puedes hacer tus modificaciones o usar otros protocolos si lo deseas… También puedes hacer uso de los ejemplos disponibles en tu IDE para esta biblioteca. Pero, antes de dar por finalizado el artículo, deberías saber que el formato NMEA (National Marine Electronics Asociation) es muy particular, para comprenderlo, tienes que conocer su sintaxis:

$GPRMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,v.v,x.x,ddmmyy,m.m,a*hh

Es decir, $GPRMC va seguido de una serie de parámetros que indican la localización:

  • hhmmss.ss: es la hora UTC en horas, minutos y segundos.
  • A: estado del receptor, siendo A=OK y V=alerta.
  • llll.ll,a: es la latitud, donde a puede ser N o S, para norte o sur.
  • yyyy.yy,a: es la longitud. Nuevamente a puede ser E o W, es decir, este u oeste.
  • v.v: la velocidad en nudos.
  • x.x: es el curso en grados.
  • ddmmyy: es la fecha UTC, en días, meses y año.
  • m.m,a: es la variación magnética en grados, y la a puede ser E o W para este u oeste.
  • *hh: Checksum o suma de verificación.

Por ejemplo, podrías obtener algo así:

$GPRMC,115446,A,2116.75,N,10310.02,W,000.5,054.7,191194,020.3,E*68


Sé el primero en comentar

Deja tu comentario

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

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.