Módulo GPS e Interfaz con Arduino UNO Deja un comentario

Introducción

¿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 cargos de suscripción ni de configuración.

Cómo funciona el GPS

Los satélites GPS rodean 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 a los dispositivos GPS decodificar y calcular 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 toma recibir una señal transmitida. Con mediciones de distancia de unos pocos 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 el movimiento de la pista, un receptor GPS debe estar bloqueado a la señal de al menos 3 satélites. Con 4 o más satélites a la vista, el receptor puede determinar su posición tridimensional (latitud, longitud y altitud). Generalmente, un receptor GPS rastreará 8 o más satélites, pero eso depende de la hora del día y del lugar en el que se encuentre en la tierra.

Una vez que se ha determinado su posición, la unidad GPS puede calcular otra información, como por ejemplo:

  • Velocidad
  • Rango de movimiento
  • Camino
  • Distancia del viaje
  • Distancia hasta el destino

¿Cuál es la señal?

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

Una señal GPS contiene 3 tipos diferentes de información:

  • El código pseudoaleatorio es un código de identificación 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.
  • Los datos de efemérides son necesarios para determinar la posición de un satélite y proporcionan información importante sobre la salud del satélite, la fecha y la hora actuales.
  • Los datos del almanaque le indican 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 y Arduino

aquí.

Extrae la biblioteca y añádela a la ruta de la carpeta de bibliotecas de Arduino IDE.

Para más información sobre cómo añadir una biblioteca personalizada al IDE de Arduino y usar ejemplos de él, consulta Añadir biblioteca al IDE de Arduino en la sección tutoriales.

Aquí, hemos creado un scketch simplificado utilizando las funciones y el archivo de cabecera proporcionado por el Autor de esta biblioteca.

Si ves la mayoría de los datos en formato *****, toma el GPS conectado a Arduino en un espacio abierto (balcón por ejemplo). El GPS puede requerir algún tiempo para fijar los satélites. Dale unos 20-30 segundos para que pueda empezar a darte los datos correctos. Por lo general, no se tarda más de 5 segundos en fijar los satélites si estás en un espacio abierto, pero ocasionalmente puede tomar más tiempo (por ejemplo, si el receptor GPS no puede ver 3 o más satélites).

Diagrama de interfaz


Serial.println("*****");
Serial.print("Longitude : ");
Serial.println("*****");
}
else
{
DegMinSec(lat_val);
Serial.print("Latitude in Decimal Degrees : ");
Serial.println(lat_val, 6);
Serial.print("Latitude in Degrees Minutes Seconds : ");
Serial.print(degree);
Serial.print("t");
Serial.print(mins);
Serial.print("t");
Serial.println(secs);
DegMinSec(lng_val); /* Convert the decimal degree value into degrees minutes seconds form */
Serial.print("Longitude in Decimal Degrees : ");
Serial.println(lng_val, 6);
Serial.print("Longitude in Degrees Minutes Seconds : ");
Serial.print(degree);
Serial.print("t");
Serial.print(mins);
Serial.print("t");
Serial.println(secs);
}
if (!alt_valid)
{
Serial.print("Altitude : ");
Serial.println("*****");
}
else
{
Serial.print("Altitude : ");
Serial.println(alt_m_val, 6);
}
if (!time_valid)
{
Serial.print("Time : ");
Serial.println("*****");
}
else
{
char time_string[32];
sprintf(time_string, "Time : %02d/%02d/%02d n", hr_val, min_val, sec_val);
Serial.print(time_string);
}
}

static void smartDelay(unsigned long ms)
{
unsigned long start = millis();
do
{
while (GPS_SoftSerial.available()) /* Encode data read from GPS while data is available on serial port */
gps.encode(GPS_SoftSerial.read());
/* Encode basically is used to parse the string received by the GPS and to store it in a buffer so that information can be extracted from it */
} while (millis() - start < ms);
}

void DegMinSec( double tot_val) /* Convert data in decimal degrees into degrees minutes seconds form */
{
degree = (int)tot_val;
minutes = tot_val - degree;
seconds = 60 * minutes;
minutes = (int)seconds;
mins = (int)minutes;
seconds = seconds - minutes;
seconds = 60 * seconds;
secs = (int)seconds;
}

También te puede interesar

 

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.

0
    0
    Tu Carrito
    Tu carrito esta vacíoVolver a la tienda
    Enviar Whatsapp
    Hola 👋
    ¿En qué podemos ayudarte?