Décodage d'une trame NMEA 0183
Cette activité pédagogique permet de mettre en oeuvre le décodage d'une trame NMEA à l'aide d'un GPS grove en direct.
La problématique proposée est la recherche d'un sac perdu. Les élèves doivent identifier la position de ce sac pour le récupérer.
L'intérêt de cette activité, est qu'elle utilise un récepteur GPS réel avec des trames NMEA réelles à décoder en live sur une problématique concrête.
Pour cela on utilise un récepteur GPS grove de Seed Studio (Merci à la société A4 pour la fourniture du capteur). Il est totalement compatible avec une alimentation en 3.3V.
L'acquisition des satellites est assez rapide.
Ce capteur fonctionne parfaitement à l'intérieur d'une salle. Ce capteur fournit des trames NMEA 0183 en live.
L'idée est de mettre à disposition des élèves, qui sont équipés d'une carte Microbit, la trame NMEA à partir d'un seul récepteur GPS.
Une solution est de connecter le récepteur GPS à une carte Microbit maître qui symbolise le sac perdu. Puis cette même carte maître va envoyer en mode radio les trames GPS dans groupe donné (réseau de cartes Microbit).
Il suffira alors que les élèves se connectent sur ce réseau local pour lire les trames en live. Pour gagner en efficacité et rapidité, on fournit le programme de réception des trames NMEA par la carte Microbit réceptrice.
Les élèves vont dans un premier temps visualiser des trames à l'aide d'une application smartphone par exemple (pas obligatoire), puis identifier la trame NMEA voulu. En effet, il existe de nombreuses trames NMEA qui donnent un grand nombre d'information. On souhaite décoder uniquement la latitude et la longitude du sac perdu.
Pour cela les élèves vont identifier le type de récepteur de géolocalisation, ici le système Américain GPS, puis identifier ensuite le type de trame pour les coordonnées GPS.
Les élèves visualisent les trames reçus par le GPS Grove sur leur PC à l'aide de Teraterm ou termite qui permet de lire des données sur un port COM.
Ils identifient la trame et la position de la latitude et longitude dans la trame.
Ils mettent en oeuvre ensuite un programme (à compléter) en Python pour extraire les coordonnées géographiques de latitude et longitude dans une trame NMEA. Puis affiche le point recherché directement sur une carte d'un navigateur. Le décodage de la trame est simplifié par la bibliothèque pynmea2 très pratique. Pour éviter des tests dabs tous les sens, on utilise une gestion d'exceptions qui permet de simplifier le programme.
Bons essais.
Programme Python à installer sur la carte Microbit Maître (connectée sur une carte d'extension avec connecteurs Grove) avec le récepteur GPS Grove. Attention à bien voir le numéro de pin sur lequel est connecté le récepteur GPS. Modifier alors le numéro de Pin dans le programme Python.
Programme Python à installer sur la carte Microbit récepteur qui sera connectée via USB sur le PC.
Programme Python de décodage incomplet donné aux élèves.
Programme pour RaspberryPi pour lire la trame reçue par la carte Microbit connectée au RaspberryPi.