สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
NMEA-0183 เป็นมาตรฐานทางไฟฟ้าสำหรับเชื่อมต่อ GPS, SONAR, เซ็นเซอร์, หน่วยนำร่องอัตโนมัติ ฯลฯ ในเรือและเรือ ความแตกต่างจากมาตรฐาน NMEA 2000 ที่ใหม่กว่า (อิงตาม CAN) NMEA 0183 อิงตาม EIA RS422 (ระบบที่เก่ากว่าและ/หรือเรียบง่ายบางระบบใช้ RS-232 หรือสายเดี่ยว)
ฉันต้องการแสดงวิธีเชื่อมต่อ Raspberry Pi 3B กับอุปกรณ์ NMEA-0183 ที่มีเอาต์พุตต่างกัน แม้ว่ามาตรฐานจะเรียกอินพุตและเอาต์พุตแบบแยกออกมา แต่ก็มีประโยชน์ในการใช้ RS422 / RS485 HAT พร้อมอินเทอร์เฟซแบบแยก
ขั้นตอนที่ 1: เครื่องมือและซอฟต์แวร์
วัสดุ:
ราสเบอร์รี่ปี่
RS422 / RS485 หมวก
อุปกรณ์ 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
ขั้นตอนที่ 4: เพิ่ม Serial Line และเปิดใช้งาน UART ของ Raspberry Pi
วิธีที่ง่ายที่สุดคือใช้เครื่องมือ raspi-config เพื่อเปลี่ยน UART เป็นพิน GPIO14/15 ถ่ายภาพ Raspbian ใหม่
sudo raspi-config
ไปที่ '5 ตัวเลือกการเชื่อมต่อ'
ไปที่ 'P6 Serial'
'คุณต้องการให้ล็อกอินเชลล์สามารถเข้าถึงได้ผ่านซีเรียลหรือไม่' ไม่
'คุณต้องการให้เปิดใช้งานฮาร์ดแวร์พอร์ตอนุกรมหรือไม่' ใช่
เสร็จสิ้น raspi-config
รีบูต Raspberry Pi
ตอนนี้คุณสามารถเข้าถึง UART ผ่าน /dev/serial0
ขั้นตอนที่ 5: เฟิร์มแวร์
คุณสามารถค้นหาซอฟต์แวร์ NMEA-0183 Python stack ได้มากมายสำหรับ Raspberry Pi วิธีแก้ปัญหาที่ง่ายมากคือไลบรารี NMEA โดย Nick Sweeting:
github.com/nsweeting/NMEA0183
โปรดทราบ: จำเป็นต้องใช้ pyserial สำหรับการเชื่อมต่อแบบอนุกรม:
github.com/nsweeting/NMEA0183
ขั้นตอนที่ 6: ทดสอบการทำงาน
โปรแกรม Python จะถอดรหัสโปรโตคอล NMEA ขาเข้า หากคุณไม่มีอุปกรณ์ NMEA ที่บ้าน คุณสามารถใช้เครื่องจำลองบนพีซีและอะแดปเตอร์ USB เป็น RS485 แบบง่ายแทนอุปกรณ์จริงได้