TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: jco7kd en 18 de Enero de 2011, 16:49:30

Título: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: jco7kd en 18 de Enero de 2011, 16:49:30
 Hola amigos. :-/
Soy nuevo en el forum y me preguntaba si algun colega me
podria ayudar a elaborar un programa para conectar un
PIC16F648A, un modulo Fastrax iTrax03-02 OEM GPS receiver
y un LCD 2 x 20.
Es decir, lo que quiero es que me muestre en el LCD la
Pocisición, hora UTC, Altura y Velocidad. Me imagino que
con solo dos lineas en el LCD es imposible mostrar tantos
datos, por eso pienso en que tenga algun pulsador que
cambie los datos en la pantalla.
Quiero que sea con el PIC16F648A pues es el unico que he
logrado conseguir y ya he visto proyectos con PIC16F84
pero por desgracia solo cuento con el antes dicho.
El modulo gps tiene salidas iTalk 3 y NMEA0183 tanto TTL
como RS232 (contiene una max232 en la placa) y funciona
perfectamente pues ya lo he probado con el PC con Fastrax
GPS Workbench 4, por puerto serial y está de maravillas.
No soy bueno en la programación aunque si me desembuelvo
muy bien en la electrónica y cuento además con todo el
hardware necesario para pasar los datos al PIC, por eso
les pido ayuda en este proyecto.
Gracias a todos de antemanos.
Joan, CO7KD, Radioaficionado Cubano. :P
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: MLO__ en 18 de Enero de 2011, 20:57:03
Hola.

Acá se te puede ayudar. Dinos que tienes adelantado hasta ahora.

Saludos
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: jco7kd en 19 de Enero de 2011, 13:28:03
Gracias, amigo.
Bueno, ese pic tiene pocos puertos a y b y lo que tengo pensado es trabajar con los cuatro bits mas bajos para el LCD en cualquiera de esos puertos. Por otro lado, tambien tiene entrada/salida rs232 y eso no es un problema pues el modulo gps tambien cuenta con ese puerto de comunicación. Por lo demás me podés aconsejar a hacer como mejor creas que deba ser la circuitería. Lo duro es que no se programar y eso es lo que me detiene.
Saludos.
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: jco7kd en 19 de Enero de 2011, 15:03:11
Miren, lo duro de esto es que no se nada de progamación de los pic. Solo he logrado hacer algunos ejercicios y por lo menos he logrado poner caracteres en un lcd y usando pic simulator ide. Por lo demás estoy en cero total, como pescado en nevera.
Quisiera que alguien me hiciera el programa y de ser posible me ayude a entenderlo, que es lo que mas me interesa, pues quiero entrar en este maravilloso mundo de los Micro controladores PIC.
Gracias.
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: MLO__ en 19 de Enero de 2011, 15:06:15
Hola.

Si quieres que alguien te haga el código, postea el tema al hilo de Empleo.

Saludos
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: jco7kd en 19 de Enero de 2011, 15:15:44
Como llego al hilo de empleo. Me preocupa eso pues las condiciones del forum dice precisamente que no debo postear dos veces lo mismo.
Gracias.
 :(
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: c4_esp_VR en 19 de Enero de 2011, 18:36:19
Hola jco7kd,

Puedes hacerlo tu mismo, puedes encontrar información en muchas web, a modo de ejemplo en esta.

pic gps (http://www.muchotrasto.com/gps.php)  :D :D :D

Es muy sencillo pero si nunca has programado un micro y no sabes de electrónica puede que los comienzos sean complicados pero el esfuerzo se verá recompensado. Espero que te sea de utilidad.

Un saludete.
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: jco7kd en 24 de Enero de 2011, 12:41:14
Gracias por la respuesta pero nunca dije que no sepa electrónica  :D al contrario, esa es mi especialidad profecional, soy radioaficionado además y he hecho muchos proyectos pero nunca he utilizado los pic.
Me remití a esta web con la idea de que me ayudaran y/o me enseñaran a meterme en este mundillo.
Lo del proyecto que quiero hacer con el pic es para que me ayude en la localización en una actividad que tenemos los radioaficionados que se llama cacería del zorro y consiste en localizar un equipo de radio oculto.
Si no me pueden ayudar gracias de todas formas.
Saludos:
Joan
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: c4_esp_VR en 24 de Enero de 2011, 13:29:30
Hola jco7kd,

Nosotros desde aquí no podemos más que darte ideas o mejoras, además de darte todo la información que te haga falta, pero no podemos hacerte el proyecto, para eso está la zona de empleo o las empresas.

Mi recomendación es que sigas el enlace que te he puesto, ya que sólo te hace falta el pic, el gps o cualquier otro que tenga UART y un programador de pics.

El problema que tienes con el gps que has dado es que usa spi y por tanto ya te tienes que meter en como programarlo y recoger las tramás...ya que con un gps con uart, sólo es leer el buffer y formatear la trama NMEA.

Otra forma, más fácil y rápida, es que lo hagas con un Arduino, donde podrás encontrar el firmware y el HW aquí (http://www.cooking-hacks.com/index.php/documentation/tutorials/arduino-gps) o en un montón de páginas más ya que para arduino encontrarás un montón de proyectos.

Un saludete y espero que te sirva compañero.
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: jco7kd en 24 de Enero de 2011, 16:24:42
Bueno, gracias de todas formas.
No se si sabes que soy cubano y aquí no puedo comprar nada de eso, así que solo me queda inventar con lo que tengo.
Gracias otra vez.
Saludos:
Joan :-/
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: c4_esp_VR en 24 de Enero de 2011, 16:29:30
Hola jco7kd,

Entonces lo primero que te hace falta es obtener el datasheet del gps para ver como sería el protocolo de comunicación entre el PIC y el GPS y por otro lado te recomiendo que te hagas con el Proteus para hacer simulaciones con dicho micro y ponerle un LCD y de esta forma vas practicando, yo desde aquí te intentaré ayudar en lo que pueda, asi que ánimo compañero.

Un saludete.
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: jco7kd en 24 de Enero de 2011, 16:39:33
Bueno, gracias con eso de animo pues la verdad es que ya estoy medio derrotado.
Mira, al principio de mi pregunta expongo los datos del protocolo del gps.
Lee allí a ver si te sirve de algo, sinó te busco mas datos.
Saludos y mil gracias por la respuesta
 :D
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: c4_esp_VR en 24 de Enero de 2011, 17:01:33
Hola,

Necesitarias el datasheet técnico de este módulo (http://www.fastraxgps.com/showfile.cfm?guid=869295d8-0873-46d4-8434-adc7584905eb), puesto es el que vas a usar...o me estas diciendo que este se conecta directamente a un MAX232 y te funciona, de ser así que trama te entrega...necesitamos más datos para poder ayudarte.

Un saludete.
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: jco7kd en 24 de Enero de 2011, 17:14:59
Saludos:
Mira, este modulo tiene una max 232 para hacer compatible ttl a rs 232, pero además puedes sacar directamente ese mismo protocolo pero ttl nada mas, que es como sale originalmente del gps.
Es decir, la comunicacion puede ser ttl o rs232.
En caso de rs 232 ya lo he puesto en el pc, por puerto serie y funciona ok, ahora lo que quiero es poder leer esos datos en un lcd.
Dime si quieres mas datos.
Saludos
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: jco7kd en 24 de Enero de 2011, 17:25:15
Otro dato:
Las salidas del modulo son tanto en iTalk 3 y NMEA0183, es decir, tiene tx y rx para iTalk y tx y rx para NMEA0183, separadas por supuesto.
Lo de la max 232 es aparte, en la placa donde está instalado, ademas de regulador de tension a 3.3 v y el conector de antena.
Saludos:
Joan
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: c4_esp_VR en 24 de Enero de 2011, 17:27:24
Hola jco7kd,

Necesitamos uno o varios datasheet, un circuito, un protocolo de comunicación, etc...

Un saludete.
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: jco7kd en 24 de Enero de 2011, 17:40:42
voy a ver que encuentro.
Saludos.
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: senshi3 en 22 de Mayo de 2011, 20:21:05
Hola todos,

igualmente estoy haciendo una conexión de un GPS ublox a un micro (16f886), y estoy haciendo el programa en CCS, por ahora sólo quiero mostrar los datos en una pantalla LCD, sólo mostrarlos, porque ya la organización es otro cuento, pero no entiendo porque cuando los empiezo a leer sólo me aparecen uno o dos cuadritos en el LCD y ya....  hice la prueba conectado el gps directamente al PC y no hay problema, me muestra los datos con el  protocolo NMEA.
/*ESTOS SON LOS DATOS NMEA*/

00:12:55  $GPRMC,001255.00,V,8959.99985,N,17960.00000,E,0.000,0.00,060180,,,N*7A
00:12:55  $GPVTG,0.00,T,,M,0.000,N,0.000,K,N*32
00:12:55  $GPGGA,001255.00,8959.99985,N,17960.00000,E,0,0,99.99,487.0,M,13.0,M,,0*67
00:12:55  $GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
00:12:55  $GPGSV,1,1,03,19,,,28,32,,,26,12,,,27*7B
00:12:55  $GPGLL,8959.99985,N,17960.00000,E,001255.00,V,N*72
00:12:55  $GPGRS,001255.00,1,,,,,,,,,,,,*4D
00:12:55  $GPGST,001255.00,0.0000,,,,999999,999999,999999*64
00:12:55  $GPZDA,001255.00,06,01,1980,00,00*62
00:12:55  $PUBX,00,001255.00,8959.999850,N,17960.000000,E,500.000,NF,999999,999999,0.000,0.00,0.000,,99.99,99.99,99.99,0,0,0*2A
00:12:55  $PUBX,01,001255.00,0.000,E,0.000,N,0.000,NF,999999,999999,0.000,0.00,0.000,,99.99,99.99,99.99,0,0,0*1E
00:12:55  $PUBX,03,03,19,-,,,28,000,32,-,,,26,000,12,-,,,27,000*03
00:12:55  $PUBX,04,001255.00,060180,000775.00,000,000775.00,0,00.000,43,*20

Bueno entonces resumiendo mi pregunta desesperada va en... Cómo recojo los datos del GPS en CSS para mostrarlos en el LCD?

Esto es lo que llevo de código....

Código: C
  1. #INCLUDE<16F886.h>
  2. #device adc=10
  3. #USE DELAY(CLOCK=4000000)
  4. #FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,PUT,NOLVP
  5. #USE RS232(BAUD= 57600,XMIT= PIN_C6,RCV= PIN_C7,PARITY=N,BITS=8/*FLOAT_HIGH,TIMEOUT=3000*/)
  6.  
  7. #DEFINE USE_PORTB_LCB TRUE
  8. #INCLUDE "LCD.C"
  9.  
  10.  
  11. char variable;
  12.  
  13. void inicializar(void);
  14.  
  15. void inicializar(void){
  16.    LCD_INIT();                   //Se inicilaiza la pantalla LCD.
  17. }
  18.  
  19.  
  20. VOID MAIN()
  21. {  
  22.    inicializar();
  23.    
  24.    LCD_PUTC("\fCadena: ");
  25.  
  26.    while(true)
  27.    {
  28.       variable = getchar();
  29.       printf(LCD_PUTC,"%c",variable);  
  30.    }  
  31. }

Gracias a todos... :D
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: Suky en 22 de Mayo de 2011, 21:19:58
Deberías de recibir la cadena y luego visualizarla, también disminuir la velocidad de la comunicación, porque no te van a dar los tiempos para recibir y visualizar en el lcd, entonces no alcanzas a leer el puerto y se bloquea por sobre-escritura.


Saludos!
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: fuente en 23 de Mayo de 2011, 04:03:20
Asegúrate de que tienes bien configurada la velocidad de la UART y que es la misma para el GPS (velocidad, bits de datos y paridad)
La mayoría de los que he utilizado hasta ahora para sicronizar la hora y fecha de los equipos suelen venir de serie con una velocidad de 9600,8,N,1.
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: senshi3 en 24 de Mayo de 2011, 11:28:03
Deberías de recibir la cadena y luego visualizarla, también disminuir la velocidad de la comunicación, porque no te van a dar los tiempos para recibir y visualizar en el lcd, entonces no alcanzas a leer el puerto y se bloquea por sobre-escritura.


Saludos!


Gracias Suky

Ya metí la cadena en un vector de 20 posiciones, y luego intentar visualizarlo en el LCD,  de igual manera no pasa nada, creo q es eso de la sobre-escritura que me comentas, pero es que si bajo la velocidad de comunicación del GPS entonces no me conecta.

El GPS me conecta a 57600, esto sucedió después de actualizar el fireware de un software que descargué de U-Blox....

Asegúrate de que tienes bien configurada la velocidad de la UART y que es la misma para el GPS (velocidad, bits de datos y paridad)
La mayoría de los que he utilizado hasta ahora para sicronizar la hora y fecha de los equipos suelen venir de serie con una velocidad de 9600,8,N,1.


Gracias fuente

Cómo le dije a Suky, el GPS que tengo me conecta a 57600, entonces ni idea que hacer.


Saludos

Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: senshi3 en 24 de Mayo de 2011, 11:30:25
Código: [Seleccionar]
#INCLUDE<16F886.h>
#device adc=10
#USE DELAY(CLOCK=4000000)
#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,PUT,NOLVP
#USE RS232(BAUD= 57600,XMIT= PIN_C6,RCV= PIN_C7,PARITY=N,BITS=8, stream=canal1/*FLOAT_HIGH,TIMEOUT=3000*/)

#DEFINE USE_PORTB_LCB TRUE
#INCLUDE "LCD.C"


//char variable;
char buffer[20];
int   i;
void inicializar(void);

void inicializar(void){
   LCD_INIT();                   //Se inicilaiza la pantalla LCD.
}


VOID MAIN()
{   
   inicializar();
   
   LCD_PUTC("\fCadena: ");
      for(i=0;i<20;i++)
         buffer[i] = fgetc(canal1);
         
       for(i=0;i<20;i++)
         printf(LCD_PUTC,"%c",buffer[i]);     
}

este es el código q tengo q ahora ni siqueira me muestra nada en el LCD :D
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: Suky en 24 de Mayo de 2011, 11:33:06
Estudia la hoja de datos, enviadole una cadena $PUBX puedes re-configurar la velocidad del GPS. Además para esa velocidad del UART te conviene llevar al micro a 20MHz, sino el baudrate tiene un error de 9% y te puede generar problemas.



Saludos!
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: senshi3 en 24 de Mayo de 2011, 11:41:47
OK...

Código: [Seleccionar]
#INCLUDE<16F886.h>
#device *=16 ADC=10
#USE DELAY(CLOCK=20000000)

ya voy a revisar para enviarle la cadena $PUBX...

Luego te aviso a ver como sigo con esto...
Gracias!!!
Título: Re: Ayuda codigo fuente para leer GPS con un PIC16F648A y LCD 2 x 20
Publicado por: pachomil en 24 de Mayo de 2011, 21:30:44
buenas tardes



senshi3 yo trabajo con gps sin548c para unos posicionadores soy de medellin si quieres te puedo ayudar con el tema


francisco