Se repérer grâce à des satellites : une technologie militaire devenue un outil du quotidien, présent dans chaque téléphone.
Pour repérer un point sur la Terre, on donne deux angles mesurés depuis le centre de la Terre :
Vidéo : les coordonnées géographiques.
| Latitude | Longitude | |
|---|---|---|
| Degrés décimaux | — | — |
| Degrés et minutes trames GPS | — | — |
| Degrés, minutes, secondes | — | — |
Un degré se divise en 60 minutes (60′) et une minute en 60 secondes (60″), comme une heure.
46,6267° = 46° + 0,6267 × 60′ = 46° 37,60′.
46° 37,60′ = 46 + 37,60 ÷ 60 = 46,6267°.
En degrés décimaux, le sud et l'ouest sont notés avec un signe moins : 22,9° S = −22,9°.
Un coffre fermé par trois clés contient un trésor. Les trois clés ont été forgées dans trois villes différentes, Auxerre, Mâcon et Nevers, puis envoyées par drone, volant à 60 km/h, vers un même lieu tenu secret.
Les trois drones sont partis de leur ville en même temps, à 12 h 00 précises. Celui d'Auxerre est arrivé au lieu secret à 12 h 38, celui de Mâcon à 14 h 35 et celui de Nevers à 13 h 08.
Retrouve sur la carte de la Bourgogne l'endroit où ont été déposées les trois clés.
Remplis le tableau, trace les cercles, puis clique sur la carte à l'endroit du trésor.
| Ville | Arrivée | Durée du vol | Distance |
|---|---|---|---|
| Auxerre | 12 h 38 | min | km |
| Mâcon | 14 h 35 | min | km |
| Nevers | 13 h 08 | min | km |
À 60 km/h, combien de kilomètres un drone parcourt-il en une minute ?
Une seule distance place le point sur un cercle ; deux distances laissent deux points possibles ; avec trois distances, il ne reste qu'un seul point. On parle de trilatération : c'est une triangulation qui utilise des distances au lieu d'angles.
Un récepteur GPS fait la même chose que dans la chasse au trésor : il mesure sa distance à plusieurs satellites dont il connaît la position.
Des antennes au sol (le segment de contrôle) suivent les satellites et leur transmettent leur position exacte dans le ciel.
Chaque satellite envoie en permanence un signal contenant l'heure exacte d'envoi et sa position. Le récepteur compare l'heure d'envoi à l'heure de réception : le signal voyage à la vitesse de la lumière (300 000 km/s), on en déduit la distance.
Avec les distances à 3 satellites, le récepteur calcule sa position dans l'espace.
Les satellites ont des horloges atomiques, pas le récepteur. Une erreur de 30 milliardièmes de seconde (0,000 000 03 s) suffit à fausser la position d'une dizaine de mètres : un 4e satellite permet de corriger l'horloge du récepteur. Les réflexions du signal sur les bâtiments créent aussi des erreurs.
Déplace le récepteur avec le curseur, puis dérègle son horloge. Chaque distance mesurée devient fausse de vitesse × erreur : les cercles ne se croisent plus en un seul point.
Sur le dessin, l'erreur est exagérée pour être visible.
| Système | Pays | Couverture |
|---|---|---|
| GPS | États-Unis | mondiale |
| Galileo | Union européenne | mondiale |
| Glonass | Russie | mondiale |
| Beidou | Chine | mondiale |
| NavIC, QZSS | Inde, Japon | régionale |
Vidéo : le fonctionnement de Galileo.
Quand un récepteur GPS a calculé sa position, il envoie une trame : une ligne de texte qui regroupe l'heure, la latitude, la longitude, l'altitude… Pour que tous les appareils se comprennent, cette trame suit toujours la même forme, définie par la NMEA (National Marine Electronics Association). La plus utilisée est la trame GGA.
Les données sont séparées par des virgules et les nombres décimaux utilisent le point. Survole la trame ou le tableau :
Deux trames ont été capturées sur un smartphone pendant un trajet :
Pour mesurer la distance par la route, ouvre l'itinéraire dans OpenStreetMap (ou dans un autre service de cartes, en saisissant les coordonnées) : itinéraire entre les deux points.
Colle une trame GGA (par exemple une trame reçue à l'étape 6) pour la décoder et vérifier sa somme de contrôle.
Le module GPS Grove est relié à la carte par une liaison série (UART) : son fil TX (émission) arrive sur pin0, son fil RX sur pin14. Chaque seconde, il envoie une salve de trames NMEA à 9600 bauds (bits par seconde).
| ecoute_gps() | la carte écoute le module GPS |
| affiche(texte) | affiche texte dans la console (à utiliser à la place de print) |
| champs = trame.split(",") | découpe la trame à chaque virgule |
| champs[0] | 1er morceau (on compte à partir de 0) |
| champs[0] == "$GPGGA" | True si la trame est une trame GGA |
| champs[6] != "0" | True si le module a une position |
| "Heure : " + champs[1] | le signe + colle deux textes |
| champs[1] | heure UTC hhmmss.sss |
| champs[2], champs[3] | latitude ddmm.mmmm, N ou S |
| champs[4], champs[5] | longitude dddmm.mmmm, E ou W |
| champs[6] | "0" : pas de position, "1" : position GPS |
| champs[7] | nombre de satellites |
| champs[8] | précision (HDOP) |
| champs[9] | altitude en mètres |
| display.show(x) | caractère, nombre ou image |
| display.scroll("texte") | faire défiler un texte |
| display.show(Image.YES) | une coche (Image.NO : une croix) |
| button_a.was_pressed() | True si A a été appuyé |
| sleep(1000) | pause d'une seconde |
Notes pour l'enseignant.
Le module imite un module GPS Grove : salve de trames GGA, GSA, GSV, RMC et VTG chaque seconde à 9600 bauds, environ 8 s avant la première position, perte de la position « à l'intérieur ». La mémoire de réception de la carte est limitée à 512 octets : ce qui arrive quand elle est pleine est perdu, comme sur la vraie carte.
Quand la liaison série est dirigée vers pin14 et pin0, print() envoie le texte sur pin14 : il n'arrive pas dans la console. C'est pourquoi les programmes fournissent affiche(texte), qui repasse à 115 200 bauds vers l'ordinateur, affiche, puis rappelle ecoute_gps(). Les élèves n'ont pas à modifier ces deux fonctions. À une autre vitesse que 115 200 bauds, la console affiche des caractères illisibles ; si la carte n'écoute pas le GPS à 9600 bauds, elle reçoit des octets qui ne forment pas du texte.
Observer les trames, afficher champs[0], filtrer les trames GGA, puis afficher un champ (heure), plusieurs champs (latitude, longitude), d'autres champs (satellites, altitude) ; ensuite un voyant sur la matrice, la conversion en degrés décimaux avec une fonction fournie et, en bonus, la distance au trésor.
Par défaut, le module est placé à Louhans. Le bouton « Mon adresse IP » demande au service geojs.io la position associée à l'adresse IP publique : c'est en général la ville où le fournisseur d'accès ou l'établissement est raccordé, à plusieurs kilomètres près, parfois beaucoup plus. Rien n'est envoyé sans clic. Le bouton « Position du navigateur » utilise la géolocalisation du navigateur, avec l'accord de l'élève. Les deux ne fonctionnent que si la page est ouverte directement (webclasse.fr), pas dans un aperçu qui bloque les requêtes.
Les défis sont vérifiés en lançant le programme sur un module placé à une position tirée au hasard en Bourgogne : un programme qui recopie des coordonnées « en dur » est refusé.
Pour vendre mon vélo, j'ai mis une annonce en ligne. Un acheteur intéressé me demande des photos supplémentaires par courriel. Je les lui envoie… et le lendemain matin, mon vélo a disparu !
Un appareil photo enregistre dans chaque photo des données cachées : les métadonnées EXIF. Lis celles de la photo du vélo, ou dépose une de tes photos (JPEG) : elle est lue sur cet ordinateur et n'est envoyée nulle part.
Chaque appareil connecté à Internet a une adresse IP. Les sites visités la voient et peuvent en déduire une position approximative : en général la ville où le fournisseur d'accès raccorde la box ou l'établissement.
Sur un smartphone, Google Maps peut enregistrer tous les déplacements : c'est la fonction « Vos trajets » (Timeline), autrefois appelée « Historique des positions ». Elle est désactivée par défaut, mais l'application propose souvent de l'activer. On y retrouve, jour par jour, les lieux visités, les trajets et le moyen de transport utilisé.
On peut la désactiver et effacer les données enregistrées depuis les paramètres de l'application (Vos trajets) ou depuis le compte Google (Données et confidentialité). D'autres applications (réseaux sociaux, météo, jeux…) demandent aussi l'accès à la position.
Activité SNT « Localisation, cartographie et mobilité ». Cartes : contours Natural Earth (domaine public) et départements d'après france-geojson (Grégoire David, Licence Ouverte), projection Lambert-93. Simulation d'une partie de MicroPython pour micro:bit exécutée par Skulpt : le matériel réel reste la référence. Police de la matrice : codal-core (Lancaster University), licence MIT.