No hay mucho contexto en torno a esta pregunta, por lo que no sé si está esperando una respuesta para una persona con experiencia en sistemas integrados, con software o con ninguno. Contestaré asumiendo que no sabes nada.
Hay una variedad de chips GPS que puede obtener de varios proveedores (incluidos kits de desarrollo para probar estos chips). Cale McCollough dio un buen ejemplo con U-Blox. Aquí está uno de sus kits de evaluación:
- Al igual que topcoder y codechef, ¿tenemos sitios web de codificación competitivos centrados en sistemas integrados?
- ¿C ++ es viable para una línea de sistemas integrados? Me encanta C ++ por su flexibilidad, pero ¿crees que se corta en esa línea? Si es así, ¿por dónde empiezo?
- ¿Qué es una plataforma integrada asequible para practicar la programación de firmware para protocolos de red inalámbrica?
- ¿Cuáles son las diferencias entre 8051 microcontrolador y pic?
- ¿Cómo funciona un sistema en chip (soc)?
Entonces, después de recibir esto por correo, lo conecta a su PC o microcontrolador y habla con él mediante un protocolo de comunicación típico. Como puede ver, esto también admite I2C, SPI y quizás UART. Todos estos son protocolos de comunicación diferentes, pero no voy a entrar en detalles aquí. Solo sepa que puede recibir datos de este cuadro de alguna manera.
Si está configurado y configurado correctamente (este paso es bastante mínimo), comenzará a obtener una gran cantidad de datos. Los datos que obtiene se definen aquí: datos NMEA.
Desde ese enlace, hay algunos flujos de datos de muestra:
Garmin g12 oraciones para la versión 4.57
$ GPRMC, 183729, A, 3907.356, N, 12102.482, W, 000.0,360.0,080301,015.5, E * 6F
$ GPRMB, A ,,,,,,,,,,,, V * 71
$ GPGGA, 183730,3907.356, N, 12102.482, W, 1,05,1.6,646.4, M, -24.1, M ,, * 75
$ GPGSA, A, 3,02 ,,, 07“ 09,24,26 ,,,,, 1.6,1.6,1.0 * 3D
$ GPGSV, 2,1,08,02,43,088,38,04,42,145,00,05,11,291,00,07,60,043,35 * 71
$ GPGSV, 2,2,08,08,02,145,00,09,46,303,47,24,16,178,32,26,18,231,43 * 77
$ PGRME, 22.0, M, 52.9, M, 51.0, M * 14
$ GPGLL, 3907.360, N, 12102.481, W, 183730, A * 33
$ PGRMZ, 2062, f, 3 * 2D
$ PGRMM, WGS 84 * 06
$ GPBOD ,, T ,, M ,, * 47
$ GPRTE, 1,1, c, 0 * 07
$ GPRMC, 183731, A, 3907.482, N, 12102.436, W, 000.0,360.0,080301,015.5, E * 67
$ GPRMB, A ,,,,,,,,,,,, V * 71
Así que ese es el galimatías que verás cuando estés conectado a uno de estos chips GPS. El resto de la página describe cómo interpretar esos datos. Como ejemplo, después de “$ GPGLL” notará que hay “3907.360, N, 12102.481, W”, como probablemente pueda adivinar, estas son coordenadas de latitud / longitud.
Así que ahora estamos obteniendo todos estos datos de nuestro sensor GPS utilizando este kit de evaluación, y queremos tomar este hermoso código que hemos escrito para hacer uso de estos datos y crear un dispositivo. Ahora necesita ordenar estos:
Además de esto, necesita todos los demás componentes de hardware necesarios para crear un dispositivo como este.
Eso es todo. Bastante simple ¿eh?