Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
NMEA-0183 Jest standardem elektrycznym do łączenia GPS, SONAR, czujników, jednostek autopilota itp. na statkach i łodziach. W przeciwieństwie do nowszego standardu NMEA 2000 (opartego na CAN) NMEA 0183 jest oparty na EIA RS422 (niektóre starsze i/lub proste systemy używają RS-232 lub pojedynczego przewodu).
Chcę pokazać, jak podłączyć Raspberry Pi 3B do dowolnego urządzenia NMEA-0183 z wyjściem różnicowym. Chociaż standard wymaga izolowanych wejść i wyjść, przydatne jest użycie kapelusza RS422/RS485 z izolowanym interfejsem.
Krok 1: Narzędzia i oprogramowanie
Materiały:
Malina Pi
CZAPKA RS422/RS485
szeregowe urządzenie NMEA0183
Oprogramowanie:
Rozciąganie malinowe
Symulator NMEA
Krok 2: Połączenie z NMEA 0183
Na powyższym obrazku widać typowe urządzenie NMEA z wyjściem różnicowym. Zaciski to NMEA OUT+ i NMEA OUT- lub TX+ lub TX-. Przewody NMEA IN+ i NMEA IN- są opcjonalne.
jeśli masz pojedynczy przewód transmisyjny z twojego urządzenia (najprawdopodobniej oznaczony jako TX lub NMEA OUT lub w podobny sposób), to twoje urządzenie korzysta z protokołu RS-232. W takim przypadku potrzebny będzie prosty konwerter RS232.
Krok 3: Ustawienia przełącznika DIP
Krok 4: Zwolnij linię szeregową i włącz UART Raspberry Pi
Najprostszym sposobem jest użycie narzędzia raspi-config, aby przełączyć UART na piny GPIO14/15. Zrób świeży obraz Raspbian
sudo raspi-config
przejdź do „5 opcji interfejsu”
przejdź do „Seria P6”
'Czy chcesz, aby powłoka logowania była dostępna przez port szeregowy?' NIE
'Czy chcesz, aby sprzęt portu szeregowego był włączony?' TAK
Zakończ konfigurację raspi
zrestartuj Raspberry Pi
Teraz możesz uzyskać dostęp do UART przez /dev/serial0
Krok 5: Oprogramowanie układowe
Możesz znaleźć wiele różnych stosów oprogramowania NMEA-0183 Python dla Raspberry Pi Bardzo prostym rozwiązaniem jest biblioteka NMEA autorstwa Nicka Sweetinga:
github.com/nsweeting/NMEA0183
Uwaga: pyserial jest wymagany do połączeń szeregowych:
github.com/nsweeting/NMEA0183
Krok 6: Uruchom test
Program w języku Python odkoduje przychodzące protokoły NMEA. Jeśli nie masz w domu urządzenia NMEA, możesz również użyć symulatora na swoim komputerze i prostej przejściówki USB na RS485 zamiast prawdziwego urządzenia.