Creo que esta tarde he visto la luz. Hace un tiempo compré un receptor de GPS para conectarlo al ordenador vía USB, con un objetivo que no era muy claro entonces, probablemente fuera por el tema de experimentar.
En estos días, que estamos tomando datos con un GPS de los buenos, de ahí el último artículo referente a las coordenadas utm y geodésicas. El caso es que para localizar las bases de referencia, hemos estado utilizando el Sygic, pero claro, esto está pensado más que nada para conducción, y en este caso localizar las bases se ha vuelto realmente complicado, porque el chisme en cuestión tiene la manía de intentar llevarte por carretera (que cosas).
Claro, lo que sería muy interesante es poder ver en Google Earth, por ejemplo, tu posición leída desde el GPS. Y efectivamente, este voy a intentar, así que como primer paso intentaré conectarme con el receptor de GPS.
Instalación
Lo primero será instalar las herramientas necesarias. OJO, espera a conectar el receptor GPS antes de tener todo configurado. En un terminal ejecutamos el siguiente comando:
apt-get install gpsd gpsd-clients
Una vez instaladas las herramientas tenemos que configurar el receptor GPS, para ello, ejecutamos el siguiente comando:
dpkg-reconfigure gpsd
gpspipe -r > logfile.nmea
También puedes comprobar el correcto funcionamiento del gps, utilizando xgps. Para ello ejecutas el siguiente comando en el terminal, o mediante ALT+F2:
xgps
y verás algo parecido a ésto:
GPS y Python
Por último y para sacar más datos podemos utilizar Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#! /usr/local/bin/python #-*- coding: utf-8 -*- import gps, os, time g = gps.gps(mode = gps.WATCH_NEWSTYLE) while 1 : os.system( 'clear' ) g.poll() if gps.PACKET_SET: g.stream() print print ' GPS reading' print '—————————————-' print 'latitude ' , g.fix.latitude print 'longitude ' , g.fix.longitude print 'time utc ' , g.utc, ' + ' , g.fix.time print 'altitude ' , g.fix.altitude print 'epc ' , g.fix.epc print 'epd ' , g.fix.epd print 'eps ' , g.fix.eps print 'epx ' , g.fix.epx print 'epv ' , g.fix.epv print 'ept ' , g.fix.ept print 'speed ' , g.fix.speed print 'climb ' , g.fix.climb print 'track ' , g.fix.track print 'mode ' , g.fix.mode print print 'sats ' , g.satellites time.sleep( 1 ) |
Que nos producirá un resultado como éste:
Conclusiones
Este es el comienzo para lo que vendrá posteriormente, pero servirá de rampa de lanzamiento. Ahora quedan cosas más complicadas, como que Google Earth reconozca los datos que tomamos, o que podamos realizar lecturas discrecionales, pero poco a poco y paso a paso.
Más información | linuxquestions.org, PerryGeo y tjworld.net