Good to Know Database

Raspbian Wheezy: Raspberry Pi mit einem NEO-6M GPS-Empfänger ausstatten


Das Global Positioning System (GPS) ist ein globales Satellitensystem zur Bestimmung der Position und zur Übertragung eines Zeitsignals. Mit einem passenden Empfänger können Sie auch auf Ihrem Raspberry Pi die aktuelle Position bestimmen und das Zeitsignal als Quelle für die Systemzeit nutzen. Es gibt eine Vielzahl passender GPS-Empfänger welche über USB, Bluetooth oder über die serielle Schnittstelle angebunden werden können.

Die folgende Anleitung beschreibt wie Sie ein NEO-6M GPS-Modul an die serielle Schnittstelle Ihres Raspberry Pi's anschließen und in Betrieb nehmen. Als Grundlage wurde hier das Raspbian Image vom 07.01.2014 (2014-01-07-wheezy-raspbian.zip) verwendet.

Serielle Konsole deaktivieren

Standardmäßig wird die serielle Schnittstelle des Raspberry Pi's bereits als serielle Konsole verwendet. Daher müssen Sie wie in der Anleitung Raspbian Wheezy: Serielle Schnittstelle des Raspberry Pi's freigeben beschrieben die Dateien /etc/inittab und /boot/cmdline.txt modifizieren um die serielle Konsole zu deaktivieren. Nachdem Sie die beiden Dateien angepasst haben, fahren Sie Ihren Raspberry Pi herunter und trennen Ihn von der Stromversorgung.

pi@raspberrypi ~ $ sudo shutdown -h now

Erst nachdem Sie die serielle Konsole deaktivert haben und der Raspberry Pi von der Stromversorgung getrennt wurde, sollten Sie den GPS-Empfänger mit dem Raspberry Pi verbinden.

GPS-Modul mit dem Raspberry Pi verbinden

Die folgenden Fotos zeigen das hier verwendete GPS-Modul GY-GPS6MV2. Wie Sie sehen besitzt das Modul vier Anschlüsse. Die Versorgungsspannung von 3,3V für das Modul wird an den mit VCC gekennzeichneten Pin und die Masse an GND angeschlossen. Die Kommunikation zwischen dem GPS-Modul und dem Raspberry Pi erfolgt über eine serielle Verbindung. Dazu wird der am GPS-Modul mit TX gekennzeichnete Pin mit dem RX Pin des Raspberry Pi's und der RX Pin des GPS-Moduls mit dem TX Pin am Raspberry Pi verbunden.

NEO-6M GPS-Modul  

Wie bereits beschrieben sollten Sie das hier gezeigte GPS-Modul wie folgt mit Ihrem Raspberry Pi verbinden.

Schaltplan

Weitere Informationen zum NEO-6M finden Sie im dazugehörigen Datenblatt.

Funktionstest des GPS-Moduls

Ob Sie das GPS-Modul korrekt angeschlossen haben und die Datenübertragung funktioniert können Sie mit ein paar Befehlen überprüfen. Konfigurieren Sie zuerst die serielle Schnittstelle /dev/ttyAMA0 damit diese mit einer Übertragungsrate von 9600 Baud arbeitet.

pi@raspberrypi ~ $ stty -F /dev/ttyAMA0 9600

Falls Sie die aktuelle Konfiguration der Schnittstelle /dev/ttyAMA0 überprüfen wollen, rufen Sie den folgenden Befehl auf.

pi@raspberrypi ~ $ stty -F /dev/ttyAMA0
speed 9600 baud; line = 0;
-brkint -imaxbel

Die vom GPS-Modul empfangenen Daten können Sie sich zum Beispiel mit Minicom anzeigen lassen. Dazu müssen Sie jedoch zuerst das gleichnamige Paket installieren.

pi@raspberrypi ~ $ sudo apt-get update
pi@raspberrypi ~ $ sudo apt-get install minicom

Starten Sie anschließend Minicom mit dem folgenden Befehl und überprüfen ob Daten vom GPS-Modul empfangen werden.

pi@raspberrypi ~ $ minicom -b 9600 -o -D /dev/ttyAMA0

Minicom sollte Ihnen jetzt Ausgaben wie im folgenden Listing anzeigen. Mit der Tastenkombination Strg+A Q können Sie Minicom wieder beenden.

$GPRMC,093236.00,A,4900.08164,N,01223.86190,E,0.229,,220214,,,D*74
$GPVTG,,T,,M,0.229,N,0.425,K,D*2C
$GPGGA,093236.00,4900.08164,N,01223.86190,E,2,07,6.65,380.9,M,45.8,M,,0000*59
$GPGSA,A,3,23,01,31,17,13,11,32,,,,,,8.75,6.65,5.69*00
$GPGSV,3,1,11,01,32,155,42,10,10,278,,11,07,160,30,13,42,215,42*76
$GPGSV,3,2,11,17,29,256,21,20,68,088,,23,77,192,27,31,24,047,09*7B
$GPGSV,3,3,11,32,28,088,26,33,28,215,32,39,32,163,35*42
$GPGLL,4900.08164,N,01223.86190,E,093236.00,A,D*63
$GPRMC,093237.00,A,4900.08170,N,01223.86196,E,0.075,,220214,,,D*7D
$GPVTG,,T,,M,0.075,N,0.140,K,D*21
$GPGGA,093237.00,4900.08170,N,01223.86196,E,2,07,6.65,381.0,M,45.8,M,,0000*53
$GPGSA,A,3,23,01,31,17,13,11,32,,,,,,8.75,6.65,5.69*00
$GPGSV,3,1,11,01,32,155,42,10,10,278,,11,07,160,29,13,42,215,43*7F
$GPGSV,3,2,11,17,29,256,20,20,68,088,,23,77,192,27,31,24,047,09*7A
$GPGSV,3,3,11,32,28,088,26,33,28,215,32,39,32,163,35*42
$GPGLL,4900.08170,N,01223.86196,E,093237.00,A,D*61
$GPRMC,093238.00,A,4900.08125,N,01223.86199,E,0.068,,220214,,,D*71
$GPVTG,,T,,M,0.068,N,0.125,K,D*2E
$GPGGA,093238.00,4900.08125,N,01223.86199,E,2,07,3.85,381.8,M,45.8,M,,0000*50

Serielle Schnittstelle dauerhaft konfigurieren

Damit beim Systemstart die serielle Schnittstelle automatisch mit der korrekten Übertragungsrate konfiguriert wird, sollten Sie die /boot/config.txt erweitern.

pi@raspberrypi ~ $ sudo vi /boot/config.txt

Fügen Sie am Ende der Datei die zusätzliche Option init_uart_baud ein und setzen hierrüber die Übertragungsrate auf 9600 Baud.

init_uart_baud=9600

GPS-Daemon und Tools installieren

Damit die Daten vom GPS-Modul empfangen werden um im System genutzt werden zu können, sollten Sie den GPS-Daemon gpsd installieren. Im Paket gpsd-clients befindet sich das Programm cgps, welches die Daten vom GPS-Empfänger aufbereitet und darstellt. Starten Sie die Installation mit dem folgenden Befehl.

pi@raspberrypi ~ $ sudo apt-get install gpsd gpsd-clients

GPS-Daemon manuell starten und GPS-Daten auslesen

Nach der Installation können Sie den GPS-Daemon manuell starten und dessen Funktion überprüfen. Wie bereits zuvor hängt der GPS-Empfänger am Interface /dev/ttyAMA0. Mit dem Parameter -F wird der Socket /var/run/gpsd.sock erstellt, über welchen die Client-Software mit dem GPS-Daemon kommuniziert. Der Parameter -n sorgt dafür, dass bereits eine Verbindung zum GPS-Empfänger hergestellt wird auch wenn noch keine Client-Software Daten anfordert.

pi@raspberrypi ~ $ sudo gpsd /dev/ttyAMA0 -F /var/run/gpsd.sock -n

Sobald Sie den GPS-Daemon gestartet haben, können Sie den GPS-Client cgps aufrufen. Dieser holt sich die GPS-Informationen vom GPS-Daemon und zeigte diese an.

pi@raspberrypi ~ $ cgps -s

Wenn der GPS-Empfänger ein Positionssignal empfängt, zeigt cgps die aktuelle Position und weitere Informationen an. Sollten Sie keine Daten angezeigt bekommen, stellen sicher, dass eine direkte Sichtverbindung zum Satelliten besteht.

Ausgabe von cgps

Alternativ zu cgps können Sie auch den GPS-Monitor gpsmon verwenden.

pi@raspberrypi ~ $ gpsmon

Ausgabe von gpsmon

GPS-Daemon für den automatischen Start konfigurieren

Damit der GPS-Daemon beim Systemstart automatisch gestartet wird, müssen Sie die Konfigurationsdatei /etc/default/gpsd anpassen.

pi@raspberrypi ~ $ sudo vi /etc/default/gpsd

Standardmäßig enthält diese Datei die folgenden Zeilen.

# Default settings for gpsd.
# Please do not edit this file directly - use `dpkg-reconfigure gpsd' to
# change the options.
START_DAEMON="false"
GPSD_OPTIONS=""
DEVICES=""
USBAUTO="true"
GPSD_SOCKET="/var/run/gpsd.sock"

Ändern Sie hier die Optionen START_DAEMON, GPSD_OPTIONS, DEVICES und USBAUTO wie folgt ab und speichern die Änderungen.

# Default settings for gpsd.
# Please do not edit this file directly - use `dpkg-reconfigure gpsd' to
# change the options.
START_DAEMON="true"
GPSD_OPTIONS="-n"
DEVICES="/dev/ttyAMA0"
USBAUTO="false"
GPSD_SOCKET="/var/run/gpsd.sock"

Nach einem Neustart des Systems können Sie zum Beispiel mit den Befehlen cgps beziehungsweise gpsmon überprüfen, ob der GPS-Daemon automatisch gestartet wurde.


Dieser Eintrag wurde am 28.02.2014 erstellt und zuletzt am 25.09.2016 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_36_2511.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer