Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
NMEA-0183 ist ein elektrischer Standard zum Anschluss von GPS, SONAR, Sensoren, Autopilot-Einheiten etc. in Schiffen und Booten. Im Gegensatz zum neueren NMEA 2000-Standard (basierend auf CAN) basiert die NMEA 0183 auf EIA RS422 (einige ältere und/oder einfache Systeme verwenden RS-232 oder ein einzelnes Kabel).
Ich möchte Ihnen zeigen, wie Sie einen Raspberry Pi 3B an ein beliebiges NMEA-0183-Gerät mit Differenzausgang anschließen. Obwohl der Standard isolierte Ein- und Ausgänge fordert, ist es sinnvoll, einen RS422- / RS485-HAT mit isolierter Schnittstelle zu verwenden.
Schritt 1: Tools und Software
Materialien:
Himbeer-Pi
RS422 / RS485-HAT
ein serielles NMEA0183-Gerät
Software:
Raspbian Stretch
NMEA-Simulator
Schritt 2: Verbindung zu NMEA 0183
Im Bild oben sehen Sie ein typisches NMEA-Gerät mit Differenzausgang. Die Anschlüsse sind NMEA OUT+ und NMEA OUT- oder TX+ oder TX-. Die Kabel NMEA IN+ und NMEA IN- sind optional.
Wenn Sie ein einzelnes Übertragungskabel von Ihrem Gerät haben (höchstwahrscheinlich mit TX oder NMEA OUT oder ähnlichem gekennzeichnet), verwendet Ihr Gerät das RS-232-Protokoll. In diesem Fall benötigen Sie einen einfachen RS232-Konverter.
Schritt 3: DIP-Schaltereinstellungen
Schritt 4: Geben Sie die serielle Leitung frei und aktivieren Sie UART des Raspberry Pi
Am einfachsten ist es, das raspi-config-Tool zu verwenden, um den UART auf die GPIO14/15-Pins umzustellen. Nehmen Sie ein frisches Raspbian-Image auf
sudo raspi-config
Gehe zu '5 Schnittstellenoptionen'
gehe zu 'P6 seriell'
'Möchten Sie, dass eine Login-Shell über seriell zugänglich ist?' NEIN
'Möchten Sie die Hardware der seriellen Schnittstelle aktivieren?' JAWOHL
raspi-config beenden
Neustart des Raspberry Pi
Jetzt können Sie über /dev/serial0 auf den UART zugreifen
Schritt 5: Firmware
Sie finden viele verschiedene NMEA-0183-Software-Python-Stacks für Raspberry Pi Eine sehr einfache Lösung ist die NMEA-Bibliothek von Nick Sweeting:
github.com/nsweeting/NMEA0183
Bitte beachten: Für serielle Verbindungen wird pyserial benötigt:
github.com/nsweeting/NMEA0183
Schritt 6: Testlauf
Das Python-Programm dekodiert eingehende NMEA-Protokolle. Wenn Sie kein NMEA-Gerät zu Hause haben, können Sie anstelle eines echten Geräts auch einen Simulator auf Ihrem PC und einen einfachen USB-zu-RS485-Adapter verwenden.