Table des matières:
- Étape 1: Composants nécessaires
- Étape 2: Informations sur le GPS
- Étape 3: Module GPS Neo-6M
- Étape 4: Arduino Mega
- Étape 5: IDE Arduino
- Étape 6: Connexions
Vidéo: Interface Arduino Mega avec module GPS (Neo-6M): 8 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Dans ce projet, j'ai montré comment interfacer un module GPS (Neo-6M) avec Arduino Mega. La bibliothèque TinyGPS est utilisée pour afficher les données de longitude et de latitude et TinyGPS++ est utilisé pour afficher la latitude, la longitude, l'altitude, la vitesse et le nombre de satellites sur le moniteur série.
Étape 1: Composants nécessaires
Matériel
- Arduino Mega ==> 30 $
- Module GPS Neo-6M ==> 30$
Logiciel
IDE Arduino
Le coût total du projet est de 60 $
Étape 2: Informations sur le GPS
Qu'est-ce que le GPS
Le Global Positioning System (GPS) est un système de navigation par satellite composé d'au moins 24 satellites. Le GPS fonctionne dans toutes les conditions météorologiques, partout dans le monde, 24 heures sur 24, sans frais d'abonnement ou de configuration.
Comment fonctionne le GPS
Les satellites GPS font le tour de la Terre deux fois par jour sur une orbite précise. Chaque satellite transmet un signal unique et des paramètres orbitaux qui permettent aux appareils GPS de décoder et de calculer l'emplacement précis du satellite. Les récepteurs GPS utilisent ces informations et cette trilatération pour calculer l'emplacement exact d'un utilisateur. Essentiellement, le récepteur GPS mesure la distance à chaque satellite par le temps qu'il faut pour recevoir un signal transmis. Avec des mesures de distance à partir de quelques satellites supplémentaires, le récepteur peut déterminer la position d'un utilisateur et l'afficher.
Pour calculer votre position 2D (latitude et longitude) et suivre le mouvement, un récepteur GPS doit être verrouillé sur le signal d'au moins 3 satellites. Avec 4 satellites ou plus en vue, le récepteur peut déterminer votre position 3D (latitude, longitude et altitude). Généralement, un récepteur GPS suivra 8 satellites ou plus, mais cela dépend de l'heure de la journée et de l'endroit où vous vous trouvez sur la terre. Une fois votre position déterminée, l'unité GPS peut calculer d'autres informations, telles que
- La vitesse
- Palier
- Pister
- Distance de trajet
- Distance jusqu'à destination
Qu'est-ce qu'un signal
Les satellites GPS transmettent au moins 2 signaux radio de faible puissance. Les signaux voyagent en ligne de mire, ce qui signifie qu'ils traverseront les nuages, le verre et le plastique, mais ne traverseront pas la plupart des objets solides, tels que les bâtiments et les montagnes. Cependant, les récepteurs modernes sont plus sensibles et peuvent généralement suivre à travers les maisons. Un signal GPS contient 3 types d'informations différents
Code pseudo-aléatoire
C'est une pièce d'identité code qui identifie quel satellite transmet des informations. Vous pouvez voir de quels satellites vous recevez des signaux sur la page satellite de votre appareil.
Données éphémérides
Les données d'éphéméride sont nécessaires pour déterminer la position d'un satellite et donnent des informations importantes sur la santé d'un satellite, la date et l'heure actuelles.
Données de l'almanach
Les données de l'almanach indiquent au récepteur GPS où chaque satellite GPS doit se trouver à tout moment de la journée et affichent les informations orbitales pour ce satellite et tous les autres satellites du système.
Étape 3: Module GPS Neo-6M
Le module GPS NEO-6M est illustré dans la figure ci-dessous. Il est livré avec une antenne externe et n'est pas livré avec des broches d'en-tête. Il faudra donc le souder.
Présentation du module GPS NEO-6M
Puce GPS NEO-6M
Le cœur du module est une puce GPS NEO-6M de u-blox. Il peut suivre jusqu'à 22 satellites sur 50 canaux et atteint le plus haut niveau de sensibilité de l'industrie, à savoir -161 dB de suivi, tout en ne consommant que 45 mA de courant d'alimentation. Le moteur de positionnement u-blox 6 dispose également d'un temps de mise au point initial (TTFF) inférieur à 1 seconde. L'une des meilleures fonctionnalités de la puce est le mode d'économie d'énergie (PSM). Il permet de réduire la consommation d'énergie du système en commutant sélectivement des parties du récepteur sur ON et OFF. Cela réduit considérablement la consommation d'énergie du module à seulement 11 mA, ce qui le rend adapté aux applications sensibles à l'alimentation comme les montres-bracelets GPS. Les broches de données nécessaires de la puce GPS NEO-6M sont réparties en en-têtes de pas de 0,1″. Cela inclut les broches requises pour la communication avec un microcontrôleur via UART.
Remarque:- Le module prend en charge le débit en bauds de 4800bps à 230400bps avec un baud par défaut de 9600.
Indicateur LED de position fixe
Il y a une LED sur le module GPS NEO-6M qui indique l'état de la position fixe. Il clignotera à des rythmes différents selon l'état dans lequel il se trouve
- Pas de clignotement ==> signifie qu'il recherche des satellites
- Clignote toutes les 1s - signifie que la position fixe est trouvée
Régulateur LDO 3.3V
La tension de fonctionnement de la puce NEO-6M est de 2,7 à 3,6 V. Mais, le module est livré avec un régulateur 3V3 à très faible décrochage MIC5205 de MICREL. Les broches logiques sont également tolérantes à 5 volts, nous pouvons donc facilement les connecter à un Arduino ou à n'importe quel microcontrôleur logique 5 V sans utiliser de convertisseur de niveau logique.
Batterie et EEPROM
Le module est équipé d'une EEPROM série à deux fils HK24C32. Il mesure 4 Ko et est connecté à la puce NEO-6M via I2C. Le module contient également une pile bouton rechargeable qui agit comme un super-condensateur.
Une EEPROM avec batterie permet de conserver la RAM sauvegardée par batterie (BBR). Le BBR contient les données d'horloge, les dernières données de position (données d'orbite GNSS) et la configuration du module. Mais il n'est pas destiné au stockage permanent de données.
Comme la batterie conserve l'horloge et la dernière position, le temps de première correction (TTFF) est considérablement réduit à 1 s. Cela permet des verrouillages de position beaucoup plus rapides.
Sans la batterie, le GPS démarre toujours à froid, de sorte que le verrouillage GPS initial prend plus de temps. La batterie est automatiquement chargée lorsque l'alimentation est appliquée et conserve les données jusqu'à deux semaines sans alimentation.
Brochage
GND est la broche de terre et doit être connecté à la broche GND de l'Arduino
La broche TxD (émetteur) est utilisée pour la communication série
La broche RxD (Receiver) est utilisée pour la communication série
VCC alimente le module. Vous pouvez le connecter directement à la broche 5V de l'Arduino
Étape 4: Arduino Mega
Arduino est une plate-forme électronique open source basée sur du matériel et des logiciels faciles à utiliser. Les cartes Arduino sont capables de lire les entrées - lumière sur un capteur, un doigt sur un bouton ou un message Twitter - et les transformer en sortie - activer un moteur, allumer une LED, publier quelque chose en ligne. Vous pouvez dire à votre carte quoi faire en envoyant un ensemble d'instructions au microcontrôleur de la carte. Pour ce faire, vous utilisez le langage de programmation Arduino (basé sur le câblage) et le logiciel Arduino (IDE), basé sur le traitement.
Arduino méga
Arduino Mega 2560 est une carte microcontrôleur basée sur Atmega2560.
- Il y a 54 broches d'E/S numériques et 16 broches analogiques incorporées sur la carte qui rendent cet appareil unique et se démarque des autres. Sur les 54 E/S numériques, 15 sont utilisées pour le PWM (modulation de largeur d'impulsion).
- Un oscillateur à cristal de fréquence 16MHz est ajouté sur la carte.
- La carte est livrée avec un port de câble USB qui est utilisé pour connecter et transférer le code de l'ordinateur à la carte.
- La prise d'alimentation CC est couplée à la carte qui est utilisée pour alimenter la carte.
- La carte est livrée avec deux régulateurs de tension, c'est-à-dire 5 V et 3,3 V, ce qui permet de réguler la tension selon les besoins.
- Il y a un bouton de réinitialisation et 4 ports série matériels appelés USART qui produisent une vitesse maximale pour la configuration de la communication.
- Il y a trois façons d'alimenter la carte. Vous pouvez soit utiliser un câble USB pour alimenter la carte et transférer le code vers la carte, soit l'alimenter en utilisant Vin de la carte ou via la prise d'alimentation ou la pâte.
Caractéristiques
Brochage
Broche Description
- 5V & 3.3V ==>Cette broche est utilisée pour fournir une tension de sortie régulée autour de 5V. Cette alimentation régulée alimente le contrôleur et les autres composants de la carte. Il peut être obtenu à partir de Vin de la carte ou d'un câble USB ou d'une autre alimentation en tension régulée 5V. Tandis qu'une autre régulation de tension est fournie par la broche 3.3V. La puissance maximale qu'il peut tirer est de 50 mA.
- GND ==> Il y a 5 broches de terre disponibles sur la carte, ce qui la rend utile lorsque plus d'une broche de terre est requise pour le projet.
- Reset ==> Cette broche est utilisée pour réinitialiser la carte. Le réglage de cette broche sur LOW réinitialisera la carte.
- Vin ==> C'est la tension d'entrée fournie à la carte qui va de 7V à 20V. La tension fournie par la prise d'alimentation est accessible via cette broche. Cependant, la tension de sortie via cette broche vers la carte sera automatiquement réglée à 5V.
- Communication série ==> RXD et TXD sont les broches série utilisées pour transmettre et recevoir des données série, c'est-à-dire que Rx représente la transmission de données tandis que Tx sert à recevoir des données. Il existe quatre combinaisons de ces broches série où Serail 0 contient RX (0) et TX (1), Serial 1 contient TX (18) et RX (19), Serial 2 contient TX (16) et RX (17), et la série 3 contient TX(14) et RX(15).
- Interruptions externes ==> Six broches sont utilisées pour créer des interruptions externes, c'est-à-dire interruption 0 (0), interruption 1 (3), interruption 2 (21), interruption 3 (20), interruption 4 (19), interruption 5 (18). Ces broches produisent des interruptions de plusieurs manières, c'est-à-dire en fournissant une valeur FAIBLE, un front montant ou descendant ou en modifiant la valeur des broches d'interruption.
- LED ==> Cette carte est livrée avec une LED intégrée connectée à la broche numérique 13. La valeur HIGH sur cette broche allumera la LED et la valeur LOW l'éteindra.
- AREF ==> AREF signifie Analog Reference Voltage qui est une tension de référence pour les entrées analogiques.
- Broches analogiques ==> Il y a 16 broches analogiques incorporées sur la carte étiquetées A0 à A15. Il est important de noter que toutes ces broches analogiques peuvent être utilisées comme broches d'E/S numériques. Chaque broche analogique est livrée avec une résolution de 10 bits. Ces broches peuvent mesurer de la terre à 5V. Cependant, la valeur supérieure peut être modifiée à l'aide de la fonction AREF et analogReference().
- I2C ==> Deux broches 20 et 21 prennent en charge la communication I2C où 20 représente SDA (Serial Data Line principalement utilisé pour contenir les données) et 21 représente SCL (Serial Clock Line principalement utilisé pour assurer la synchronisation des données entre les appareils)
- Communication SPI ==> SPI signifie Serial Peripheral Interface utilisé pour la transmission de données entre le contrôleur et d'autres composants périphériques. Quatre broches, c'est-à-dire 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) sont utilisées pour la communication SPI.
Étape 5: IDE Arduino
Ici, je suppose que vous avez déjà installé Arduino IDE.
1. Téléchargez la bibliothèque requise ci-dessous
Bibliothèque TinyGPS
2. Après l'avoir téléchargé. Extrayez-le et déplacez-le dans le dossier C:\Users\…\Documents\Arduino\libraries assurez-vous qu'il n'y a pas (-).
3. Ouvrez l'IDE Arduino et copiez le code de la section programme.
4. Ensuite, sélectionnez la carte pour cela, allez dans Outils ==> Cartes ==> sélectionnez la carte ici, nous utilisons Arduino Mega 2560
5. Après avoir sélectionné la carte, sélectionnez le port pour cela, allez dans Outils ==> Ports
6. Après avoir sélectionné la carte et le port, cliquez sur télécharger.
7. Une fois le code téléchargé, ouvrez le terminal série pour voir la sortie.
Étape 6: Connexions
Arduino MEGA ==> GPS NEO-6M
- 3.3V ==> VCC
- GND ==> GND
- Tx1 (18) ==> Rx
- Rx (19) ==> Tx
Vous pouvez également utiliser Serial2 ou Serial3 au lieu de Serial1
Conseillé:
Horloge GPS Arduino avec heure locale utilisant le module NEO-6M : 9 étapes
Horloge GPS Arduino avec heure locale à l'aide du module NEO-6M : Dans ce tutoriel, nous allons apprendre comment obtenir l'heure actuelle des satellites à l'aide d'arduino.Regardez la vidéo
Mega RasPi - un Raspberry Pi dans un Sega Mega Drive / Genesis : 13 étapes (avec photos)
Mega RasPi - un Raspberry Pi dans un Sega Mega Drive / Genesis : Ce guide vous guide à travers la conversion d'un ancien Sega Mega Drive en une console de jeu rétro, à l'aide d'un Raspberry Pi. J'ai passé d'innombrables heures de mon enfance à jouer à des jeux vidéo sur ma Sega Mega Drive. La plupart de mes amis en avaient un aussi, alors nous
Comment interfacer le module GPS (NEO-6m) avec Arduino : 7 étapes (avec photos)
Comment interfacer un module GPS (NEO-6m) avec Arduino : Dans ce projet, j'ai montré comment interfacer un module GPS avec Arduino UNO. Les données de longitude et de latitude sont affichées sur l'écran LCD et l'emplacement peut être consulté sur l'application.Liste du matériel Arduino Uno ==> 8 $ Module GPS Ublox NEO-6m ==> 15 $ 16x
Tutoriel Comment créer une interface d'affichage à 4 chiffres avec Arduino UNO : 6 étapes (avec images)
Tutoriel Comment utiliser l'interface d'affichage à 4 chiffres avec Arduino UNO: Ce tutoriel va vous apprendre quelques bases sur l'utilisation de l'affichage à 4 chiffres avec Arduino UNO
Accès manuel du GPS Ublox Neo 6M avec Raspberry Pi B+ : 3 étapes
Accès manuel du GPS Ublox Neo 6M Avec Raspberry Pi B+ : Raspberry Pi est un mini PC très compatible pour divers modules qui sont assez simples d'utilisation. Fondamentalement, c'est presque la même chose qu'un PC mais peut être contrôlé avec GPIO à partir de Raspberry Pi. Raspberry Pi prend également en charge plusieurs lignes de communication, une o