dimanche 3 janvier 2021

Module GPS NEO 6MV2 et Raspberry Pi

Dans cet article, nous expliquons comment déterminer un position précise grâce à un module GPS NEO 6MV2 branché à un Raspberry Pi programmé en Python. En plus de déterminer la latitude et la longitude, nous situerons la position mesurée sur une carte Google Maps.

Nous avons déjà utilisé le module GPS NEO 6MV2 avec différents microcontrôleurs: lorsqu'on l'alimente avec une tension continue de 3,3 V il reçoit les signaux émis par des satellites de géolocalisation et émet continuellement des informations par communication UART.


Connexions

Le module GPS est branché au Raspberry Pi de la façon suivante:

  • Broche VCC du module GPS : Sortie 3,3 V du Raspberry Pi (broche 1)
  • Broche RX du module GPS : Pas branchée
  • Broche TX du module GPS: branchée à la broche RX du Raspberry Pi (broche 10)
  • Broche GND du module GPS: branchée à une broche GND du Raspberry Pi (broche 6)



Une fois alimenté, plusieurs minutes peuvent être nécessaire avant que module GPS dispose de suffisamment d'informations pour déterminer la position; lorsque c'est le cas, une LED bleu située sur le module GPS se met à clignoter.

Activation de la communication série

Par défaut, la communication série n'est habituellement pas activée sur le Raspberry Pi. Pour l'activer, il faut utiliser le menu Préférence - Configuration du Raspberry Pi.

Dans l'onglet "Interfaces", on active "Serial Port" et on désactive "Serial Console". 


Il faut ensuite redémarrer.

Identification du port série serial0

Une fois le port série activé, j'ai tapé cette commande dans le terminal:

ls -l /dev


Dans la longue liste qui est apparue en retour, j'ai pu constater que le nom du port série "serial0" était "ttys0", ce qui s'est avéré utile dans la rédaction des scripts en python. J'ai cru comprendre que le résultat peut être différent selon le modèle de Raspberry Pi.

Script 1: Affichage des données brutes

Je crois que la bibliothèque "pySerial" est installée par défaut dans le Rasbperry Pi OS. Si ce n'est pas le cas, vous pouvez l'installer avec pip:

pip3 install pyserial

Le script ci-dessous affiche les données brutes générées par le module GPS.

-
-


Ces données respectent la norme NMEA0183 de la National Marine Electronics Association. Sous cette forme, leur interprétation n'est pas facile et, pour cette raison, nous allons maintenant utiliser une bibliothèque spécialement conçue pour en extraire les informations les plus pertinentes.

Installation de la bibliothèque pynmea2

On peut facilement installer la bibliothèque pynmea2 avec pip:

pip3 instal pynmea2


Script 2: Affichage de la latitude et de la longitude

Grâce à la bibliothèque pynmea2, ce deuxième exemple affiche continuellement la latitude et la longitude.

-
-



Script 3: présentation de la position dans Google Maps

Finalement, ce 3e script montre la position mesurée sur une carte Google Maps.

-
-

Lors de l'exécution du script, le navigateur par défaut montre, dans un nouvel onglet, la position sur Google Maps.


À lire également:

Le module GPS NEO 6MV2 utilisé dans ce projet a été fourni gratuitement par DigitSpace.

Yves Pelletier (TwitterFacebook


Aucun commentaire:

Enregistrer un commentaire