Prochaine révision | Révision précédente Prochaine révisionLes deux révisions suivantes |
materiels:capteurs:geolocalisation:geolocalisation [2022/06/29 11:31] – créée phil | materiels:capteurs:geolocalisation:geolocalisation [2024/05/04 20:09] – [1.1 Géolocalisation] phil |
---|
{{ :suivant.png?nolink&30|}} {{ :retour.png?nolink&30|}} [[materiels:accueilmateriels|{{ :iconemaison.jpg?nolink&30|Sommaire Matériels}}]] | [[materiels:accueilmateriels|{{ :iconemaison.jpg?nolink&30|Sommaire Matériels}}]] |
| |
===== Capteurs - Géolocalisation ===== | ===== Capteurs - Géolocalisation ===== |
| |
[Mise à jour le 28/6/2022] | [Mise à jour le 4/5/2024] |
| |
| \\ |
| |
| |
| |
| |
| |
| {{ :materiels:capteurs:geolocalisation:gps01.gif?nolink&200|}} |
==== 1. Généralités ==== | ==== 1. Généralités ==== |
| === 1.1 Géolocalisation === |
| La géolocalisation est un procédé permettant de positionner un objet, un véhicule, ou une personne sur un plan ou une carte à l'aide de ses coordonnées géographiques. Certains systèmes permettent également de connaître l'altitude (géolocalisation - dans l'espace - en 3D). <html><a href="https://fr.wikipedia.org/wiki/G%C3%A9olocalisation" target="_blank">Wikipédia</a></html> |
| |
| * **Identifier** sa position sur une carte à l'aide de ses coordonnées GPS en allant sur <html><a href="https://www.coordonnees-gps.fr/" target="_blank"><b>coordonnees-gps.fr/</b></a></html> |
| |
| <callout type="tip" title="Quel GPS ?" icon="true">**Consulter** le guide de sélection d'un GPS sur <html><a href=" https://wiki.seeedstudio.com/GPS-Modules-Selection-Guide" target="_blank"><b>seeedstudio.com</b></a></html></callout> |
| |
| === 1.2 Trame NMEA 0183 === |
| La norme NMEA 0183 est une spécification pour la communication entre équipements marins, dont les équipements GPS. Elle est définie et contrôlée par la National Marine Electronics Association (NMEA [archive]), association américaine de fabricants d'appareils électroniques maritimes, basée à Severna Park au Maryland (États-Unis d'Amérique).<html><a href="https://fr.wikipedia.org/wiki/NMEA_0183" target="_blank">Wikipédia</a></html> |
| |
| <callout type="info" title="Structure" icon="true"> |
| * Les trames NMEA sont codées au format ASCII et sont de la forme : **$ <//talker ID//> <//Trame type//> [ , <//données//> , <//données//>] * <//checksum//>** |
| |
| * **Décodeur** de trames NMEA en ligne, informations de géolocalisation et affichage de la position sur une carte : <html><a href="https://rl.se/gprmc" target="_blank"><b>ici</b></a></html> |
| |
| * **Générateur** de trames NMEA en ligne : <html><a href="https://nmeagen.org/" target="_blank"><b>ici</b></a></html> |
| </callout>{{ :materiels:capteurs:geolocalisation:tramenmea.png?nolink |}} |
| <callout type="warning" color="red" title="GNGGA" icon="true">L’identifiant **$GNGGA** est utilisé par certains récepteurs GNSS (souvent d’origine chinoise comme le Air530) pour transmettre les données de position. Voir <html><a href="https://openrtk.readthedocs.io/en/latest/communication_port/nmea.html" target="_blank"><b>ici</b></a></html> pour la description des champs. |
| </callout> |
| |
| \\ |
| |
| |
==== 2. GPS ==== | ==== 2. GPS ==== |
=== 2.1 Grove (Air530) === | === 2.1 Grove (Air530) === |
{{ :materiels:capteurs:geolocalisation:grove_air530.png?nolink|}} | {{ :materiels:capteurs:geolocalisation:grove_air530.png?nolink|}} |
* //Source// : <html><a href="https://wiki.seeedstudio.com/Grove-GPS-Air530/" target="_blank">wiki</a></html> Seeed studio | == 2.1.1 Présentation == |
| * //**Source**// : <html><a href="https://wiki.seeedstudio.com/Grove-GPS-Air530/" target="_blank"><b>wiki</b></a></html> Seeed studio |
| |
<note>Module GPS économique basé sur un Air530 compatible Grove permettant de connaître sa position en temps réel. Ce module communique avec un microcontrôleur type Arduino ou compatible via une liaison série. Il comporte un circuit RTC permettant la sauvegarde de l'heure et de la date. L'utilisation de ce circuit nécessite une pile CR1220</note> | <callout type="info" icon="true">Module GPS économique basé sur un Air530 compatible Grove permettant de connaître sa position en temps réel. Ce module communique avec un microcontrôleur type Arduino ou compatible via une liaison série. Il comporte un circuit RTC permettant la sauvegarde de l'heure et de la date. L'utilisation de ce circuit nécessite une pile CR1220.</callout> |
| |
* //Distributeur// : <html><a href="https://www.gotronic.fr/art-module-gps-grove-109020022-31996.htm" target="_blank">Gotronic</a></html> | * //**Distributeur**// : <html><a href="https://www.gotronic.fr/art-module-gps-grove-109020022-31996.htm" target="_blank">Gotronic</a></html> |
| |
* //Caractéristiques// | * //**Caractéristiques**// |
* Alimentation: 3,3 ou 5 Vcc | * Alimentation: 3,3 ou 5 Vcc |
* Consommation: 60 mA maxi | * Consommation: 60 mA maxi |
* Compatible: GPS, Beidou, Glonass, Galileo, QZS, SBAS | * Compatible: GPS, Beidou, Glonass, Galileo, QZS, SBAS |
* Température de service: -35 à 85 °C | * Température de service: -35 à 85 °C |
| |
{{ :materiels:capteurs:acrobate.gif?nolink&40|}} | |
* //Documentation// | |
* Guide d'utilisation <html><a href="https://wiki.seeedstudio.com/Grove-GPS-Air530/" target="_blank">ici</a></html> | |
| |
{{ :materiels:capteurs:distance:arduinoico.png?nolink&40|}} | \\ |
* **Un premier exemple pour tester le capteur avec l'IDE Arduino** \\ -> Fichier -> Exemples -> | |
| |
* **Mise en oeuvre du capteur avec un afficheur OLED** | {{ :materiels:capteurs:environnement:code.png?nolink|}} |
* //Description// : | == x.x.x Exemples de code == |
* //Matériels// | <tabs> |
* Carte à microcontrôleur : [[arduino:uc:esp8266|Adafruit Feather Huzzah ESP8266 + Support Particle]] | * [[#tab-air530duino_2|Arduino UNO]] |
* Afficheur : [[materiels:afficheurs:ada1107|Adafruit OLED SH1107]] | * [[#tab-air530pico_2|Rpi Pico (µPython)]] |
* //Code Arduino// | |
| |
| <pane id="tab-air530duino_2"> |
| * //**Ressource**// : <html><a href="https://wiki.seeedstudio.com/Grove-GPS-Air530/" target="_blank">wiki</a></html> | <html><a href="https://docs.arduino.cc/learn/built-in-libraries/software-serial/" target="_blank">SoftwareSerial</a></html> | <html><a href="https://github.com/Glinnes/NMEAParser?tab=readme-ov-file" title="GitHub" target="_blank"><b>Parser NMEA</b></a></html> |
| |
| * //**Exemple**// pour tester le capteur |
| {{ :materiels:capteurs:distance:arduinoico.png?nolink&40|}} |
<code cpp *.cpp> | <code cpp *.cpp> |
| // Testé avec Arduino Uno |
| // TX:2 RX:3 |
| |
| #include <SoftwareSerial.h> |
| |
| SoftwareSerial SoftSerial(2, 3); //(2,3) Arduino Uno (5,6) MKR Zéro ou MKR 1010 |
| unsigned char buffer[64]; // tableau pour la réception de données via le port série |
| int count = 0; // compteur |
| void setup() { |
| SoftSerial.begin(9600); // the SoftSerial baud rate |
| Serial.begin(9600); // the Serial port of Arduino baud rate. |
| } |
| |
| void loop() { |
| if (SoftSerial.available()) // si disponible |
| { |
| while (SoftSerial.available()) // lire les données |
| { |
| buffer[count++] = SoftSerial.read(); // et les écrire dans le tableau |
| if (count == 64) break; // si count = 64 |
| } |
| Serial.write(buffer, count); // écrire le tableau dans la console |
| //Serial.write("\n"); |
| clearBufferArray(); // vider le tableau et |
| count = 0; // raz compteur |
| } |
| if (Serial.available()) // si les données sont disponibles sur le port série matériel ==> les données proviennent d'un PC ou d'un ordinateur portable |
| SoftSerial.write(Serial.read()); // les écrire sur le port série logiciel |
| } |
| |
| |
| void clearBufferArray() // fonction pour effacer le tableau |
| { |
| for (int i = 0; i < count; i++) { |
| buffer[i] = NULL; |
| } // On efface le tableau avec la commande NULL |
| } |
</code> | </code> |
| </pane> |
| <pane id="tab-air530pico_2"> |
| A venir |
| </pane> |
| </tabs> |
| \\ |
| |
{{ :arduino:uc:platformioico.png?nolink&50|}} | === 2.2 Sparkfun Neo M9N (ublox) === |
<note tip><html><a href="https://webge.fr/doc/wikis/code/Arduino/ARD_PIO_ESP8266_????.zip" target="_blank">Télécharger</a></html> le projet PlatformIO pour VSCode.</note> | |