#17 Tiempo de encontrarte

Introducción

  Seguramente has escuchado hablar algo sobre los GPS, o deseas hacer un proyecto con ellos.

   Hoy te hablaremos de ellos, pero antes explicare de que se trata este sistema.

 

   El Sistema de Posicionamiento Global (GPS) es un sistema de navegación por satélite, que proporciona información sobre la ubicación y el tiempo. Inicialmente, el GPS sólo estaba disponible para uso militar, pero ahora está disponible para todos. El GPS es ampliamente utilizado en diferentes ámbitos como: militar, robótica, astronomía y etc. Actualmente podemos ver la aplicación del GPS en nuestra vida diaria, tal como sistema de navegación de un auto nuevo o el GPS de un teléfono móvil inteligente, donde al tomar una foto nos pregunta si queremos agregar la ubicación. Un GPS básico proporciona información como la ubicación (latitud y longitud), la altitud, la velocidad y el tiempo.

 

¿Cómo funciona realmente el GPS? El receptor GPS recibe datos de satélites y calcula las ubicaciones. Para detectar una ubicación, el receptor GPS requiere un mínimo de tres satélites.

 

 

El módulo GPS que voy a utilizar es GPS Bee Kit de SeeedStudio. GPS Bee Kit es compatible y viene en el embalaje como XBee. Además, el GPS Bee Kit viene con mini antena integrada para GPS. Como la mayoría del módulo GPS disponible, utiliza la comunicación UART, sólo necesita dos líneas de datos que es Transmisor (Tx) y Receptor (Rx). Sin embargo, también acepta interfaz USB, DDC y SPI.

Es super sencillo de usar, solo debe estar la antena con vista al cielo, es decir, ubicado a en un lugar donde no tengas  interferencia, de manera que perciba los satélites.

Pasos a seguir:

#1   Armar el circuito según la imagen

#2   Abrir el IDE de Arduino y conectar la tarjeta PICARO al computador

#3   Seleccionar el tipo de tarjeta como Arduino Uno

#4   Elegir el puerto serial en que se encuentra conectada la tarjeta PICARO

#5   Copiar el código de ejemplo al IDE, compilarlo y subirlo

Listado de componentes :

Código:

El GPS Bee nos proporciona diferentes datos , como: GPRMC, GPGSA, GPGSV y GPGGA. Nosotros nos basaremos en el dato GPRMC que significa, mínima data recomendada para gps. A traves de el obtendremos la latitud y longitud, es decir las dos coordenadas angulares, latitud (Norte y Sur) y longitud (Este y Oeste).

Para saber que nos arroja el GPS Bee, prueba este sketch y por medio del puerto serial podrás observar algo como está imagen.

En el siguiente código, lo que haremos es  extraer los datos que deseamos a partir del mensaje GPRMC. 

char Gpsdata; // Para los datos seriales que se reciben

  unsigned int finish =0; // indica el fin del mensaje

  unsigned int pos_cnt=0; // contador de posicion

  unsigned int lat_cnt=0; // contador de data de latitud

  unsigned int log_cnt=0; // contador de data de longitud

  unsigned int flg =0; // bandera GPS

  unsigned int com_cnt=0; // contador de comas(,)

  char lat[12]; // latitud array

  char lg[12]; // longitud array

 

  void setup()

  {

    Serial.begin(9600); // Inicial el puerto serial

  }

 

  void loop()

  {

      Receive_GPS_Data(); //Inicia la funcion para obtener los datos del GPS

      Serial.print("Latitud: ");

      Serial.println(lat); //Muestra la latitud

      Serial.print("Longitud: ");

      Serial.println(lg); //Muestra la longitud

   }

 // Funcion : Receive_GPS_Data()

 //Descripcion : Encontrar LAtitud y Longitud desde el mensaje GPRMC

 

  void Receive_GPS_Data()

  { unsigned int com_cnt = 0;

    unsigned int pos_cnt = 0;

    while(finish==0){

      while(Serial.available()>0){ // Chequea si hay datos disponibles

        Gpsdata = Serial.read();

        flg = 1;

       if( Gpsdata=='$' && pos_cnt == 0) //Busca el encabezado GPRMC

         pos_cnt=1;

       if( Gpsdata=='G' && pos_cnt == 1) //Compara cada caracter para tomar los datos

         pos_cnt=2;

         

       if( Gpsdata=='P' && pos_cnt == 2)

         pos_cnt=3;

       

       if( Gpsdata=='R' && pos_cnt == 3)

         pos_cnt=4;

         

       if( Gpsdata=='M' && pos_cnt == 4)

         pos_cnt=5;

         

       if( Gpsdata=='C' && pos_cnt==5 )

         pos_cnt=6;

 

       if(pos_cnt==6 && Gpsdata ==','){ // Cuenta las comas(,) del mensaje

         com_cnt++;

         flg=0;

       }

 

       if(com_cnt==3 && flg==1){

        lat[lat_cnt++] = Gpsdata; // latitud

        flg=0;

       }

 

       if(com_cnt==5 && flg==1){

         lg[log_cnt++] = Gpsdata; // Longitud

         flg=0;

       }

 

       if( Gpsdata == '*' && com_cnt >= 7){

         com_cnt = 0; // Fin del mensaje GPRMC

         lat_cnt = 0; //Inicializa todos los contadores

         log_cnt = 0;

         flg = 0;

         finish = 1;

      }

    }

 }

}

 

Demostración

A través de estas imágenes, podemos ver el montaje de la tarjeta Real y los Resultados.

Si deseas visualizar en Google Maps, solo debes colocar un negativo antes de cada número, y unirlos por una coma (,), por ejemplo: –33.25,-070.36 que es el resultado que podemos ver en la imagen de demostración

¿En busca del Kit PICARO?

Con el PICARO Starter Kit podrás realizar estos ejemplos ¡y mucho más!
Producto Chileno. Encuéntralo en MCI Electronics.

Contacto

Direccion Luis Thayer Ojeda 0115 Of. 1104,

(Piso 11) Providencia, Santiago, Chile.

Phone: +56 2 2333 9579

Horario Lunes a Viernes de 8:30 a 18:00 horas. 

Nosotros

En MCI Electronics, estamos aquí para mantener la industria en movimiento. Nuestro objetivo es difundir y hacer accesible el uso de la electrónica a todo aquel que tenga el interés. Para ello nos esforzamos para traer los mejores componentes y módulos de manera que puedas aprender desarrollando tus propios proyectos.

Somos tu aliado en electrónica.

Suscríbete a nuestro boletín