Le GPS est un système de navigation basé sur un réseau de satellites en orbite autour de la Terre. Ces satellites envoient des signaux qui peuvent être captés par des récepteurs GPS (par exemple, dans les smartphones, les voitures, ou les appareils dédiés).
Satellites :
Le GPS repose sur une constellation d’au moins 24 satellites (aujourd'hui, il y en a généralement plus, pour améliorer la précision).
Ces satellites orbitent à environ 20 000 km d'altitude et sont répartis de manière à couvrir toute la surface de la Terre.
Signal GPS :
Chaque satellite envoie un signal contenant des informations sur son emplacement exact et l’heure précise à laquelle le signal a été envoyé.
Récepteur GPS :
Les appareils équipés de GPS (comme les smartphones ou les navigateurs GPS) captent ces signaux.
En recevant des signaux d'au moins 4 satellites, le récepteur peut calculer :
La position géographique (latitude, longitude).
L'altitude.
L'heure exacte.
Principe de trilatération :
La position est déterminée en mesurant le temps que mettent les signaux des satellites à atteindre le récepteur.
En calculant la distance par rapport à plusieurs satellites, le récepteur peut trianguler sa position.
Le GPS est utilisé dans une multitude de domaines, notamment :
Navigation : Guidage pour les voitures, les avions, les bateaux.
Cartographie : Collecte de données géographiques pour créer des cartes.
Localisation : Suivi en temps réel de personnes ou d'objets (livraisons, animaux, véhicules).
Recherche et sauvetage : Localisation des personnes en danger.
Agriculture : Optimisation des cultures grâce à des systèmes de guidage précis.
Sport et loisirs : Suivi des activités (course à pied, randonnée).
Pour créer un système GPS contrôlé par un Arduino UNO avec un module GPS NEO-6M et un écran LCD I2C 16x2, voici une explication détaillée du fonctionnement et de la mise en œuvre.
1- Module GPS NEO-6M :
Capte les signaux GPS des satellites.
Fournit les coordonnées (latitude, longitude) et d'autres données comme l'altitude et l'heure via un protocole série (UART).
Envoie ces données sous forme de phrases NMEA (National Marine Electronics Association).
2- Arduino UNO :
Lit les données reçues du module GPS.
Analyse les phrases NMEA pour extraire les informations nécessaires (latitude, longitude).
Envoie les données à l'écran LCD I2C pour affichage.
3- LCD I2C 16x2 : affiche les coordonnées GPS ou d'autres informations (par exemple, l'état du module GPS).
Arduino UNO
Module GPS NEO-6M (avec antenne intégrée)
Écran LCD I2C 16x2
Câbles de connexion
Breadboard (Plaque d'essai) :
Module GPS NEO-6M :
VCC → 5V (Arduino UNO).
GND → GND (Arduino UNO).
TX → Pin RX (Arduino UNO, via SoftwareSerial, par exemple Pin 4).
RX → Pin TX (Arduino UNO, via SoftwareSerial, par exemple Pin 3).
LCD I2C 16x2 :
VCC → 5V (Arduino UNO).
GND → GND (Arduino UNO).
SDA → A4 (Arduino UNO).
SCL → A5 (Arduino UNO).
Voici un exemple de programme pour lire les données du module GPS et afficher la latitude et la longitude sur l'écran LCD.
Bibliothèques nécessaires
TinyGPS++ : Pour extraire les données GPS.
LiquidCrystal_I2C : Pour contrôler l'écran LCD I2C.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
#include <TinyGPS++.h> #include <SoftwareSerial.h> #include <LiquidCrystal_I2C.h> // En cas de non fonctionnement, mettez la ligne 8 en // commentaire et retirez le commentaire à la ligne 9. LiquidCrystal_I2C lcd(0x27, 20, 4); // ligne 8 //LiquidCrystal_I2C lcd(0x3F,20,4); // ligne 9 static const int RXPin = 4, TXPin = 3; static const uint32_t GPSBaud = 9600; // The TinyGPS++ object TinyGPSPlus gps; // The serial connection to the GPS device SoftwareSerial ss(RXPin, TXPin); void setup(){ lcd.init(); // initialisation de l'afficheur Serial.begin(9600); ss.begin(GPSBaud); } void loop(){ lcd.backlight(); // active le rétro-éclairage //lcd.clear(); // This sketch displays information every time a new sentence is correctly encoded. while (ss.available() > 0){ gps.encode(ss.read()); if (gps.location.isUpdated()){ Serial.print("Latitude= "); Serial.print(gps.location.lat(), 6); Serial.print(" Longitude= "); Serial.println(gps.location.lng(), 6); // afficher Latiude sur l afficheur LCD lcd.setCursor(0, 0); lcd.print("Latitude="); lcd.print(gps.location.lat()); // afficher Longitude sur l afficheur LCD lcd.setCursor(0, 1); lcd.print("Longitude="); lcd.print(gps.location.lng()); } } } |
Explications du code
Lecture des données GPS :
Le module GPS envoie des phrases NMEA sur son port série.
La bibliothèque TinyGPS++
filtre et décode les phrases pour obtenir les coordonnées.
Affichage des données :
Si les données GPS sont valides, elles sont affichées sur l'écran LCD.
Sinon, un message "Signal GPS..." s'affiche en attendant un signal valide.
Logiciel série :
La bibliothèque SoftwareSerial
est utilisée pour permettre une communication série supplémentaire (entre le GPS et l'Arduino).
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info