Der Raspberry Pi als elektronische Seekarte

Die Idee war, eine möglichst günstige Lösung zu finden, um die Position eines Bootes anzuzeigen. Besondere Anforderungen an Sonderfunktionen gab es nicht, die Hauptkriterien waren günstiger Preis und Anzeige der aktuellen Position.

Im folgenden möchte ich euch kurz die Komponenten die man für das Vorhaben benötigt (bzw. die ich verwendet habe) sowie die Vorgehensweise vorstellen.
Leider habe ich mich zum Erstellen dieser Anleitung erst entschieden, nachdem ich die Einrichtung auf dem Raspberry Pi fertig hatte. Daher kann es sein, das Schritte fehlen oder nicht ausführlich genug beschrieben sind. Hier ist eure Mithilfe gefragt! Wenn ihr das Vorhaben umsetzt und auf Probleme stoßt schreibt einfach einen Kommentar. Ich werde das dann mit in die Anleitung einarbeiten.

Wenn ihr die Komponenten noch beschaffen müsst, würde es mir sehr helfen, wenn ihr dazu meinen Amazon-Link verwendet. Damit gilt der Einkauf als von mir geworben und ich bekomme eine Provision. Für euch ändert sich nichts, es kostet keinen Aufpreis o. ä.! Es muss auch nichts von diesen Teilen sein, jeder Amazon-Einkauf über diesen Link wird gezählt und ihr könnt mich auf die Art unterstützen ohne selbst etwas investieren zu müssen! Einkaufen bei Amazon.de

Vorraussetzung: Ein funktionierender Raspberry Pi mit installiertem Raspian, sowie ein GPS-Empfänger.
Komponenten die ich verwendet habe:
Raspian Pi Model B Raspberry bei Amazon
GPS-Empfänger Navilock USB GPS-Modul NL-302U SIRF III
Spannungswander 230V + USB-Kabel BESTEK KFZ Wechselrichter 12V auf 230V 75W
Einen noch vorhandenen Flachbildschirm mit HDMI auf VGA-Adapter (Anmerkungen zum Wandler am Ende der Anleitung beachten!)
Mini-Funktatstaur mit Touchpad

Der verlinkte Spannungswandler 230V ist für den Zigarettenanzünder-Anschluss und dient als Stromversorgung für den Monitor. Er hat noch USB-Ausgänge so das er (mit Hilfe eines entsprechenden Micro-USB-Kabels) gleichzeitig als Stromversorgung für den Raspberry Pi dient. Alternativ käme noch in Frage, einen Rückfahr-Kamera-Monitor o. ä. aus dem KFZ-Bereich zu verwenden. Am besten wäre natürlich was mit Touch, aber das habe ich nicht gebaut…

Vorgehensweise:

Schritt 1

System updaten:

sudo apt-get update

Schritt 2

Installation von openCPN

Benötigte Zusatzpakete installieren

sudo apt-get install libgtk2.0-dev gettext git-core cmake gpsd gpsd-clients libgps-dev build-essential wx-common libwxgtk2.8-dev libglu1-mesa-dev libgtk2.0-dev wx2.8-headers libbz2-dev libtinyxml-dev libportaudio2 portaudio19-dev

Die fertigen Pakete funktionieren auf dem Raspberry leider nicht, da sie nicht für dessen arm-Architektur erstellt wurden. Daher muss der Quellcode heruntergeladen werden …

git clone git://github.com/OpenCPN/OpenCPN.git

und compiliert werden:

cd opencpn # unless already in this directory.
mkdir build
cd build
cmake ../
make

Achtung, dieser Vorgang dauert sehr sehr lange! Einfach machen lassen, auch wenn es so aussieht als wenn nichts passiert.

Zuletzt: Installieren!

sudo make install

Testen: Mittels

opencpn

Sollte sich das Programm bereits starten lassen! Das Terminal-Fenster bleibt dabei im Hintergund aktiv und gibt noch ein paar Meldungen von openCPN aus.

Schritt 3

Karten herunterladen und installieren

Für openCPN werden zur freien Verfügung zur Zeit leider nur veraltete Karten (2011) von openseamaps.org (gehört zu openstreetmaps.org) angeboten. So kommen sie auf den Raspberry:
Die online-Karte von openseamaps laden openseamaps-Karte, Ausschnitt wählen, über die Toolbox als .KAP herunterladen. Den Vorgang ggf. für weitere Ausschnitte wiederholen

In der grafischen openCPN-Oberfläche kann nun mittels des Schraubenschlüssel-Symbols das Einstellungsfenster geöffnet werden in dem auch die eben heruntergeladenen Karten zugewiesen werden können.

Damit ist die Installation abgeschlossen. Jetzt kommen noch ein paar Schritte um das ganze etwas alltagstauglich zu machen; sprich es werden noch eine Verknüpfung auf dem Desktop angelegt sowie der Autostart des Programms beim Hochfahren des Raspberry Pi

Schritt 4

Desktop-Verknüpfung erstellen

cd /home/pi/Desktop
nano opencpn.desktop
In diese leere Datei folgendes einfügen:

[Desktop Entry]
Name=openCPN
Comment=Seekarten
Icon=opencpn
Exec=sudo opencpn
Type=Application
Encoding=UTF-8
Terminal=false
Categories=None;

Damit gibt es auf dem Desktop eine Verknüpfung zu openCPN, falls man es mal geschlossen hat.

Schritt 5

Autostart anlegen

cd /home/pi/.config

Prüfen, ob Autostart-Ordner vorhanden ist:

ls

Wenn Autostart nicht angezeigt wird, erstellen:

sudo mkdir autostart

In das Verzeichnis wechseln und Startdatei anlegen:

cd autostart
nano opencpn.desktop

In diese neue, leere Datei folgendes einfügen:

[Desktop Entry]
Type=Application
Exec=sudo opencpn

Mit STRG+X beenden und mit J+Enter speichern.
Wer nicht nur kopiert, sonder aufpaßt stellt fest das ich openCPN hier mit sudo starte. Ich hatte es zunächst ohne probiert und bin auch der Meinung das es mal geklappt hat. Irgenwann (noch während des setups der ganzen Kiste) war es aber so, dass das Programm zwar gestartet ist, kurz die Position gefunden hat, aber nach ein paar Sekunden war stets die Verbindung zum Satteliten weg. Nach langem suchen und probieren, habe ich es spaßeshalber mal mit sudo versucht und siehe da, läuft super! Ich denke nicht, das dies ein Sicherheitsproblem darstellt. Solltet ihr das ganze hier nachbauen und es bei euch anders sein oder ihr einen Grund dafür finden, könnt ihr mir das natürlich gerne sagen! 🙂

Optional bei Verwendung des von mir verlinkten HDMI-VGA-Adapters: Schritt 5

Durch eine Käuferbewertung habe ich erfahren, das eine Konfigurationsdatei des Raspberry angepaßt werden muss, damit dieser Adapter auch ein Bild liefert (bei anderen Adaptern dürfte das prinzipbedingt auch der Fall sein).

Wir passen die Einstellungen in der /boot/config.txt folgendermaßen an; die Zeilen sollten schon vorhanden sein nur ggf. sind sie auskommentiert (#). Zu beachten ist, das am Ende der Datei unter Umständen die Einträge auch durch eine NOOBS-Installation vorhanden sind. Hier bitte darauf achten, das diese auskommentiert oder gelöscht werden, da die Einstellungen sonst 2x vorhanden wären!

sudo nano /boot/config.txt

# PAL setting
sdtv_mode=2

# ratio set 4:3 (default)
sdtv_aspect=1

# normal HDMI mode
hdmi_drive=2

# DMT
hgmi_group=2

# 1024 x 768 60 Hz
hdmi_mode=16

framebuffer_width=1024
framebuffer_height=768

Nun kann nano mittels strg+x beendet und die Datei mit J+Enter gespeichert werden.

Damit sollte das ganze jetzt laufen! Die von mir oben verlinkte Mini-Funktatstaur bedarf keiner weitere Einstellung; sie läuft per Plug and Play am Raspberry. Über ein Feedback, ob und wie alles bei euch funktioniert hat, würde ich mich sehr freuen. Wenn ihr durch diese Anleitung vielleicht sogar viel Geld sparen konntet, würde ich mich natürlich auch über einen Amazon-Einkauf über den Link oben oder meiner Wunschliste (auch Gutscheine) sehr freuen! 😉