loader

Déterminer sa position avec un module GPS sur Micro:bit

Un GPS est une technologie communiquant avec les satellites. Il nous permet de connaitre notre position dans l’espace, notre altitude, l’horloge et même le nombre de satellites utilisés pour les mesures.

Un GPS permet d'obtenir des données précises sur son altitude (en m), sa position dans l'espace (latitude °N et longitude °E), l'horloge UTC etc.. Les données reçues par le module sont des trames issues de la norme NMEA 083. Il existe plusieurs types de trame dont GPGGA et GPRMC. Voici un exemple de trame GPGGA valide :

$GPGGA,163221.000,4854.8644,N,00219.4940,E,2,9,0.94,52.1,M,47.3

Elle fournit les informations suivantes : 
  • Horloge: 16h 32m 21s
  • Latitude: 4854.8644 N
  • Longitude: 219.4940 E
  • Nombre de satellites utilisés: 9
  • Altitude: 52.1 m

Le module grove GPS se branche sur toutes les broches digitales de la carte micro:bit et fonctionne en transmission UART . Si vous ne connaissez pas, faites un tour vers le tutoriel "Transmission UART". C'est la même transmission que l'USB avec l'ordinateur.

On utilise les blocs "si une donnée gps est reçue dans .." et "obtenir DONNEE par GPS sur les broches .." de la catégorie  "Communication".

  • Note: Choisir "obtenir toute la trame" si vous souhaitez obtenir toutes les données reçues non analysées du GPS. Si les données renvoyées ne sont valides, retentez des mesures avec le GPS à l'extérieur. 


Dans la suite, on va vérifier l'heure que fournit le GPS en utilisant le bloc "afficher horloge" de la catégorie "Affichage".

Le but du code suivant est d'afficher l'heure avec le GPS. On obtient cette donnée en utilisant le bloc "obtenir l'horloge par GPS ".  La fonction renvoie une liste contenant l'heure, les minutes et les secondes. Le code permet aussi d'afficher l'heure correctement sur la carte. Vous pouvez utiliser un écran OLED ou bien un LCD pour afficher les données.



Que lisez-vous ? Exact, elle n'est pas correcte si on se trouve en France. On reçoit l'heure UTC (Temps Universel de Coordonnée), or la France suit l'horloge UTC+2 ! Ajoutez donc 2 heures à votre horloge. 

Essayons maintenant de se repérer dans l'espace avec la latitude et la longitude. 

La latitude mesure la position Nord ou Sud de 0° à 90° par rapport à l'équateur.  La longitude mesure la position Est ou Ouest de 0° à 180°. 


Schéma 1 : Vue du globe avec les arcs de latitude et de longitude. 



Il existe plusieurs unité de mesure pour la latitude et la longitude. Traditionnellement, les coordonnées sont exprimées avec le système de mesure appelé DMS (Degré° Minutes' Secondes''). Par exemple, Paris a comme latitude 48°51′12″ Nord et comme longitude 2°20'55'' Est. Elle sont aussi exprimées avec le système DD (Degré Décimal). Dans ce cas, la latitude est alors 48.85° N et 2.35 E.

Dans le code suivant, le bloc "obtenir latitude/longitude par GPS" fournit les positions en DD. Afficher les valeurs mesurées et comparer-les en cherchant la position de votre ville.



La latitude et longitude sont-ils cohérents ?
Dans la dernière partie, on s'intéresse au nombre de satellites qui ont été utilisés.

Maintenant essaye de trouver le nombre de satellites qui ont été utilisés pour mesurer ces coordonnées. Il correspond à la 9e donnée de la trame GPGGA. Utilise le bloc "obtenir par GPS" pour choisir la donnée à récupérer.



Vous avez le nombre ? La solution se trouve ici.

Merci d’avoir suivi ce tutoriel ! N’hésitez pas à commenter pour partager vos succès ou poser vos questions.

Auteur : Léo Meillier

Licence d'utilisation

Licence Creative Commons

Cette œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas de Modification 2.0 France