Conectar un receptor GPS USB en Ubuntu

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:

Conectar un receptor GPS USB en Ubuntu

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:

Conectar un receptor GPS USB en Ubuntu

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

¿Quién está en línea?

Hay 33359 invitados y ningún miembro en línea