Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Το NMEA-0183 είναι ένα ηλεκτρικό πρότυπο για τη σύνδεση GPS, SONAR, αισθητήρων, μονάδων αυτόματου χειριστή κ.λπ. σε πλοία και σκάφη. Σε διαφορά με το νεότερο πρότυπο NMEA 2000 (με βάση το CAN), το NMEA 0183 βασίζεται στην EIA RS422 (ορισμένα παλαιότερα ή/και απλά συστήματα χρησιμοποιούν RS-232, ή ένα μόνο καλώδιο).
Θέλω να σας δείξω πώς να συνδέσετε ένα Raspberry Pi 3B σε οποιαδήποτε συσκευή NMEA-0183 με διαφορική έξοδο. Αν και το πρότυπο απαιτεί μεμονωμένες εισόδους και εξόδους, είναι χρήσιμο να χρησιμοποιείτε RS422 / RS485 HAT με απομονωμένη διεπαφή.
Βήμα 1: Εργαλεία και Λογισμικό
Υλικά:
Raspberry Pi
RS422 / RS485 HAT
σειριακή συσκευή NMEA0183
Λογισμικό:
Raspbian Stretch
Προσομοιωτής NMEA
Βήμα 2: Σύνδεση με NMEA 0183
Στην παραπάνω εικόνα μπορείτε να δείτε μια τυπική συσκευή NMEA με διαφορική έξοδο. Οι ακροδέκτες είναι NMEA OUT+ και NMEA OUT- ή TX+ ή TX-. Τα καλώδια NMEA IN+ και NMEA IN είναι προαιρετικά.
εάν έχετε ένα μόνο καλώδιο μετάδοσης από τη συσκευή σας (πιθανότατα να φέρει την ένδειξη TX ή NMEA OUT ή κάτι τέτοιο), τότε η συσκευή σας χρησιμοποιεί το πρωτόκολλο RS-232. Σε αυτή την περίπτωση θα χρειαστείτε έναν απλό μετατροπέα RS232.
Βήμα 3: Ρυθμίσεις DIP Switch
Βήμα 4: Ελευθερώστε τη σειριακή γραμμή και ενεργοποιήστε το UART του Raspberry Pi
Ο ευκολότερος τρόπος είναι να χρησιμοποιήσετε το εργαλείο διαμόρφωσης raspi για να αλλάξετε το UART στις καρφίτσες GPIO14/15. Πάρτε μια νέα εικόνα Raspbian
sudo raspi-config
πήγα στο "5 επιλογές διασύνδεσης"
πήγα στο "P6 Serial"
"Θα θέλατε ένα κέλυφος σύνδεσης να είναι προσβάσιμο μέσω σειριακού;" ΟΧΙ
"Θα θέλατε να είναι ενεργοποιημένο το υλικό της σειριακής θύρας;" ΝΑΙ
Τέλος raspi-config
επανεκκινήστε το Raspberry Pi
Τώρα μπορείτε να έχετε πρόσβαση στο UART μέσω /dev /serial0
Βήμα 5: Υλικολογισμικό
Μπορείτε να βρείτε πολλά διαφορετικά λογισμικά NMEA-0183 στοίβες Python για Raspberry Pi Μια πολύ απλή λύση είναι η βιβλιοθήκη NMEA του Nick Sweeting:
github.com/nsweeting/NMEA0183
Παρακαλώ σημειώστε: απαιτείται pyserial για σειριακές συνδέσεις:
github.com/nsweeting/NMEA0183
Βήμα 6: Δοκιμαστική εκτέλεση
Το πρόγραμμα Python θα αποκωδικοποιήσει τα εισερχόμενα πρωτόκολλα NMEA. Εάν δεν έχετε συσκευή NMEA στο σπίτι, μπορείτε επίσης να χρησιμοποιήσετε έναν Προσομοιωτή στον υπολογιστή σας και έναν απλό προσαρμογέα USB σε RS485 αντί για πραγματική συσκευή.