Professional Documents
Culture Documents
www.fixingenieria.com
Caractersticas
GPS Completamente integrado, receptor de bajo costo con una antena pasiva integrada Interface serial de un solo cable al BASIC Stamp, Propeller y otros micro controladores Proporciona cadenas NMEA0183 o datos especficos requeridos por usuario a travs del comando interface. Usa un chip estndar SIRF Star III Espaciado de .100" para uso fcil en prototipos e integracin Cdigo abierto completamente con todos los archivos de diseo disponible
Especificaciones clave
Requerimientos de potencia +5VDC @ 65 mA Comunicacin: Asncrona serial 4800 bps a nivel TTL Dimensiones 49 x 36 x 15 mm
Temperatura de operacin: 0 a 70 C
PAGE 2
Conexiones Elctricas
Pin Nombre Tipo Funcin
1 2 3
G P I/O
/RAW
Tierra del sistema. Conectar a la terminal de tierra de la fuente de poder. Potencia del sistema +5VDC entrada Comunicacin Serial (comandos enviados A el mdulo y recibidos DEL mdulo) Asncrono, Interface de nivel TTL. 4800 bps, 8 bits de datos, no paridad, 1 bit de paro, no invertido. Pin de seleccin de modo. Entrada digital activa BAJO. Internamente puesta en ALTO por defecto. Cuando el pin /RAW se desconecta, el modo inteligente se habilita, donde los comandos para los datos especficos GPS pueden solicitarse y se regresa el resultado (Ver el protocolo de comunicacin en la pgina 4). Cuando /RAW se pone en BAJO el modulo ingresar el modo raw y transmite cadenas estndar NMEA0183 permitiendo a los usuarios avanzados usar la informacin directamente.
Nota: Tipo I= Entrada, O= Salida, P= Potencia, G= Tierra El mdulo receptor GPS puede integrase en cualquier diseo utilizando un mnimo de 3 conexiones:
Los cuatro pins integrados permiten que el mdulo se pueda colocar en una tarjeta prototipo. Si se desea el modo inteligente por defecto y el modo /RAW no se usar entonces se puede conectar el mdulo con un cable de 3 pins similar al de los servos. (Parallax 805-00001). El modulo est diseado para montarse horizontalmente para que la antena pueda ver hacia el cielo. Tiene perforaciones de montaje en cada esquina para un montaje slido. Para mejores resultados el mdulo debe usarse con una vista clara hacia el cielo, sta es la naturaleza del GPS y no una limitacin del producto. Con una vista no obstruida hacia el cielo el GPS trabaja las 24 horas del da, siete das a la semana en cualquier parte del mundo. Por favor observe que productos como motores, computadoras y diseos inalmbricos RF los cuales emiten altos de campos magnticos e interferencias pueden hacer que el funcionamiento del mdulo decremente. Adems cuando se usa el modulo en aplicaciones de automviles la posicin ideal de montaje es el techo del automvil. Si el mdulo se usa dentro del carro asegrese que la antena tenga una vista clara al cielo, colocndolo en el tablero y donde no est bloqueado por ningn objeto metlico. Para mayor informacin del funcionamiento del GPS vea la seccin de Breve Tecnologa GPS en la pagina 6.
PAGE 3
Indicador de Estado
El mdulo GPS contiene solo un LED rojo para indicar el estado del sistema. El LED est localizado en la esquina inferior derecha del mdulo. Una cubierta blanca en el mdulo se usa para reflejar la luz del LED hacindolo ms sencillo de ver. El LED denota dos estados para el mdulo: 1. Parpadea: Esta buscando por satlites o no ha encontrado satlites fijos 2. Solido: Se adquiri informacin adecuadamente (un mnimo de 3 satlites se requiere antes de que el mdulo comience a transmitir datos vlidos GPS) Una vez encendido el GPS en una nueva posicin puede tomar hasta 5 minutos para tomar la informacin de los satlites. Durante este tiempo el LED del mdulo estar parpadeando. Cuando la suficiente informacin de los suficientes satlites haya sido recibida el LED se pondr en un modo slido. Si el LED rojo est apagado existe un problema, por favor verifique el cableado y la configuracin del mdulo.
Seleccin de Mdulo
El pin /RAW permite al usuario seleccionar los dos mdulos de operacin: Modo Inteligente. Cuando el modo /RAW se pone en ALTO o se deja desconectado (el pin internamente se pone en alto) el modo por defecto es el modo inteligente, donde los comandos especficos para datos GPS pueden solicitarse y se regresa el resultado. vea el protocolo de comunicacin para mayores detalles. Modo Raw. Cuando el pin /RAM se pone BAJO se habilita el modo RAW con el cual el mdulo transmitir cadenas estndar NMEA0183 (GGA, GSV, GSA y RMC) permitiendo a los usuarios utilizar la informacin directamente.
PAGE 4
0x06
GetLong
Longitud
Altitud sobre el nivel del mar en dcimas de metros. 6553.5 m Max. 0x08 GetSpeed Velocidad (En dcimas de nudos) 999.9 nudos Max. 0x09 GetHead Orientacin/Direccin de viaje (en dcimas de grados) 0x0A GetAltExt Modo extendido de altitud. Altitud sobe el nivel del mar (en metros) 65535 m Max. * Las variables son de 1 byte a menos que se especifique lo contrario
0x07
GetAltitude
2 2 2 2
Otras especificaciones
Rango de Actualizacin de Navegacin una vez por segundo (1Hz) Alta sensibilidad de -159 dBm Precisin de posicin de +/- 5 metros Precisin de velocidad de +/- 0.1 metros/segundo
PAGE 5
Caractersticas Elctricas
Rango de Valores Absolutos Condicin Temperatura de Operacin Temperatura de Almacenaje Voltaje requerido (Vcc) Voltaje de Tierra (Vss) Voltaje en cualquier pin respecto a Vss Valor 0 a 70C -55 a 100C +4.5VDC a +5.5VDC 0V -0.6V a +(Vcc +0.6)V
NOTA: Utilizar el equipo sobre las caractersticas enlistadas en los Rangos Absolutos Mximos puede ocasionar dao permanente al equipo. Estos son rangos nicamente y la operacin funcional del equipo a estas u otras condiciones indicadas en la lista de operaciones de esta especificacin no est implicada. La exposicin a los rangos mximos por periodos extendidos puede afectar la confiablidad del equipo. Caractersticas DC Especificacin Mnima 4.5 ---
Unidad V mA
PAGE 6
PAGE 7
La mayora de los GPS tienen una salida de datos que pueden ser utilizados e interpretados por otros equipos. El formato ms comn (usado por el receptor GPS de Parallax en modo RAW) es NMEA0183 desarrollado para comunicaciones entre instrumentos marinos. Algunos receptores tambin tienen propiedad de formatos para transferir listas, rastrear registros y otros datos entre el GPS y una computadora. Tales formatos no se cuben por el estndar NMEA. NMEA0183 se proporciona como una cadena de series de coma delimitada en ASCII, cada uno precedido con un encabezado de identificacin. Cualquier micro controlador con un puerto serie puede extraer los datos de un mdulo GPS. Pero los mdulos no producen texto de la informacin de la localidad. En cambio crean sentencias estandarizadas tales como: $GPGGA,170834,4124.8963,N,08151.6838,W,1,05,1.5,280.2,M,-34.0,M,,,*75 $GPGSA,A,3,19,28,14,18,27,22,31,39,,,,,1.7,1.0,1.3*34 $GPGSV,3,2,11,14,25,170,00,16,57,208,39,18,67,296,40,19,40,246,00*74 $GPRMC,220516,A,5133.82,N,00042.24,W,173.8,231.8,130694,004.2,W*70 Los programadores pueden entonces convertir estas cadenas para obtener la informacin que necesitan, incluyendo tiempo, fecha, latitud, longitud, velocidad y altitud. Para ms detalles de la estructura de las sentencias NMEA0183 visite: http://home.mira.net/~gnb/gps/nmea.html www.gpsinformation.org/dale/nmea.htm
El modo inteligente del GPS Parallax recibir instrucciones del usuario y automticamente pasara esta informacin NMEA0183 para proporcionar la informacin requerida, como se muestra en la salida de abajo usando el ejemplo de cdigo que comienza en la pgina 8
Parallax GPS Receiver Demo -------------------------Hardware Version: 1.0 Firmware Version: 2.0 Signal Valid: Yes Acquired Satellites: 7 Local Time: 12:45:40 Local Date: 28 FEB 2010 Latitude: 037 46' 51.5" N ( 37.7809 ) Longitude: 122 27' 50.8" W (-122.4641 ) Altitude: 45.3 meters ( 147 feet ) Extended Altitude: 45 meters ( 147 feet ) Speed: 28.5 Knots ( 32.7 MPH ) Direction of Travel: 87.7
Estas son tres notaciones estndares para desplegar longitud y latitud: Coordenadas GPS (Grados, minutos y minutos fraccionales) Ej: 36 grados 35.9159 minutos DDMMSS (Grados, Minutos, Segundos) Ej: 36 grados, 35 minutos, 55.3 segundos Grados Decimales Ej: 36.5986 grados
PAGE 8
En modo inteligente el receptor GPS transmite latitud y longitud al usuario en formato coordinado GPS (Grados, Minutos y Minutos Fraccionales). La conversin de las otras dos notaciones, DDMMSS y Grados Decimales, es simple y se demuestra en el cdigo que comienza en la pgina 8. Para desplegar grficamente la posicin GPS usando Mapas Google vaya a http://maps.google.com/ e ingrese sus coordenadas en el campo "Bsqueda" (por ejemplo "36.5989, -118.0599" sin las comillas). Para desplegar grficamente una serie de puntos, SPG Visualizer (www.gpsvisualizer.com) es una utilidad en lnea gratuita que genera mapas y perfiles de datos GPS. GPS Visualizer puede leer datos de diferentes fuentes, incluyendo RAW NMEA, Tab-Delimitado, o Coma-Separada del texto de datos relevantes de GPS. Algunos recursos adicionales y artculos se pueden encontrar en:
Where in the World is my BASIC Stamp?, Jon Williams, The Nuts and Volts of BASIC Stamps (Volume 3; Column 83), que puede encontrar en el Tabulador de recursos en www.parallax.com. Stamping on Down the Road, Jon Williams, The Nuts and Volts of BASIC Stamps (Volume 4,Column 103), que puede encontrar en el Tabulador de recursos en www.parallax.com.
GPS PARALLAX 28146 Sio PIN 15 ' connects to GPS Module SIO pin
PAGE 9
' -----[ Constants ]------------------------------------------------------T4800 Open Baud MoveTo CON ClrRt FieldLen EST CST MST PST EDT CDT MDT PDT UTCfix DegSym MinSym SecSym CON CON CON 188 $8000 Open | T4800 ' Open mode to allow daisy chaining ' DEBUG positioning command ' clear line right of cursor ' length of debug text ' Eastern Standard Time ' Central Standard Time ' Mountain Standard Time ' Pacific Standard Time ' Eastern Daylight Time ' Central Daylight Time ' Mountain Daylight Time ' Pacific Daylight Time ' set based on time zone location ' degrees symbol for report ' minutes symbol ' seconds symbol
2 CON 11 CON 22 CON -5 CON -6 CON -7 CON -8 CON -4 CON -5 CON -6 CON -7 CON PST CON 176 CON 39 CON 34
' GPS Module Commands GetInfo CON $00 GetValid CON $01 GetSats CON $02 GetTime CON $03 GetDate CON $04 GetLat CON $05 GetLong CON $06 GetAlt CON $07 GetSpeed CON $08 GetHeading CON $09 GetAltExt CON $0A ' -----[ Variables ]------------------------------------------------------char VAR workVal VAR eeAddr VAR ver_hw VAR ver_fw VAR valid sats VAR VAR Byte Word workVal Byte Byte Byte Byte Byte Byte Byte Byte Byte Byte ' signal valid? 0 = not valid, 1 = valid ' number of satellites used in positioning calculations ' time fields
tmHrs VAR tmMins VAR tmSecs VAR day month year VAR VAR VAR
' day of month, 1-31 ' month, 1-12 ' year, 00-99
GPS PARALLAX 28146 degrees minutes minutesD dir W) VAR VAR VAR VAR Byte Byte Word Byte ' latitude/longitude degrees ' latitude/longitude minutes ' latitude/longitude decimal minutes ' direction (latitude: 0 = N, 1 = S, longitude: 0 = E, 1 =
PAGE 10
heading VAR WORD alt VAR WORD altExt VAR WORD supported in GPS firmware <= 2.0) speed VAR WORD ' speed in 0.1 knots
' heading in 0.1 degrees ' altitude in 0.1 meters ' altitude in meters (no decimal, extended range,
' -----[ EEPROM Data ]----------------------------------------------------NotValid IsValid DaysInMon MonNames DATA DATA DATA DATA DATA "No", 0 "Yes", 0 31,28,31,30,31,30,31,31,30,31,30,31 "JAN",0,"FEB",0,"MAR",0,"APR",0,"MAY",0,"JUN",0 "JUL",0,"AUG",0,"SEP",0,"OCT",0,"NOV",0,"DEC",0
' -----[ Initialization ]-------------------------------------------------Initialize: PAUSE 250 DEBUG CLS DEBUG MoveTo, 0, 1, ' let DEBUG open ' clear the screen "Parallax GPS Receiver Demo"
Draw_Data_Labels: DEBUG MoveTo, 0, 3, " Hardware Version: " DEBUG MoveTo, 0, 4, " Firmware Version: " DEBUG MoveTo, 0, 6, " Signal Valid: " DEBUG MoveTo, 0, 7, "Acquired Satellites: " DEBUG MoveTo, 0, 9, " Local Time: " DEBUG MoveTo, 0, 10, " Local Date: " DEBUG MoveTo, 0, 12, " Latitude: " DEBUG MoveTo, 0, 13, " Longitude: " DEBUG MoveTo, 0, 14, " Altitude: " DEBUG MoveTo, 0, 15, " Extended Altitude: " DEBUG MoveTo, 0, 16, " Speed: " DEBUG MoveTo, 0, 17, "Direction of Travel: " ' -----[ Program Code ]---------------------------------------------------Main: GOSUB Get_Info GOSUB Get_Valid GOSUB Get_Sats GOSUB Get_TimeDate GOSUB Get_Lat GOSUB Get_Long GOSUB Get_Alt GOSUB Get_AltExt GOSUB Get_Speed GOSUB Get_Heading GOTO Main ' -----[ Subroutines ]----------------------------------------------------Get_Info: SEROUT Sio, Baud, ["!GPS", GetInfo]
GPS PARALLAX 28146 SERIN Sio, Baud, 3000, No_Response, [ver_hw, ver_fw] DEBUG MoveTo, FieldLen, 3, HEX ver_hw.HIGHNIB, ".", HEX ver_hw.LOWNIB DEBUG MoveTo, FieldLen, 4, HEX ver_fw.HIGHNIB, ".", HEX ver_fw.LOWNIB RETURN ' ---------------------------------------------------Get_Valid: SEROUT Sio, Baud, ["!GPS", GetValid] SERIN Sio, Baud, 3000, No_Response, [valid] DEBUG MoveTo, FieldLen, 6 LOOKUP valid, [NotValid, IsValid], eeAddr GOSUB Print_Z_String DEBUG ClrRt IF (valid = 0) THEN Signal_Not_Valid RETURN ' ---------------------------------------------------Get_Sats: SEROUT Sio, Baud, ["!GPS", GetSats] SERIN Sio, Baud, 3000, No_Response, [sats] DEBUG MoveTo, FieldLen, 7, DEC sats RETURN ' ---------------------------------------------------Get_TimeDate: SEROUT Sio, Baud, ["!GPS", GetTime] SERIN Sio, Baud, 3000, No_Response, [tmHrs, tmMins, tmSecs] SEROUT Sio, Baud, ["!GPS", GetDate] SERIN Sio, Baud, 3000, No_Response, [day, month, year] GOSUB Correct_Local_Time_Date DEBUG MoveTo, FieldLen, 9, DEC2 tmHrs, ":", DEC2 tmMins, ":", DEC2 tmSecs DEBUG MoveTo, FieldLen, 10, DEC2 day, " " eeAddr = (month - 1) * 4 + MonNames ' get address of month name GOSUB Print_Z_String ' print it DEBUG " 20", DEC2 year RETURN ' ---------------------------------------------------Get_Lat: SEROUT Sio, Baud, ["!GPS", GetLat] SERIN Sio, Baud, 3000, No_Response, [degrees, minutes, minutesD.HIGHBYTE, minutesD.LOWBYTE, dir] ' convert decimal minutes to tenths of seconds workVal = minutesD ** $0F5C ' minutesD * 0.06 DEBUG MoveTo, FieldLen, 12, DEC3 degrees, DegSym, " ", DEC2 minutes, MinSym, " " DEBUG DEC2 (workVal / 10), ".", DEC1 (workVal // 10), SecSym, " " DEBUG "N" + (dir * 5) ' convert to decimal format, too workVal = (minutes * 1000 / 6) + (minutesD / 60) DEBUG " (", " " + (dir * 13), DEC degrees, ".", DEC4 workVal, " ) " RETURN ' was the signal valid? ' get answer from EE ' print it ' clear end of line
PAGE 11
GPS PARALLAX 28146 ' ---------------------------------------------------Get_Long: SEROUT Sio, Baud, ["!GPS", GetLong] SERIN Sio, Baud, 3000, No_Response, [degrees, minutes, minutesD.HIGHBYTE, minutesD.LOWBYTE, dir] ' convert decimal minutes to tenths of seconds workVal = minutesD ** $0F5C ' minutesD * 0.06 DEBUG MoveTo, FieldLen, 13, DEC3 degrees, DegSym, " ", DEC2 minutes, MinSym, " " DEBUG DEC2 (workVal / 10), ".", DEC1 (workVal // 10), SecSym, " " DEBUG "E" + (dir * 18) ' convert to decimal format, too workVal = (minutes * 1000 / 6) + (minutesD / 60) DEBUG " (", " " + (dir * 13), DEC degrees, ".", DEC4 workVal, " ) " RETURN ' ---------------------------------------------------Get_Alt: SEROUT Sio, Baud, ["!GPS", GetAlt] SERIN Sio, Baud, 3000, No_Response, [alt.HIGHBYTE, alt.LOWBYTE] DEBUG MoveTo, FieldLen, 14, DEC (alt / 10), ".", DEC1 (alt // 10), " meters " workVal = alt / 10 ' remove tenths from altitude ' convert altitude from meters to feet workVal = (workVal * 3) + (workVal ** $47E5) ' 1 meter = 3.2808399 feet DEBUG " ( ", DEC workVal, " feet ) " RETURN ' ---------------------------------------------------' The newer version of the Parallax GPS Receiver Module (firmware version >= 2.0) using the PMB-648 supports an extended altitude command. ' See the user manual for more details. Get_AltExt: IF (ver_fw.HIGHNIB >= 2) THEN SEROUT Sio, Baud, ["!GPS", GetAltExt] SERIN Sio, Baud, 3000, No_Response, [altExt.HIGHBYTE, altExt.LOWBYTE] DEBUG MoveTo, FieldLen, 15, DEC altExt, " meters " ' convert altitude from meters to feet workVal = (altExt * 3) + (altExt ** $47E5) ' 1 meter = 3.2808399 feet DEBUG " ( ", DEC workVal, " feet ) " ELSE DEBUG MoveTo, FieldLen, 15, "N/A" ENDIF RETURN ' ---------------------------------------------------Get_Speed: SEROUT Sio, Baud, ["!GPS", GetSpeed] SERIN Sio, Baud, 3000, No_Response, [speed.HIGHBYTE, speed.LOWBYTE] DEBUG MoveTo, FieldLen, 16, DEC (speed / 10), ".", DEC1 (speed // 10), " Knots " ' convert speed from knots to MPH workVal = speed + (speed ** $2699) ' 1 knot = 1.1507771555 MPH
PAGE 12
GPS PARALLAX 28146 DEBUG " ( ", DEC (workVal / 10), ".", DEC1 (workVal // 10), " MPH ) " RETURN ' ---------------------------------------------------Get_Heading: SEROUT Sio, Baud, ["!GPS", GetHeading] SERIN Sio, Baud, 3000, No_Response, [heading.HIGHBYTE, heading.LOWBYTE] IF speed = 0 THEN DEBUG MoveTo, FieldLen, 17, "N/A " ELSE DEBUG MoveTo, FieldLen, 17, DEC (heading / 10), ".", DEC1 (heading // 10), DegSym, " " ENDIF RETURN ' ---------------------------------------------------No_Response: DEBUG MoveTo, 0, 18, "Error: No response from GPS Receiver" PAUSE 5000 GOTO Initialize ' ---------------------------------------------------Signal_Not_Valid: DEBUG MoveTo, FieldLen, 7, "?", ClrRt ' clear all fields DEBUG MoveTo, FieldLen, 9, "?", ClrRt DEBUG MoveTo, FieldLen, 10, "?", ClrRt DEBUG MoveTo, FieldLen, 12, "?", ClrRt DEBUG MoveTo, FieldLen, 13, "?", ClrRt DEBUG MoveTo, FieldLen, 14, "?", ClrRt DEBUG MoveTo, FieldLen, 15, "?", ClrRt DEBUG MoveTo, FieldLen, 16, "?", ClrRt DEBUG MoveTo, FieldLen, 17, "?", ClrRt GOTO Main ' ---------------------------------------------------' Adjust date for local position ' Fixed by JZ for proper month adjustment in Location_Lags Correct_Local_Time_Date: workVal = tmHrs + UTCfix ' add UTC offset IF (workVal < 24) THEN Adjust_Time ' midnight crossed? workVal = UTCfix ' yes, so adjust date BRANCH workVal.BIT15, [Location_Leads, Location_Lags] Location_Leads: ' east of Greenwich day = day + 1 ' no, move to next day eeAddr = DaysInMon * (month - 1) ' get days in month READ eeAddr, char IF (day <= char) THEN Adjust_Time ' in same month? month = month + 1 ' no, move to next month day = 1 ' first day IF (month < 13) THEN Adjust_Time ' in same year? month = 1 ' no, set to January year = year + 1 // 100 ' add one to year GOTO Adjust_Time Location_Lags: ' west of Greenwich day = day - 1 ' adjust day IF (day > 0) THEN Adjust_Time ' same month?
PAGE 13
GPS PARALLAX 28146 month = month - 1 IF (month > 0) THEN ' same year? eeAddr = DaysInMon + (month - 1) ' same year, but different month, READ eeAddr, day ' so need to adjust the day GOTO Adjust_Time ' before adjusting the time. ENDIF month = 1 ' no, set to January eeAddr = DaysInMon * (month - 1) READ eeAddr, day ' get new day year = year + 99 // 100 ' set to previous year Adjust_Time: tmHrs = tmHrs + (24 + UTCfix) // 24 ' localize hours RETURN ' ---------------------------------------------------' Print Zero-terminated string stored in EEPROM ' -- eeAddr - starting character of string Print_Z_String: READ eeAddr, char ' get char from EE IF (char = 0) THEN Print_Z_String_Done ' if zero, we're done DEBUG char ' print the char eeAddr = eeAddr + 1 ' point to the next one GOTO Print_Z_String Print_Z_String_Done: RETURN ' ----------------------------------------------------
PAGE 14
PAGE 15
Revisiones
Desde Marzo del 2011 el mdulo receptor GPS de Parallax se actualiz del PMB-248 al PMB648. Las versiones anteriores pueden identificarse con las marcas que se muestran en esta foto:
Las unidades anteriores son idnticamente funcionales a las nuevas excepto por las siguientes caractersticas: Caracterstica Chip GPS Grupo de Instrucciones Satlites mximos Corriente Sensibilidad de seal Mdulo PMB-248 Sony CXD2951GA-4 GetAltExt no soportado 12 115 mA tpico -152 dBm Mdulo PMB-648 SiRF Star III GetAltExt soportado 20 65 mA tpico -159 dBm
La documentacin y el Frimware para la V 1.1 (PMB-248) puede encontrarse en la pgina del producto en el sitio de parallax.com Por favor contacte a support@parallax.com para mayor informacin o para soporte en espaol contacte a direccion@fixingenieria.com
NOTA: Esta traduccin al espaol realizada por FIX Ingeniera-Mxico (www.fixingenieria.com) tiene fines educativos nicamente. Todos los Derechos Reservados por Parallax Inc. Agradeceremos sus comentarios y/o identificacin de cualquier error detectado en este manual.