Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
NMEA-0183 Est une norme électrique pour connecter le GPS, le SONAR, les capteurs, les unités de pilotage automatique, etc. dans les navires et les bateaux. Contrairement à la nouvelle norme NMEA 2000 (basée sur CAN), la NMEA 0183 est basée sur EIA RS422 (certains systèmes plus anciens et/ou simples utilisent RS-232, ou un seul fil).
Je veux vous montrer comment connecter un Raspberry Pi 3B à n'importe quel appareil NMEA-0183 avec sortie différentielle. Bien que la norme appelle des entrées et sorties isolées, il est utile d'utiliser un HAT RS422/RS485 avec interface isolée.
Étape 1: Outils et logiciels
Matériaux:
Tarte aux framboises
CHAPEAU RS422 / RS485
un périphérique série NMEA0183
Logiciel:
Étirement raspbien
Simulateur NMEA
Étape 2: connexion à NMEA 0183
Dans l'image ci-dessus, vous pouvez voir un appareil NMEA typique avec une sortie différentielle. Les terminaux sont NMEA OUT+ et NMEA OUT- ou TX+ ou TX-. Les fils NMEA IN+ et NMEA IN- sont en option.
si vous avez un seul fil de transmission de votre appareil (probablement étiqueté TX ou NMEA OUT ou quelque chose comme ça), alors votre appareil utilise le protocole RS-232. Dans ce cas, vous aurez besoin d'un simple convertisseur RS232.
Étape 3: Paramètres du commutateur DIP
Étape 4: Libérez la ligne série et activez l'UART du Raspberry Pi
Le moyen le plus simple consiste à utiliser l'outil raspi-config pour basculer l'UART sur les broches GPIO14/15. Prenez une nouvelle image Raspbian
sudo raspi-config
aller à '5 options d'interfaçage'
aller à 'P6 Série'
« Voulez-vous qu'un shell de connexion soit accessible en série ? » NON
« Voulez-vous que le matériel du port série soit activé ? » OUI
Terminer raspi-config
redémarrer le Raspberry Pi
Vous pouvez maintenant accéder à l'UART via /dev/serial0
Étape 5: Micrologiciel
Vous pouvez trouver de nombreuses piles Python logicielles NMEA-0183 différentes pour Raspberry Pi. Une solution très simple est la bibliothèque NMEA de Nick Sweeting:
github.com/nsweeting/NMEA0183
Remarque: pyserial est requis pour les connexions série:
github.com/nsweeting/NMEA0183
Étape 6: Tester l'exécution
Le programme Python décodera les protocoles NMEA entrants. Si vous n'avez pas d'appareil NMEA chez vous, vous pouvez également utiliser un simulateur sur votre PC et un simple adaptateur USB vers RS485 au lieu d'un vrai appareil.