courses: .fr.de.pt.jp
 
 
 ¿Cómo puedo ...? Conocer mis datos  geográficos con el "modulo GPS"

Este modulo de Parallax (Ficha de producto), permite que nuestra aplicación obtenga, los valores de; latitud, longitud, altura, fecha y hora, además de otros datos comunes a todos los dispositivos GPS.


Principio de funcionamiento

El GPS "Global Positioning System" (sistema de posicionamiento global), está basado en la recepción de señales de RF (radio frecuencia), emitidas por satélites que orbitan nuestro planeta, están dispuestos de forma que, en cualquier sitio que estemos ubicados, llegue a nuestro receptor, la señal de varios de éstos satélites simultáneamente, se precisan 3 señales como mínimo, para lograr el cálculo de la posición, ya que ésta se logra por un método de triangulación.

Por sus características, la señal de RF se ve afectada por atenuaciones en los interiores, interferencias de otros servicios que utilizan frecuencias de trabajo similares y ruido electrónico producido por artefactos eléctricos.

Una vez conectado a los 5 Volts (VCC), el módulo indica con el parpadeo de un LED rojo, que está tratando de localizar los satélites necesarios, para lograr el posicionamiento, éste parpadeo se interrumpe una vez logrado esto, el tiempo inicial necesario puede ser de varios minutos.

En el módulo existe un PIN (denominado RAW), que queda sin conectar, éste PIN permite al ser conectado a VSS, que el módulo entregue la señal en forma continua y sin interrupción, ver en página 3/12 del manual GPSManualV1.1.pdf .


Códigos Fuente

El código fuente provisto por Parallax, es muy fácil de utilizar, sólo es necesario verificar que coincida, el número del PIN al cual está conectado el módulo y que los parámetros de la comunicación serial, sean los adecuados al modelo de BASIC Stamp que estamos utilizando, los datos son presentados en la PC, por medio del comando DEBUG.

Además se acompaña una serie de códigos fuente, destinados a tomar cada uno de los datos por separado, esto permite conocer con más claridad el comportamiento del sistema, el nombre de cada código fuente, se corresponde con el dato asociado a éste.

' a-GPS-Version.BSx, Este código lee la versión del dispositivo.
' {$STAMP BS2sx}

HardVersion VAR Byte
FirmVersion VAR Byte

inicio:
    SEROUT 0, 500, ["!GPS", 00]
    SERIN 0, 500, [HardVersion, FirmVersion]
    DEBUG "HardVersion: ", HEX HardVersion.HIGHNIB, ".", HEX HardVersion.LOWNIB, CR
    DEBUG "FirmVersion: ", HEX FirmVersion.HIGHNIB, ".", HEX FirmVersion.LOWNIB, CR, CR
    PAUSE 2500
    GOTO inicio


----------------------------------------------------------------------------------------------------
' b-GPS-Validado.BSx, este código verifica el funcionamiento
' del dispositivo
' {$STAMP BS2sx}

Validado VAR Byte

inicio:
    SEROUT 0, 500, ["!GPS", 01]
    SERIN 0, 500, [Validado]
    DEBUG ? Validado
    PAUSE 2500
    GOTO inicio


----------------------------------------------------------------------------------------------------
' c-GPS-n-Satelites.BSx
' {$STAMP BS2sx}

n_Satelites VAR Byte
Version VAR Byte


inicio:
    SEROUT 0, 500, ["!GPS", 01]
    SERIN 0, 500, [version]
    SEROUT 0, 500, ["!GPS", 02]
    SERIN 0, 500, [n_Satelites]
    DEBUG ? n_Satelites, CR
    PAUSE 2500
    GOTO inicio


----------------------------------------------------------------------------------------------------
' d-GPS-Hora-UTC.bsx, se toma de los satélites, la hora
' correspondiente al UTC (tiempo universal coordinado), expresada en;
' horas, minutos y segundos
' {$STAMP BS2sx}

Horas VAR Byte
Minutos VAR Byte
Segundos VAR Byte

inicio:
    SEROUT 0, 500, ["!GPS", 03]
    SERIN 0, 500, [Horas, Minutos, Segundos]
    DEBUG "Hora UTC", CR, ? Horas, ? Minutos, ? Segundos, CR
    PAUSE 2500
    GOTO inicio


----------------------------------------------------------------------------------------------------
' e-GPS-Fecha.bsx, toma la fecha actual de los satélites, se expresa en;
' día, mes y año.
' {$STAMP BS2sx}

D VAR Byte
M VAR Byte
A VAR Byte

inicio:
    SEROUT 0, 500, ["!GPS", 04]
    SERIN 0, 500, [D, M, A]
    DEBUG "Fecha UTC", CR, ? D, ? M, ? A, CR
    PAUSE 2500
    GOTO inicio


----------------------------------------------------------------------------------------------------
' f-GPS-Latitud.bsx, toma la latitud correspondiente al lugar,
' expresada en; grados, minutos y decimal de minutos.
' {$STAMP BS2sx}

Grados VAR Byte
Minutos VAR Byte
Minutos_Decimal VAR Word
Norte_Sur VAR Byte

inicio:
    SEROUT 0, 500, ["!GPS", 05]
    SERIN 0, 500, [Grados, Minutos, Minutos_Decimal.HIGHBYTE, Minutos_Decimal.LOWBYTE, Norte_Sur]
    DEBUG "Latitud", CR, ? Grados, ? Minutos, ? Minutos_Decimal
    DEBUG "Norte_Sur=", DEC Norte_Sur, " (0=Norte, 1=Sur)", CR, CR
    PAUSE 4000
    GOTO inicio


----------------------------------------------------------------------------------------------------
' g-GPS-Longitud.bsx, toma la longitud correspondiente al lugar,
' expresada en; grados, minutos y decimal de minutos.
' {$STAMP BS2sx}

Grados VAR Byte
Minutos VAR Byte
Minutos_Decimal VAR Word
Este_Oeste VAR Byte

inicio:
    SEROUT 0, 500, ["!GPS", 06]
    SERIN 0, 500, [Grados, Minutos, Minutos_Decimal.HIGHBYTE, Minutos_Decimal.LOWBYTE, Este_Oeste]
    DEBUG "Longitud", CR, ? Grados, ? Minutos, ? Minutos_Decimal
    DEBUG "Este_Oeste=", DEC Este_Oeste, " (0=Este, 1=Oeste)", CR, CR
    PAUSE 4000
    GOTO inicio


----------------------------------------------------------------------------------------------------
' h-GPS-Altura.bsx, indica la altura del lugar, expresada en decímetros.
' {$STAMP BS2sx}

Altura VAR Word
Version VAR Byte

inicio:
    SEROUT 0, 500, ["!GPS", 01]
    SERIN 0, 500, [Version]
    SEROUT 0, 500, ["!GPS", 07]
    SERIN 0, 500, [Altura.HIGHBYTE, Altura.LOWBYTE]
    DEBUG "Altura en decímetros=", DEC Altura, CR, CR
    PAUSE 2500
    GOTO inicio


----------------------------------------------------------------------------------------------------
' i-GPS-Velocidad.bsx, indica la velocidad de desplazamiento, expresada
' en décimas de nudo.
' {$STAMP BS2sx}

Velocidad VAR Word
Version VAR Byte

inicio:
    SEROUT 0, 500, ["!GPS", 01]
    SERIN 0, 500, [Version]
    SEROUT 0, 500, ["!GPS", 08]
    SERIN 0, 500, [Velocidad.HIGHBYTE, Velocidad.LOWBYTE]
    DEBUG "Velocidad, en décimas de nudo=", DEC Velocidad, CR, CR
    PAUSE 2000
    GOTO inicio


----------------------------------------------------------------------------------------------------
' j-GPS-Dirección.bsx, indica la direccción que que se efectúa el
' desplazamiento
' {$STAMP BS2sx}

Direccion VAR Word
Version VAR Byte

inicio:
    SEROUT 0, 500, ["!GPS", 01]
    SERIN 0, 500, [Version]
    SEROUT 0, 500, ["!GPS", 09]
    SERIN 0, 500, [Direccion.HIGHBYTE, Direccion.LOWBYTE]
    DEBUG "(Dirección, en décimas de grado=)", DEC Direccion, CR, CR
    PAUSE 2000
    GOTO inicio


----------------------------------------------------------------------------------------------------
Descarga del codigo del programa completo de demostración (archivo comprimido ZIP 3,46KB): gpsdemov1_2.zip






Por cualquier duda o ampliación de datos, aparte de los expuestos, conectarse con:

Aristides Alvarez
info@microsparallax.com.ar
TE (0223) 474 5058, CEL 155 63 50 58
Mar del Plata, Argentina.
Aristides Alvarez - E-mail: info@microsparallax.com.ar - TE (0223) 474 5058, CEL 155 63 50 58 - Mar del Plata (Argentina)




Crawler kit #30055