|

Cómo usar un GPS con Arduino

ARDUINO

Por Saddam

GPS Interfacing with Computer Using Arduino

El GPS es un dispositivo muy útil que se emplea en muchos proyectos de electrónica y aplicaciones como sistemas de rastreo de vehículos, relojes GPS, sistemas de alerta de detección de accidentes, navegación de tráfico y sistemas de vigilancia, etc. Pero la pregunta es ¿cómo usar el GPS y leer los datos que entrega? Podemos obtener fácilmente los datos del GPS directamente en nuestra computadora usando Arduino. 

GPS son las siglas de Global Positioning System (Sistema de Posicionamiento Global) y se usa para determinar la latitud y la longitud de cualquier ubicación en la Tierra, con la hora UTC exacta (Tiempo Universal Coordinado). Este dispositivo recibe las coordenadas del satélite cada segundo, junto con la hora y la fecha. El GPS ofrece una gran precisión y también proporciona otros datos además de las coordenadas de posición, que veremos en breve.

GPS module SKG13BL

En este tutorial de GPS con Arduino, vamos a explicar cómo probar o conectar un módulo GPS usando la computadora y Arduino. Para conectar el GPS a la computadora necesitamos un convertidor USB a serie o una placa Arduino. Aquí usamos la placa Arduino para conectar el GPS. Solo necesitamos placa Arduino, módulo GPS, computadora y un adaptador de 12v/3.3v para la alimentación. Aquí hemos utilizado el módulo receptor GPS SKG13BL (que se muestra en la figura anterior).

GPS-interfacing-arduino-computer

Antes de conectarlo a la computadora, primero necesitamos retirar el circuito integrado (IC) de Arduino (el chip Atmega) de la placa Arduino, ya que solo necesitamos la circuitería serie de la placa. Esto se conoce como modo pasarela (Gateway mode). El retiro del IC se muestra en las siguientes figuras:

GPS interfacing arduino
GPS interfacing arduino remove ic

Ahora realiza la conexión como se indica en la siguiente imagen:

  1. Pin TX del GPS al PIN Digital 1 de Arduino (TXD)
  2. Pin de tierra (Ground) del GPS al PIN GND de Arduino
  3. Pin de alimentación (3.3v) del GPS al PIN de 3.3v de Arduino
GPS Interfacing with Arduino Fritzing Diagram
Gps and arduino

Después de las conexiones, conecta el cable USB a la computadora, abre el software Arduino IDE en la computadora, selecciona el puerto COM y abre el monitor serie para escuchar el puerto serie, y enciende el Arduino y el módulo GPS.

Ahora verás los datos del GPS en la ventana del Monitor Serie de Arduino, como se muestra abajo. A continuación hay dos capturas: la primera es cuando el GPS no tiene cobertura y la segunda es cuando el GPS sí tiene cobertura.

Datos del GPS cuando el receptor GPS está fuera de cobertura:

Datos del GPS cuando el receptor GPS tiene cobertura:

GPS interfacing arduino serial monitor window

En la ventana serie, puedes ver algunas líneas que empiezan con el signo $. Son las sentencias NMEA. El módulo GPS envía los datos de posición de rastreo en tiempo real en formato NMEA (ver la captura de arriba). El formato NMEA consta de varias sentencias, de las cuales las cuatro más importantes se indican a continuación. Puedes encontrar más detalles sobre las sentencias NMEA y su formato de datos aquí.

  • $GPGGA: Global Positioning System Fix Data (datos de posición del GPS)
  • $GPGSV: GPS satellites in view (satélites GPS a la vista)
  • $GPGSA: GPS DOP and active satellites (DOP del GPS y satélites activos)
  • $GPRMC: Recommended minimum specific GPS/Transit data (datos mínimos recomendados de GPS/tránsito)

Estas cadenas contienen muchos parámetros del GPS como: hora, fecha, longitud, latitud, velocidad, número de satélites en uso, altitud y muchos otros datos.

Para las coordenadas de cualquier ubicación y la hora, podemos usar $GPGGA y $GPRMC.

Para la fecha y la hora podemos usar la cadena $GPRMC.

Cuando usamos el módulo GPS para rastrear cualquier ubicación, solo necesitamos las coordenadas, y las podemos encontrar en la cadena $GPGGA. En la mayoría de los programas solo se usa la cadena $GPGGA (Global Positioning System Fix Data) y las demás cadenas se ignoran. Esta cadena contiene los datos de posición como se muestra a continuación:

$GPGGA,104534.000,7791.0381,N,06727.4434,E,1,08,0.9,510.4,M,43.9,M,,*47
$GPGGA,HHMMSS.SSS,latitude,N,longitude,E,FQ,NOS,HDP,altitude,M,height,M,,checksum data
IdentificadorDescripción
$GPGGADatos de posición del Sistema de Posicionamiento Global
HHMMSS.SSSHora en formato de horas, minutos, segundos y milisegundos.
LatitudeLatitud (coordenada)
NDirección N=Norte, S=Sur
LongitudeLongitud (coordenada)
EDirección E=Este, W=Oeste
FQDatos de calidad de la fijación (Fix Quality)
NOSNúmero de satélites en uso
HDPDilución horizontal de la precisión (HDOP)
AltitudeAltitud (metros sobre el nivel del mar)
MMetro
HeightAltura
ChecksumDatos de suma de verificación

Y la cadena $GPRMC contiene principalmente velocidad, hora, fecha y posición.

$GPRMC,123519.000,A, 7791.0381,N, 06727.4434,E,022.4,084.4,230394,003.1,W*6A
$GPRMC,HHMMSS.SSS,A,latitude,N,longitude,E,speed,angle,date,MV,W,CMD
IdentificadorDescripción
RMCSentencia mínima recomendada C
HHMMSS.SSSHora en formato de horas, minutos, segundos y milisegundos.
AEstado // A=activo y V=nulo (void)
LatitudeLatitud 49 grados 16.45 min. Norte
NDirección N=Norte, S=Sur
LongitudeLongitud (coordenada)
EDirección E=Este, W=Oeste
SpeedVelocidad en nudos
AngleÁngulo de rastreo en grados
DateMarca de tiempo (fecha en UTC)
MVVariación magnética
WDirección de la variación E/W
CMD (*6A)Datos de suma de verificación

En la mayoría de los casos esta cadena se usa para obtener la hora, la fecha y la velocidad.

Artículo traducido al español. Fuente original: CircuitDigest (por Saddam).

Similar Posts

Deja un comentario