Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Comment interfacer Arduino Mega avec le module GPS NEO-6M

Composants et fournitures

Arduino Mega 2560
× 1
module GPS u-blox NEO-6M
× 1

Applications et services en ligne

Arduino IDE

À propos de ce projet

Ce que j'ai trouvé, c'est qu'il n'y a pas de tutoriel pour l'interfaçage d'Arduino Mega avec le module GPS NEO-6M, j'ai donc décidé d'en créer un. J'espère que vous aimez!

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 $.

Informations sur le GPS

Qu'est-ce que le GPS ?

Le système de positionnement global (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 ni 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 la position exacte 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, le récepteur peut déterminer votre position en 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

  • Vitesse
  • Roulement
  • Suivre
  • 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 d'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.

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 une réduction de 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 à chute ultra-faible 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 &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 (GNSS ou données binaires) 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 sur l'Arduino.
  • La broche TxD (émetteur) est utilisée pour la communication série.
  • La broche RxD (récepteur) est utilisée pour la communication série.
  • VCC alimente le module. Vous pouvez le connecter directement à la broche 5V de l'Arduino.

Arduino Méga

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 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émarquent des autres.Sur 54 E/S numériques, 15 sont utilisées pour le PWM (modulation de largeur d'impulsion).
  • Un oscillateur à cristal de fréquence 16MHz.
  • 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, qui offrent la possibilité 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 existe 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.

Spécifications

Brochage

Description de la broche

  • 5 V et 3,3 V ==>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.
  • Réinitialiser ==> 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 en 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 à 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.
  • Épingles 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, à savoir 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) sont utilisées pour la communication SPI.

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. Sélectionnez ensuite 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.

Connexions

Arduino MEGA ==> GPS NEO-6M

  • 3.3V ==> VCC
  • GND ==> GND
  • Tx1 (18) ==> Rx
  • Rx1 (19) ==> Tx

Vous pouvez également utiliser Serial2 ou Serial3 au lieu de Serial1

Broches série2

  • Tx2 (16) ==> Rx
  • Rx2 (17) ==> Tx

Broches série3

  • Tx3 (14) ==> Rx
  • Rx3 (15) ==> Tx

Résultat

Code

  • Arduinomega_GPS
Arduinomega_GPSArduino
//Connectez-vous avec les broches 18 et 19#include //long lat,lon ; // crée une variable pour la latitude et la longitude objectfloat lat,lon;TinyGPS gps; // créer gps objectvoid setup(){Serial.begin(57600); // connect serialSerial.println("Le signal reçu par GPS :");Serial1.begin(9600); // connecter le capteur gps} void loop(){ while(Serial1.available()){ // vérifier les données gps if(gps.encode(Serial1.read()))// encoder les données gps { gps.f_get_position(&lat ,&lon); // obtient la latitude et la longitude Serial.print("Position:"); //Latitude Serial.print("Latitude:"); Serial.print(lat,6); Serial.print(","); //Longitude Serial.print("Longitude:"); Serial.println(lon,6); } }} /*//Connectez-vous avec les broches 16 et 17#include //long lat,lon; // crée une variable pour la latitude et la longitude objectfloat lat,lon;TinyGPS gps; // créer gps objectvoid setup(){Serial.begin(57600); // connect serialSerial.println("Le signal reçu par GPS :");Serial2.begin(9600); // connecter le capteur gps} void loop(){ while(Serial2.available()){ // vérifier les données gps if(gps.encode(Serial2.read()))// encoder les données gps { gps.f_get_position(&lat ,&lon); // obtient la latitude et la longitude Serial.print("Position:"); //Latitude Serial.print("Latitude:"); Serial.print(lat,6); Serial.print(","); //Longitude Serial.print("Longitude:"); Serial.println(lon,6); } }}*//*//Connectez-vous avec les broches 14 et 15#include //long lat,lon; // crée une variable pour la latitude et la longitude objectfloat lat,lon;TinyGPS gps; // créer gps objectvoid setup(){Serial.begin(57600); // connect serialSerial.println("Le signal reçu par GPS :");Serial3.begin(9600); // connecter le capteur gps} void loop(){ while(Serial3.available()){ // vérifier les données gps if(gps.encode(Serial3.read()))// encoder les données gps { gps.f_get_position(&lat ,&lon); // obtient la latitude et la longitude Serial.print("Position:"); //Latitude Serial.print("Latitude:"); Serial.print(lat,6); Serial.print(","); //Longitude Serial.print("Longitude:"); Serial.println(lon,6); } }}*/

Schémas


Processus de fabrication

  1. Capturer les gouttes d'eau avec Arduino
  2. Jouer avec Nextion Display
  3. module GPS u-blox LEA-6H 02 avec Arduino et Python
  4. Comment lire la température et l'humidité sur Blynk avec DHT11
  5. Comment faire de la musique avec un Arduino
  6. Comment utiliser NMEA-0183 avec Arduino
  7. Affichage de localisation GPS avec écrans GPS et écran TFT
  8. Comment utiliser Modbus avec Arduino
  9. Enregistrer les informations GPS sur la carte MicorSD avec Visuino