Das „NL-551EUSB“ ist schon ein geniales Teil. Und genau in dieser USB-Variante wollten wir die Platine von Navilock dann auch einmal ausprobieren.
Das sollte prinzipiell mit jedem Rechner mit USB-Anschluss funktionieren, wir verwenden für unsere Zwecke einen Raspberry Pi.
Den für die 5-polige Minibuchse auf der Platine notwendigen Stecker verbindet man mit einem konventionellen USB-Kabel. Damit lässt sich das Ganze dann an Raspi oder Hub verbinden. Darüber geschieht dann auch die Stromversorgung für das Modul.
Mit
$ lsusb
kontrolliert man, ob die Erkennung funktioniert hat und bekommt eine Ausgabe wie z.B.
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 005: ID 1546:01a5 U-Blox AG
Bus 001 Device 004: ID 0bda:8172 Realtek Semiconductor Corp. RTL8191SU 802.11n WLAN Adapter
Unser gesuchtes Device ist übrigens das von „U-Blox“.
Ob sich das neue Gerät am Anschluss ordentlich etabliert hat, prüft man mittels
$ dmesg
und erhält eine Ausgabe so ähnlich wie
[ 470.873202] usb 1-1.2: new full-speed USB device number 5 using dwc_otg
[ 470.975762] usb 1-1.2: New USB device found, idVendor=1546, idProduct=01a5
[ 470.975799] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 470.975815] usb 1-1.2: Product: u-blox 5 – GPS Receiver
[ 470.975829] usb 1-1.2: Manufacturer: u-blox AG – www.u-blox.com
[ 471.034359] cdc_acm 1-1.2:1.0: ttyACM0: USB ACM device
[ 471.037946] usbcore: registered new interface driver cdc_acm
[ 471.037980] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
Hat das funktioniert, kann nun die serielle Ausgabe des Empfängers kontrolliert werden.
Zuerst die Baudrate an oben identifiziertem Anschluss (ttyACM0) auf „4800“ stellen:
$ sudo stty 4800 -F /dev/ttyACM0
Danach kann mittels
$ cat /dev/ttyACM0
gelesen und testweise auf der Konsole ausgegeben werden. Liest man jetzt eine Menge GPGxx-Ausgaben, dann ist das Gröbste geschafft…
In einem nächsten Schritt sollte man jetzt die empfangenen Informationen filtern und auswerten. Wir wollen nur das GPGGA-Protokoll auswerten. Dazu haben wir uns Hilfe durch das Tool „gps.py“ von Daniel Kampert (http://kampis-elektroecke.de) geholt. Ein schönes Stück Python-Code und eine entsprechende Ausgabe sieht nun so aus:
GPGGA,201945.750,5029.5971,N,01225.1458,E,1,05,3.6,551.8,M,45.5,M,,0000*50
Laenge des Datensatzes: 74 Zeichen
Uhrzeit: 20:19:45
Breitengrad: 50.295971 N
Laengengrad: 12.251458 E
Hoehe ueber dem Meeresspiegel: 551.8 M
GPS-Qualitaet: 1
Anzahl der Satelliten: 5
Checksumme: 0000*50
Nun kann man bspw. noch KML-Dateien erzeugen. Dazu dann in einem entsprechenden Codeschnipsel…