Autor Tema: visualizar coordenadas gps  (Leído 7210 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
visualizar coordenadas gps
« en: 21 de Junio de 2007, 17:59:09 »
hola,estoy realizando un proyecto.para realizar una alarma que envia un sms,a uno o varios numeros de telefono prefijados,para alertar de un suceso,e incluso enviar en ese sms,las coordenadas gps donde esta situada la alarma,por si se utilizara para un veiculo.

pero este proyecto lo estoy desarollando por partes,para que si quereis experimentar con ellos,no se lien los menos expertos en la materia.
voy a postear lo mejor posible el codigo,aunque aviso de que nunca he hecho esto,y espero no liar a nadie.

saludos a todos.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: visualizar coordenadas gps
« Respuesta #1 en: 21 de Junio de 2007, 18:19:29 »
esta parte que pongo aqui es el codigo asm del programa para visualizar los datos recividos del puerto serie de un gps.que se visualizaran en una pantalla lcd.





;*****************************************
; PROGRAMA : rs232.asm
; Funcion : visualizador coordenadas gps en display   
;           Serial port config: 38400 baudios,8 bits,paridad = none
;   
;  Revision : 1.0        7/2/2002            Programa para : PIC16F876
; CPU Clock : 3.6864 MHz                     Reloj instruccion :
;       WDT : Deshabilitado                  Tipo de reloj : XT 
; Code Prot : OFF           
;******************************************

      LIST   P=16F876   ;Se indica el modo de procesador
      
      RADIX   HEX      ;Sistema de numeracion hexadecimal

      INCLUDE   "P16f876.inc"   ;se incluye la definicion de los
      
               ;registros internos
      __CONFIG    _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC & _BODEN_OFF &_LVP_OFF &_CPD_OFF &_WRT_ENABLE_OFF
      ERRORLEVEL      -302
PRINCIPAL_VAR   EQU 20h      ;direccion de las variables desde 20h

      
   

   CBLOCK    PRINCIPAL_VAR            
         CounterA   
         CounterB   
         CounterC   
         KEY_1      
         OFFSET
         RESUL
         TEMPO1
      
         ENDC

BANK0      MACRO
         BCF   STATUS,RP0
         BCF   STATUS,RP1
         ENDM

BANK1      MACRO
         BSF   STATUS,RP0
         BCF   STATUS,RP1
         ENDM
;<<<<<<<<<<<<<SELECCION DE LOS SECTORES DE LA MEMORIA DE PROGRAMA>>>>
;--------IMPORTANTE:
;ANTES DE UBICAR UNA TABLA DEL TIPO (ADDWF   PCL,F)TENEMOS QUE INDICAR EL SECTOR DONDE SE UBICA ESE SUBPROGRAMA
;EJM.SI PONEMOS EL SUBPROGRAMA EN EL SECTOR A PARTIR DE LA DIR:100 .PONDREMOS LA LINEA SECTOR_100 ANTES DE LA TABLA DE DATOS
;
SECTOR_000   MACRO
         BCF   PCLATH,0
         BCF   PCLATH,1
         ENDM
SECTOR_100   MACRO
         BSF   PCLATH,0
         BCF   PCLATH,1
         ENDM
SECTOR_200   MACRO
         BCF   PCLATH,0
         BSF   PCLATH,1
         ENDM
SECTOR_300   MACRO
         BSF   PCLATH,0
         BSF   PCLATH,1
         ENDM


;<<<<<<---------------------- VECTOR DE RESET ------------------------>>>>>>>
         ORG   0x00      ;Inicio en el Vector de Reset
         goto   INICIO      ;Va a la primera instruccion del
               
;<<<<<<----------------- INICIO PROGRAMA PRINCIPAL ------------------->>>>>>>
INICIO      clrf   PORTA      ;borra las salidas de porta
         clrf   PORTB      ;borra las salidas de portb
         clrf   PORTC      ;borra las salidas de portc
         clrf   KEY_1
         BANK1            ;selecciona banco 1
         clrf   TRISB      ;Puerta B como salida
         movlw   b'11111111'   ;configura PORTC para el uso de la USART
         movwf   TRISC    
         movlw   b'00000110'
         movwf   ADCON1      ;porta entradas digitales
         movlw   0xFF
         movwf   TRISA
         movlw   b'00100100'   ;Configuracion USART modo alta velocidad 38400 baud
         movwf   TXSTA      ;y activacion de transmision
         clrf   PIE1      ;prohive interrupciones perifericas
         BANK0            ;selecciona banco 0 -------------
         movlw   b'10010000'   ;Configuracion de la usart
         movwf   RCSTA      ;para recepcion continua y habilitacion de la usart
         clrf   INTCON      ;prohive todas las interrupciones
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<PROGRAMA PRINCIPAL DE RECEPCION DE  DATOS DEL GPS>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>         
RECEPCION   BANK0
         clrf   PORTB
         call   PROG_GPS    ;buscar comando nmea
         call   MEM_DAT      ;memorizar datos  en registros
         call   LCD         ;visualiza coordenadas
         goto   INICIO

;<<<<<<----------------------- RETARDO---------------- ------------------------->>>>>>>

RETARDO      movlw   D'6'
         movwf   CounterC
         movlw   D'24'
         movwf   CounterB
         movlw   D'168'
         movwf   CounterA
loop      decfsz   CounterA,1
         goto   loop
         decfsz   CounterB,1
         goto   loop
         decfsz   CounterC,1
         goto   loop
         return

;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<INICIALIZA LCD>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
         
LCD         clrf   INTCON
         BANK0
         clrf   PORTA
         BANK1
         movlw   0x06
         movwf   ADCON1
         clrf    TRISA         ; Puerta A como salidas digitales
         call    UP_LCD
         call    BORRA_Y_HOME
         call   DISPLAY_ON_CUR_OFF
         call    LCD_INI
         BANK1
         movlw    b'00000111'
         movwf    OPTION_REG
         BANK0
         clrf   OFFSET   
         call   MENS
BUCLE      goto   INICIO
MENS      clrf   RESUL
MENS_1      movf   OFFSET,W
         addwf   RESUL,W
         call   DATOS
         iorlw   0
         btfsc   STATUS,2
         return
         call   LCD_DATO
         incf   RESUL,F
         incf   RESUL,F
         MOVLW   d'28'
         XORWF   RESUL,W
         btfss   STATUS,Z
         GOTO   SALTO1
         call   LCD_LINEA2      ;para escribir en la segunda
                           ;fila del lcd
SALTO1      movlw   d'10'
         movwf   TEMPO1
         goto   MENS_1   
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<DATOS PARA ORDENAR LAS COORDENADAS EN EL DISPLAY>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>      

DATOS      BANK0
         SECTOR_000
         addwf   PCL,F
         movf   KEY_1_L,W
         return
         movf   KEY_2_L,W
         return
         movlw   0xdf         ;simbolo grados
         return
         movf   KEY_3_L,W   
         return
         movf   KEY_4_L,W   
         return
         movlw   "'"            ;simbolo minutos
         return
         ;movf   KEY_5_L,W
         ;return
         movf   KEY_6_L,W
         return
         movf   KEY_7_L,W
         return
         movf   KEY_8_L,W
         return
         movf   KEY_9_L,W
         return
         movlw   0x22         ;simbolo segundos
         return
         ;movf   KEY_10_L,W   
         ;return
         movf   KEY_11_L,W   
         return
         movlw   " ";movf   KEY_12_L,W
         return
         movlw   " ";movf   KEY_13_L,W   
         return
         movf   KEY_14_L,W   
         return
         movf   KEY_15_L,W
         return
         movlw   0xdf         ;simbolo grados
         return
         movf   KEY_16_L,W
         return
         movf   KEY_17_L,W
         return
         movlw   "'"            ;simbolo minutos
         return   
         ;movf   KEY_18_L,W
         ;return
         movf   KEY_19_L,W
         return
         movf   KEY_20_L,W   
         return
         movf   KEY_21_L,W   
         return
         movf   KEY_22_L,W
         return
         movlw   0x22         ;simbolo segundos
         return
         ;movf   KEY_23_L,W
         ;return
         movf   KEY_24_L,W
         return
   
         retlw   0x00
         org   0x200
         INCLUDE   "recepcion_usart_r14.inc"

         org 0x300
         INCLUDE   "lcd_cxx.inc"
      
            
         END

 
AQUI PONGO EL CODIGO DEL ARCHIVO recepcion_usart_r14.inc  QUE DEBEREIS INCLUIR EN EL PROYECTO

      
      





;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<recepcion_usart_r14.inc>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

USART_VAR EQU 0x35 ;direccion de inicio del bloque para meter datos en variables


   CBLOCK   USART_VAR
         GGA            ;temporal offset trama $GPGGA
         GPS            ;temporal byte recivido del gps
         KEY_1_L
         KEY_2_L
         KEY_3_L
         KEY_4_L
         KEY_5_L
         KEY_6_L
         KEY_7_L
         KEY_8_L
         KEY_9_L
         KEY_10_L
         KEY_11_L
         KEY_12_L
         KEY_13_L
         KEY_14_L
         KEY_15_L
         KEY_16_L
         KEY_17_L
         KEY_18_L
         KEY_19_L
         KEY_20_L
         KEY_21_L
         KEY_22_L
         KEY_23_L
         KEY_24_L
      
   ENDC





;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<TABLA $GPGGA>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DAT_GGA      SECTOR_200
         

         movf   GGA,W
         addwf   PCL,F
         retlw    "$"
         retlw    "G"
         retlw    "P"
         retlw    "G"
         retlw    "G"
         retlw    "A"
         retlw   ","
         return

;<<<<<<<<<<<<<<<<<<<<<<<BUSCAR CABEZERA MENSAGE NMEA $GPGGA>>>>>>>>>>>>>>>>>>>
PROG_GPS   BANK1
         
         movlw   .5         ;(.5 =38400 baudios crystal 3.6864 MHz)
         movwf   SPBRG
         BANK0
COMAN_GPS   clrf   GGA
         clrf   GPS
COMAN_GPS2   call   LEE_DATO         ;MOVWF   PORTB
         movwf   GPS               ;carga en el acumulador el valor capturado por la usart
         call   DAT_GGA            ;salta a tabla $GPGGA
         incf   GGA,F
         xorwf   GPS,F            ;compara el valor recivido con el de la tabla
         btfss   STATUS,Z         ;si es el mismo sigue comparando en la tabla
         goto   BORRA_RET         ;si no empieza de nuevo
         xorlw   "A"               ;cuando encuentres el caracter "A",salta a MEM_DAT.(ultimo caracter de $CPGGA)
         btfss   STATUS,Z
         goto   COMAN_GPS2         
         goto   MEM_DAT            
         
         
BORRA_RET   clrf   GGA
         goto   COMAN_GPS
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<METE EN LOS GPR   LOS DATOS DE LAS COORDENADAS>>>>>>>>>>>>>>>
MEM_DAT      
         BANK0
         call   LEE_DATO
         xorlw   ","               
         btfss   STATUS,Z         ;comprueva primera coma encontrada
         goto   MEM_DAT
MEM_DAT2   call   LEE_DATO
         xorlw   ","               
         btfss   STATUS,Z         ;comprueva segunda coma encontrada
         goto   MEM_DAT2   



         call   LEE_DATO
         movwf   KEY_1_L   
         call   LEE_DATO
         movwf   KEY_2_L   
         call   LEE_DATO
         movwf   KEY_3_L   
         call   LEE_DATO
         movwf   KEY_4_L   
         call   LEE_DATO
         movwf   KEY_5_L   
         call   LEE_DATO
         movwf   KEY_6_L   
         call   LEE_DATO
         movwf   KEY_7_L   
         call   LEE_DATO
         movwf   KEY_8_L   
         call   LEE_DATO
         movwf   KEY_9_L   
         call   LEE_DATO
         movwf   KEY_10_L   
         call   LEE_DATO   
         movwf   KEY_11_L   
         call   LEE_DATO
         movwf   KEY_12_L   
         call   LEE_DATO   
         movwf   KEY_13_L
         call   LEE_DATO
         movwf   KEY_14_L   
         call   LEE_DATO   
         movwf   KEY_15_L   
         call   LEE_DATO
         movwf   KEY_16_L   
         call   LEE_DATO   
         movwf   KEY_17_L
         call   LEE_DATO
         movwf   KEY_18_L   
         call   LEE_DATO   
         movwf   KEY_19_L
         call   LEE_DATO   
         movwf   KEY_20_L   
         call   LEE_DATO
         movwf   KEY_21_L   
         call   LEE_DATO   
         movwf   KEY_22_L
         call   LEE_DATO
         movwf   KEY_23_L   
         call   LEE_DATO   
         movwf   KEY_24_L
         call   LEE_DATO   
         call   LCD

         
         RETURN
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<LEE DATO USART>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>         
LEE_DATO   BANK0
         btfss   PIR1,RCIF   ;espera al proximo caracter
         goto   LEE_DATO
         btfsc   RCSTA,OERR   
         call   BORR_US      ;Error de Sobreescritura
         btfsc   RCSTA,FERR   
         call   BORR_US      ;Error de Trama
         btfsc   PIR1,TXIF
         movf   RCREG,W      ;Lectura dato recibido
         
                           
         return
;<<<<<<<<<<<<<<<<<<<<<<<<BORRAR USART>>>>>>>>>>>>>>>>>>>>>>>>>>

BORR_US      bcf      RCSTA,CREN   
         movf   RCREG,w   
         movf   RCREG,w   
         movf   RCREG,w            
         bsf      RCSTA,CREN   
         return



Y AQUI PONGO EL ARCHIVO  lcd_cxx.inc QUE ENCONTRE POR AHI PARA LA GESTION DE LA LCD,QUE TAMBIEN SE DEBERA INCLUIR EN EL PROYECTO.





 
 
;El conjunto de rutinas que se presentan a continuaci¢n permiten realizar
;las tareas b sicas de control del m¢dulo de visualizaci¢n LCD. Se emplean
;con los PIC 16c8xx. En el programa principal se deber  reservar memoria
;para el bloque de variables que utiliza el LCD del modo:
LCD_VAR EQU 0x5A ;direccion de inicio del bloque para meter datos en variables

;BLOQUE DE ETIQUETAS
 
 
   #define ENABLE       bsf PORTA,2 ;Activa E
   #define DISABLE    bcf PORTA,2 ;Desactiva
   #define LEER       bsf PORTA,1 ;Pone LCD en Modo RD
   #define ESCRIBIR    bcf PORTA,1 ;Pone LCD en Modo WR
   #define OFF_COMANDO    bcf PORTA,0 ;Desactiva RS (modo comando)
   #define ON_COMANDO    bsf PORTA,0 ;Activa RS (modo datos)
   CBLOCK    LCD_VAR
      LCD_TEMP_2   ;Inicio de las variables. Ser  la primera direcci¢n libre
            ; disponible
      LCD_TEMP_1   
   ENDC      
 
       LIST
;RUTINA UP_LCD: Con esta rutina se configura el PIC para que trabaje con el LCD.
 
 
UP_LCD
      BANK1    ;Banco 1
   
       clrf    PORTB       ;RB <0-7> salidas digitales
      clrf    PORTA       ;RA <0-4> salidas digitales
       BANK0    ;Banco 0
      OFF_COMANDO       ;RS=0
      DISABLE       ;E=0
      return
 
 
;RUTINA LCD_BUSY: Con esta rutina se chequea el estado del
;flag BUSY del m¢dulo LCD, que indica, cuando est  activado, que el
;m¢dulo a£n no ha terminado el comando anterior. La rutina espera a
;que se complete cualquier comando anterior antes de retornar al
;programa principal, para poder enviar un nuevo comando.
 
 
LCD_BUSY   LEER          ;Pone el LCD en Modo RD
         BANK1
         movlw    H'FF'
         movwf    PORTB       ;Puerta B como entrada
         BANK0    ;Selecciona el banco 0
         ENABLE          ;Activa el LCD
         nop
L_BUSY       btfsc    PORTB,7      ;Chequea bit de Busy
         goto    L_BUSY
      
         DISABLE        ;Desactiva LCD
         BANK1
         clrf    PORTB       ;Puerta B salida
         BANK0
         ESCRIBIR         ;Pone LCD en modo WR
         return
 
 
;RUTINA LCD_E: Se trata de una peque¤a rutina que se encarga de generar
;un impulso de 1æ s (para una frecuencia de funcionamiento de 4 Mhz)
;por la patita de salida de la Puerta A RA2, que se halla conectada
;a la se¤al E (Enable) del m¢dulo LCD. Con esta rutina se pretende activar
;al m¢dulo LCD.
 
 
LCD_E       ENABLE         ;Activa E
         nop
         DISABLE         ;Desactiva E
         return
 
 
;RUTINA LCD_DATO: Es una rutina que pasa el contenido cargado en el
;registro W, el cual contiene un car cter ASCII, a la PUERTA B, para
;visualizarlo por el LCD o escribirlo en la CGRAM.
 
 
LCD_DATO    OFF_COMANDO       ;Desactiva RS (modo comando)
         movwf   PORTB       ;Valor ASCII a sacar por PORTB
         call    LCD_BUSY    ;Espera a que se libere el LCD
         ON_COMANDO       ;Activa RS (modo dato)
         call    LCD_E       ;Genera pulso de E
          return
 
 
;RUTINA LCD_REG: Rutina parecida a la anterior, pero el contenido de W
;ahora es el c¢digo de un comando para el LCD, que es necesario pasar
;tambi‚n a la PUERTA B para su ejecuci¢n.
 
 
LCD_REG    OFF_COMANDO       ;Desactiva RS (modo comando)
         BANK0
         movwf    PORTB       ;C¢digo de comando
      
         call    LCD_BUSY    ;LCD libre?.
         
         call    LCD_E       ;S¡. Genera pulso de E.
          return
 
 
;RUTINA LCD_INI: Esta rutina se encarga de realizar la secuencia de
;inicializaci¢n del m¢dulo LCD de acuerdo con los tiempos dados por
;el fabricante (15 ms). Se especifican los valores de DL, N y F,
;as¡ como la configuraci¢n de un interfaz de 8 l¡neas con el bus
;de datos del PIC, y 2 l¡neas de 16 caracteres de 5 x 7 pixels.
 
 
LCD_INI      
         movlw   b'00111000'
         call   LCD_REG    ;C¢digo de instrucci¢n
         
         call   LCD_DELAY   ;Temporiza
         movlw   b'00111000'
         call   LCD_REG      ;C¢digo de instrucci¢n
         call   LCD_DELAY   ;Temporiza
         movlw    b'00111000'
         call   LCD_REG      ;C¢digo de instrucci¢n
         call    LCD_DELAY   ;Temporiza
         return
 
 
;RUTINA BORRA_Y_HOME: Borra el display y retorna el cursor a la posici¢n 0.
 
 
BORRA_Y_HOME   movlw    b'00000001'    ;Borra LCD y Home.
            call    LCD_REG
            return
 
 
;RUTINA DISPLAY_ON_CUR_OFF: Control del display y cursor.
;Activa el display y desactiva es cursor
 
DISPLAY_ON_CUR_OFF   movlw b'00001100'    ;LCD on, cursor off.
         call    LCD_REG
         return
;RUTINA LCD_LINEA2

LCD_LINEA2      movlw   0xC0
            call   LCD_REG
            return
;RUTINA LCD_LINEA1

LCD_LINEA1      movlw   0x80
            call   LCD_REG
            return
 
;RUTINA LCD_DELAY: Se trata de un rutina que implementa un retardo
;o temporizaci¢n de 5 ms. Utiliza dos variables llamadas LCD_TEMP_1
;y LCD_TEMP_2, que se van decrementando hasta alcanzar dicho tiempo.
 
 
LCD_DELAY   clrwdt
         movlw    10
         movwf    LCD_TEMP_1
         clrf    LCD_TEMP_2
LCD_DELAY_1 decfsz   LCD_TEMP_2,F
         goto   LCD_DELAY_1
         decfsz   LCD_TEMP_1,F
         goto   LCD_DELAY_1
         return
   
         LIST
« Última modificación: 23 de Marzo de 2008, 23:25:31 por groundman »
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: visualizar coordenadas gps
« Respuesta #2 en: 21 de Junio de 2007, 18:39:16 »
el circuito lo tengo montado en el micro pic'trainer ,he utilizado el 16F876 con un cristal de 3.6864Mhzy los unicos pin que se utilizan son:

RA0 para el pin RS   de la lcd=pin4
RA1 para el pin R/W de la lcd=pin5
RA2 para el pin E     de la lcd=pin6

RB0 para el pin D0   de la lcd=pin7
RB1 para el pin D1   de la lcd=pin8
RB2 para el pin D2   de la lcd=pin9
RB3 para el pin D3   de la lcd=pin10
RB4 para el pin D4   de la lcd=pin11
RB5 para el pin D5   de la lcd=pin12
RB6 para el pin D6   de la lcd=pin13
RB7 para el pin D7   de la lcd=pin14

y de la salida del GPS se conecta al pin26= RX del pic.pero no sin antes haber pasado por una puerta logica,para adaptar los 3V que entrega el GPS a los 5V que necesita el pic.

si hay alguna duda postearla aqui.

ahora boy a ir haciendo el codigo para la lectura de los comandos AT de un mobil que disponga de hscds,como es el ericson t28. :-)


Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: visualizar coordenadas gps
« Respuesta #3 en: 22 de Junio de 2007, 09:58:02 »
esta seria la forma en que se visualizarian los datos,y se actualizarian cada segundo.a no ser que el gps entregue los datos mas rapido.

Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: visualizar coordenadas gps
« Respuesta #4 en: 22 de Junio de 2007, 16:04:43 »
podrias explicar un poco sobre el hardware y que circuitos usas aparte del PIC.
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: visualizar coordenadas gps
« Respuesta #5 en: 22 de Junio de 2007, 17:29:43 »
hola,pues no se exactamente que te hace falta.

el circuito es muy sencillo,aparte de colocarle el cristal y el circuito de reset y alimentaciones,lo unico que hay que hacer es conectar parte de los pin del PORTA y PORTB a una pantalla lcd.que los he descrito mas arriba.

yo he utilizado una pantalla de 2 lineas 16 caracteres.el WM-C1602M pero creo que sirve cualquier display lcd.compatible Hitachi HD44780

y despues hay que conectar un cable miniusb al gps que tendras que cortar para sacar los dos cables que hacen falta,el de masa y el txd.tendrias que mirar si tu gps tiene este conector para sacar las señales,yo tengo un holux gr-236-bt,es un gps bluetoot que dispone de salida serie.

este cable txd hay que conectarlo a una puerta logica,para adaptar los 3v que suministra el gps,al pic que le hacen falta 5v.
yo he utilizado el SN74LS32.es un circuito integrado que tiene 4 puertas or.se utiliza solo una con las dos entradas conectadas entre si,el txd del GPS se conectan a estas y la salida de la puerta or,se la conectamos al pin 18 (rx)del 16F876.

si te hace falta alguna aclaracion mas,dilo por aqui. :)
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: visualizar coordenadas gps
« Respuesta #6 en: 22 de Junio de 2007, 19:21:01 »
ah,se me olvidaba.en el proyecto tambien hay que incluir el archivo P16F876.INC que viene incluido en el MPLAB.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: visualizar coordenadas gps
« Respuesta #7 en: 22 de Junio de 2007, 21:13:34 »
hola, la parte que no entiendo es la del GPS, podrias colgar una imagen o un link del modulo que estas usando?
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado softjad

  • PIC10
  • *
  • Mensajes: 41
Re: visualizar coordenadas gps
« Respuesta #8 en: 22 de Junio de 2007, 21:26:00 »
¿No existe una librería que funcione en ccs?

Tengo un GPS que Tiene RS232, puedo usar-lo con este codigo?

Salu2

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: visualizar coordenadas gps
« Respuesta #9 en: 23 de Junio de 2007, 09:42:27 »
no es un modulo,solo es un receptor GPS bluetoot que dispone de salida serie en un conector tipo miniusb.
aqui pongo una imagen de cuando hize las pruevas con dos cables,uno de masa y el otro tx.
luego ya me compre un cable miniusb y lo corté,para no tenerlo tan chapucero.

si te compras un modulo GPS lo mas seguro es que te cueste mas caro,y no traeria la opcion de bluetoot.

para sacarle los cables te recomiendo mirar en el manual de usuario del gps que tengas.y si no disponnes de uno,te recomiendo que busques uno que la frecuencia de actualizacion sea de menos de 1 segundo.ya que cuando vas por autovia,y en una salida se bificulta en dos mas ,un segundo es poco.

yo he visto este:http://www.pcdemano.com/modules.php?name=News&file=article&sid=12101
y estoy pensando en comprarlo.



en cuanto a codigo,solo entiendo el ensamblador.
de momento no tengo tanto tiempo como para empezar a aprender C.
saludos.

Montando mi primera impresora 3D (Raprep Prusa i3)