 |
 |
|
|
| ¿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:
|
|
| |
 |
|
|
|
|
| |
|
|