Autor Tema: usar GPS (Neo-6) con pic 16f  (Leído 8308 veces)

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

Desconectado Cibernetico49

  • PIC10
  • *
  • Mensajes: 2
usar GPS (Neo-6) con pic 16f
« en: 22 de Mayo de 2015, 16:36:39 »
Hola a todos, les comento que soy nuevo por aquí, espero me puedan ayudar.

Pues hace unos días empece a trabajar con un modulo gps y hasta ahorita e tenido un problema; no puedo leer los datos a traves del pic (16f877a) hice un mini código usando 2 UART por software, en donde,  en una recibo la trama del modulo y por la otra lo lanzo hacia la PC (esto solo lo hago para verificar que el pic este recibiendo correctamente los datos). La idea era recibir la trama completa y filtrar solo el comando que necesito ($GPGLL) pero no capturo datos del gps.

Ya descarte que el que no funcione el código o el circuito (hice lo mismo pero con un bluethoot) y cambie el tamaño del arreglo hasta 90 con esto ultimo tampoco funciono.

ley en algún lugar que el chip que trae este modulo tiene comandos para especificar cual de todos sus comandos quieres que te mande y con también puedes modificar el tiempo en que lo hace, busque en el datasheet pero no encontré nada sobre la configuración.

si alguien tiene una idea de lo que este pasando le agradezco su  ayuda, les dejo el mini código (solo lee un puerto y lo que hay lo imprime en otro).

***************************************************CODIGO********************************************************

#use rs232(baud=9600,parity=N,xmit=PIN_A3,rcv=PIN_A4,bits=8,stream=COM1)
#use rs232(baud=9600,parity=N,xmit=PIN_B1,rcv=PIN_B2,bits=8,stream=COM4)

void main()
{
   char lectura[25];

   while(TRUE)
   {
   
    fgets(lectura,COM4); //leo los datos del COM4 hasta que hay un ENTER y se guardan en el arreglo lectura
    fputs(lectura,COM1); //mando los datos guardados en el arreglo al puerto COM1 

   }//cierra while
}

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: usar GPS (Neo-6) con pic 16f
« Respuesta #1 en: 22 de Mayo de 2015, 17:37:05 »
Si no mal me equivoco ya que jamas trabaje con GPS,
Pero normalmente uno envia un comando al GPS y este responde. Si uno no le envia nada, no responde. Y ese es el caso que tenes vos. Al menos como esta el programa.
No se si se manejaran con comandos AT, pero podrias fijarte en el datasheet del modulo GPS

Desconectado jansuini

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 566
Re: usar GPS (Neo-6) con pic 16f
« Respuesta #2 en: 22 de Mayo de 2015, 18:12:51 »
¿que GPS es?
Nomalmente los GPS si entregan contínuamente una serie de tramas aunque tambien podés programarlos para que te entreguen solo la trama que te interesa.-
Quizás lo mas práctico sea conectar el gps a un puerto serie y ver si envia datos ,seguramente necesitarás un conversor TTL/232.-
Otra manera de verificar si el GPS está enviando datos es monitorear su salida con un led+resistencia ,si el led se enciende de manera intermitente es que están saliendo datos.-
Sds.
Jorge

Desconectado Cibernetico49

  • PIC10
  • *
  • Mensajes: 2
Re: usar GPS (Neo-6) con pic 16f
« Respuesta #3 en: 22 de Mayo de 2015, 18:43:05 »
hola de nuevo, gracias a los dos por contestar.

KILLERJC exactamente ese tipo de comandos estoy buscando, solo que en la hoja de especificaciones no viene nada al respecto y como dice jansuini este GPS entrega la trama de datos al conectarse (no se necesita un comando para que inicie).

Jansuini es GY-NEO6MV2-GPS-Module y ya verifique que este funcionando correctamente conectándolo a mi PC por medio de RS232 solo que al hacerlo mediante el PIC no me lee la trama que manda, tengo la sospecha que el modulo no manda el \rc o que el arreglo char no es lo suficientemente grande, por lo que busco los comandos para configurarlo y que me entregue la trama que me interesa.

Si alguien tiene la forma de como configurarlo seria de mucha ayuda.

Gracias

Cibernetico49
Saludos


Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: usar GPS (Neo-6) con pic 16f
« Respuesta #4 en: 24 de Mayo de 2015, 14:10:22 »
debe existir una hoja de comandos del GPS , es lo minimo para saber como operarlo.
Ese pic tiene una uart por hardware, úsala para recibir datos desde el gps por medio de la interrupción y una máquina de estados para identificar la trama que te interesa, y envías mediante la uart por software.
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA


Desconectado AG1

  • PIC16
  • ***
  • Mensajes: 105
Re: usar GPS (Neo-6) con pic 16f
« Respuesta #6 en: 25 de Mayo de 2015, 14:30:42 »
Para empezar puedes conectar el GPS a un puerto COM del ordenador (hazlo mediante conversión de señal TTL a RS232).
Utiliza el programa "Hyperterminal" de Windos y selecciona la velocidad adecuada hasta que veas que aparece alguna trama.
Una vez conocida la velocidad de transmisión del GPS y comprobada la conexión puedes seguir con el PIC 16F877A .
Salu2.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: usar GPS (Neo-6) con pic 16f
« Respuesta #7 en: 25 de Mayo de 2015, 18:39:10 »
el problema con algunos GPS (estoy trabajando con un NEO-6 en este momento) es que por defecto tiran mensajes en formato ubx+nmea, entonces al ponerlo con el hyperterminal ves cosas raras, no ves la trama con los caracteres típicos que esperamos recivir. En mi caso tuve que instalar u-center y seguir algunos tutoriales para cambiar la trama de salida y poner solo NMEA. tambien pude cambiar la velocidad de salida, lo que me costó mucho es poder grabar la configuracion en el GPS para que al reiniciarlo arranque con lo configurado.
De todos modos la primera prueba que yo haría es instalar el u-center y conectar el GPS al USB (con un conversor) y ver que tira el u-center.

Saludos!
-
Leonardo Garberoglio

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: usar GPS (Neo-6) con pic 16f
« Respuesta #8 en: 25 de Mayo de 2015, 18:59:21 »
Por lo que lei rapidamente de los datasheets, es que eso se configura con algunos pines, si estan puesto en 1 o en 0.

Ademas en el tercer link que pase ahi estan los comandos, las respuestas tanto en NMEA y en UBX, solo hay que buscarlo ya que es re largo el pdf.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: usar GPS (Neo-6) con pic 16f
« Respuesta #9 en: 25 de Mayo de 2015, 19:46:24 »
Por lo que lei rapidamente de los datasheets, es que eso se configura con algunos pines, si estan puesto en 1 o en 0.

Ademas en el tercer link que pase ahi estan los comandos, las respuestas tanto en NMEA y en UBX, solo hay que buscarlo ya que es re largo el pdf.

el tema es el GPS esta puesto en un PCB con algunos componentes mínimos para formar el NEO-6. Este lo unico que expone es la uart y la alimentacion. Toda la configuracion se hacer por software.
Los pdf los leí, pero para alamcenar la configuracion en la eeprom no es tan intuitivo y la explicacion que da la guia de usuario del u-center no esta bien escrita, o por lo menos no me ha funcionado como ellos explican.
En cuanto a los mensajes, se utilizan los NMEA, estos son standar y hay muchos parser dando vueltas.

Sds
-
Leonardo Garberoglio

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: usar GPS (Neo-6) con pic 16f
« Respuesta #10 en: 26 de Mayo de 2015, 08:28:49 »
Podras explicar como es eso de grabar la configuracion en eeprom?? :lol: :lol:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: usar GPS (Neo-6) con pic 16f
« Respuesta #11 en: 26 de Mayo de 2015, 08:43:19 »
Podras explicar como es eso de grabar la configuracion en eeprom?? :lol: :lol:

este es el GPS que yo estoy usando:
http://hobbyking.com/hobbyking/store/__31135__NEO_6M_GPS_Module.html

acá hay un pdf donde explica como cambiar la configuracion y grabarla:
http://www.hobbyking.com/hobbyking/store/uploads/748462262X568156X16.pdf
pero eso a mi no me funcionó.

entonces tuve que bajar el u-center y leer esta guía:
http://www.hobbyking.com/hobbyking/store/uploads/748462262X568156X33.pdf
y en la páguina 51 explica como y donde almacenar la configuracion.

En mi caso pude grabar que solo me saque los mensajes en NMEA, pero el baudrate me quedón en 57600 y no lo pude llevar a 115200... no seguí probando porque no le encontré logica a como me grabó el tema de los mensajes y no el baudrate... pero en unos días voy a retomar el tema y si les sirve hago un paso a paso...

Saludos!
-
Leonardo Garberoglio

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: usar GPS (Neo-6) con pic 16f
« Respuesta #12 en: 26 de Mayo de 2015, 08:48:01 »
Hola a todos, les comento que soy nuevo por aquí, espero me puedan ayudar.

Pues hace unos días empece a trabajar con un modulo gps y hasta ahorita e tenido un problema; no puedo leer los datos a traves del pic (16f877a) hice un mini código usando 2 UART por software, en donde,  en una recibo la trama del modulo y por la otra lo lanzo hacia la PC (esto solo lo hago para verificar que el pic este recibiendo correctamente los datos). La idea era recibir la trama completa y filtrar solo el comando que necesito ($GPGLL) pero no capturo datos del gps.

Ya descarte que el que no funcione el código o el circuito (hice lo mismo pero con un bluethoot) y cambie el tamaño del arreglo hasta 90 con esto ultimo tampoco funciono.

ley en algún lugar que el chip que trae este modulo tiene comandos para especificar cual de todos sus comandos quieres que te mande y con también puedes modificar el tiempo en que lo hace, busque en el datasheet pero no encontré nada sobre la configuración.

si alguien tiene una idea de lo que este pasando le agradezco su  ayuda, les dejo el mini código (solo lee un puerto y lo que hay lo imprime en otro).

***************************************************CODIGO********************************************************

#use rs232(baud=9600,parity=N,xmit=PIN_A3,rcv=PIN_A4,bits=8,stream=COM1)
#use rs232(baud=9600,parity=N,xmit=PIN_B1,rcv=PIN_B2,bits=8,stream=COM4)

void main()
{
   char lectura[25];

   while(TRUE)
   {
   
    fgets(lectura,COM4); //leo los datos del COM4 hasta que hay un ENTER y se guardan en el arreglo lectura
    fputs(lectura,COM1); //mando los datos guardados en el arreglo al puerto COM1 

   }//cierra while
}

25 caracteres es mu poco, ponele 60 o más. El gps puede que esté seteado a 38400 (por lo menos a mi me vino con ese baudrate).

aunque lo ideal es instalar el u-center.

sds.
-
Leonardo Garberoglio