Comment utiliser le module GY-271 avec Arduino pour créer une boussole numérique

  • Le GY-271 mesure le champ magnétique sur trois axes et communique ses données via I2C.
  • Le calcul de l'orientation par rapport au nord nécessite de corriger la déclinaison magnétique.
  • Le GY-271 est utilisé dans la robotique, les drones et les systèmes de navigation autonomes.

Module Arduino GY-271

A cette occasion, nous allons parler de l'un des capteurs les plus utilisés dans les projets Arduino liés à la navigation et à l'orientation : le GY-271. Ce module intègre le capteur HMC5883L, qui est un magnétomètre à trois axes capable de détecter les champs magnétiques et donc de nous donner une orientation par rapport au nord magnétique.

Si vous envisagez de l'intégrer dans un projet avec Arduino, tout au long de cet article nous vous expliquerons tous ses détails : de ses caractéristiques, comment le connecter et le programmer, jusqu'aux exemples d'utilisation et astuces pour obtenir la meilleure précision. Alors continuez à lire et découvrez comment créer une boussole numérique avec Arduino !

Qu'est-ce que le capteur GY-271 ?

Le capteur GY-271 C'est un module qui intègre le magnétomètre HMC5883L. Cette puce est capable de mesurer le champ magnétique dans les trois axes (X, Y et Z) et, avec ces données, il est possible de connaître l'orientation par rapport au champ magnétique terrestre. Ce capteur est de haute précision et est largement utilisé dans les projets d'ingénierie. navigation des robots ou des véhicules autonomes.

La communication entre ce module et l'Arduino se fait via le Bus I2C, ce qui facilite grandement l’obtention des données mesurées. Le HMC5883L dispose d'une plage de mesure de ±0.88 Gauss à ±8.1 Gauss, selon la configuration, couvrant une large gamme d'applications.

Connexions et assemblage avec Arduino

Connecter le GY-271 à votre Arduino est très simple, vous avez juste besoin de quelques câbles et suivez le schéma de base :

  • Connectez la broche GND du module avec la broche GND de l'Arduino
  • L'épingle VCC du GY-271 doit être connecté au 5V de l'Arduino
  • Connectez la broche SDA du GY-271 avec la broche A4 de l'Arduino (ou SCL dans certains modèles comme le Mega)
  • L'épingle SCL devrait aller à la broche A5 de l'Arduino (ou SDA dans certains cas)

Une fois que tout est connecté, le module sera prêt à commencer à fonctionner. Si votre objectif est d’obtenir des données sur le champ magnétique et de créer une boussole numérique, vous possédez déjà les bases. Cependant, gardez à l'esprit que le entorno l'endroit où vous placez le capteur doit être libre de interférence magnétique, car les métaux ou appareils électroniques à proximité peuvent altérer les mesures.

Exemples de code avec Arduino

Ci-dessous, nous vous montrons un exemple de base sur la façon de lire les valeurs X, Y et Z du champ magnétique à l'aide de la bibliothèque appropriée. Cette bibliothèque facilitera la communication I2C et les lectures des capteurs :

#include <Wire.h>
#include <HMC5883L.h>

HMC5883L compass;
int16_t mx, my, mz;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  compass.initialize();
}

void loop() {
  compass.getHeading(&mx, &my, &mz);
  Serial.print("X: ");
  Serial.print(mx);
  Serial.print(" Y: ");
  Serial.print(my);
  Serial.print(" Z: ");
  Serial.println(mz);
  delay(500);
}

Ce code est idéal pour obtenir les composantes du champ magnétique dans les trois axes. Une fois ces valeurs obtenues, vous pouvez calculer l'orientation du capteur par rapport au nord magnétique grâce à la fonction atan2, ce qui nous permettra de convertir les axes X et Y en angle.

Calcul de l'angle par rapport au nord

Maintenant que vous disposez des lectures du champ magnétique, l’étape suivante consiste à calculer l’orientation par rapport au nord magnétique. Pour ce faire, vous pouvez utiliser la formule suivante :

float angulo = atan2(my, mx) * (180 / PI);

Ce calcul nous fournira un angle en degrés qui représente la direction vers le nord magnétique. Cependant, vous devez tenir compte du déclinaison magnétique, qui correspond à la différence entre le nord magnétique et le nord géographique. Selon votre situation géographique, cette valeur peut varier, et il est important de la corriger pour obtenir une boussole plus précise.

Paramètres et modes de fonctionnement supplémentaires

Le GY-271 propose plusieurs configurations qui vous permettront d'ajuster son fonctionnement selon vos besoins. Par exemple, vous pouvez en choisir deux modes de fonctionnement:

  • Manière continue: Le magnétomètre effectue en continu des mesures et met à jour les registres correspondants (X, Y, Z).
  • Mode de mesure unique: Le capteur ne prend une lecture que lorsque l'Arduino le demande, ce qui peut être utile si vous souhaitez économiser de l'énergie.

De plus, vous pouvez régler la sensibilité du capteur en modifiant le gamme de médicaments. Les plages disponibles vont de ±0.88 Ga à ±8.1 Ga, vous permettant d'adapter le capteur à différents environnements et conditions de travail.

N'oubliez pas que pour modifier la plage de mesure, vous devez utiliser la fonction définirGain de la bibliothèque, qui permet de régler le gain du capteur en fonction de la plage magnétique que vous souhaitez mesurer.

Applications GY-271

Le capteur GY-271 a de nombreuses applications dans le domaine de la robotique et de la navigation. Étant un appareil relativement bon marché et facile à mettre en œuvre, il est utilisé dans des projets tels que :

  • rovers autonomes: Permet aux robots de savoir dans quelle direction ils font face.
  • Quadcoptères: Aide à maintenir l'orientation du drone par rapport au nord en vol.
  • systèmes de navigation: Tout véhicule ayant besoin de connaître sa position et son orientation peut bénéficier de ce module.

L'un des détails les plus curieux est que, bien que le GY-271 ait une grande précision dans des conditions contrôlées, sa mesure peut être affectée par interférence, comme la présence de métaux ou de champs électromagnétiques à proximité. Cela peut être corrigé en utilisant des techniques étalonnage combiné avec des accéléromètres ou des gyroscopes (IMU), ce qui est typique des systèmes de navigation plus avancés.

La combinaison de ce capteur avec des accéléromètres, par exemple, permet de construire des dispositifs plus précis et résistants au bruit magnétique, ce qui ouvre une gamme de possibilités d'utilisation dans des projets avec Arduino et autres microcontrôleurs...


Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.