So verwenden Sie das GY-271-Modul mit Arduino, um einen digitalen Kompass zu erstellen

  • Der GY-271 misst das Magnetfeld in drei Achsen und kommuniziert seine Daten über I2C.
  • Die Berechnung der Nordausrichtung erfordert eine Korrektur der magnetischen Deklination.
  • Der GY-271 wird in der Robotik, Drohnen und autonomen Navigationssystemen eingesetzt.

GY-271 Arduino-Modul

Bei dieser Gelegenheit werden wir über einen der Sensoren sprechen, der in Arduino-Projekten im Zusammenhang mit Navigation und Orientierung am häufigsten verwendet wird: den GY-271. Dieses Modul enthält den Sensor HMC5883LDabei handelt es sich um ein dreiachsiges Magnetometer, das in der Lage ist, Magnetfelder zu erfassen und uns daher eine Orientierung bezüglich des magnetischen Nordpols zu geben.

Wenn Sie darüber nachdenken, es in ein Projekt mit Arduino zu integrieren, werden wir Ihnen in diesem Artikel alle Details erläutern: von seinen Eigenschaften über den Anschluss und die Programmierung bis hin zu Anwendungsbeispielen und Tipps, um die beste Präzision zu erzielen. Lesen Sie also weiter und erfahren Sie, wie Sie mit Arduino einen digitalen Kompass erstellen!

Was ist ein GY-271-Sensor?

Der Sensor GY-271 Es handelt sich um ein Modul, das das Magnetometer integriert HMC5883L. Dieser Chip ist in der Lage, das Magnetfeld in den drei Achsen (X, Y und Z) zu messen und anhand dieser Daten ist es möglich, die Ausrichtung in Bezug auf das Erdmagnetfeld zu ermitteln. Dieser Sensor verfügt über eine hohe Präzision und wird häufig in technischen Projekten eingesetzt. Roboternavigation oder autonome Fahrzeuge.

Die Kommunikation zwischen diesem Modul und dem Arduino erfolgt über I2C-Bus, was die Gewinnung der Messdaten erheblich erleichtert. Der HMC5883L verfügt je nach Konfiguration über einen Messbereich von ±0.88 Gauss bis ±8.1 Gauss und deckt damit ein breites Anwendungsspektrum ab.

Anschlüsse und Montage mit Arduino

Das Anschließen des GY-271 an Ihr Arduino ist wirklich einfach. Sie benötigen lediglich ein paar Kabel und folgen dem Grunddiagramm:

  • Verbinden Sie den Stift GND des Moduls mit dem GND-Pin des Arduino
  • Der Stecker VCC des GY-271 muss an die 5V des Arduino angeschlossen werden
  • Verbinden Sie den Stift SDA des GY-271 mit Pin A4 des Arduino (oder SCL bei einigen Modellen wie dem Mega)
  • Der Stecker SCL sollte an Pin A5 des Arduino gehen (oder in manchen Fällen an SDA)

Sobald Sie alles angeschlossen haben, ist das Modul betriebsbereit. Wenn Ihr Ziel darin besteht, Magnetfelddaten zu erhalten und einen digitalen Kompass zu erstellen, verfügen Sie bereits über die Grundlagen. Bedenken Sie jedoch, dass die entorno Die Stelle, an der Sie den Sensor platzieren, muss frei sein magnetische Interferenz, da in der Nähe befindliche Metalle oder elektronische Geräte die Messungen verändern können.

Codebeispiele mit Arduino

Nachfolgend zeigen wir Ihnen ein einfaches Beispiel, wie Sie die X-, Y- und Z-Werte des Magnetfelds mithilfe der entsprechenden Bibliothek lesen können. Diese Bibliothek erleichtert die I2C-Kommunikation und Sensorablesungen:

#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);
}

Dieser Code ist ideal, um die Komponenten des Magnetfelds in den drei Achsen zu erhalten. Sobald Sie diese Werte haben, können Sie mit der Funktion die Ausrichtung des Sensors in Bezug auf den magnetischen Norden berechnen atan2, wodurch wir die X- und Y-Achsen in einen Winkel umrechnen können.

Berechnung des Winkels in Bezug auf Norden

Da Sie nun über die Messwerte des Magnetfelds verfügen, besteht der nächste Schritt darin, die Ausrichtung in Bezug auf den magnetischen Nordpol zu berechnen. Dazu können Sie die folgende Formel verwenden:

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

Diese Berechnung liefert uns einen Winkel in Grad, der die Richtung zum magnetischen Nordpol darstellt. Sie müssen jedoch Folgendes berücksichtigen magnetische Deklination, das ist der Unterschied zwischen dem magnetischen Norden und dem geografischen Norden. Abhängig von Ihrem geografischen Standort kann dieser Wert variieren und es ist wichtig, ihn zu korrigieren, um einen genaueren Kompass zu erhalten.

Zusätzliche Einstellungen und Betriebsarten

Der GY-271 bietet mehrere Konfigurationen, mit denen Sie den Betrieb an Ihre Bedürfnisse anpassen können. Sie können beispielsweise zwei auswählen Betriebsarten:

  • Kontinuierlicher Weg: Das Magnetometer führt kontinuierlich Messungen durch und aktualisiert die entsprechenden Register (X, Y, Z).
  • Einzelmessmodus: Der Sensor nimmt nur dann einen Messwert vor, wenn der Arduino ihn anfordert, was nützlich sein kann, wenn Sie Energie sparen möchten.

Darüber hinaus können Sie die Empfindlichkeit des Sensors anpassen, indem Sie die ändern medizinischer Rang. Die verfügbaren Bereiche reichen von ±0.88 Ga bis ±8.1 Ga, sodass Sie den Sensor an unterschiedliche Umgebungen und Arbeitsbedingungen anpassen können.

Denken Sie daran, dass Sie zum Ändern des Messbereichs die Funktion verwenden müssen setGain aus der Bibliothek, mit der Sie die Sensorverstärkung abhängig vom magnetischen Bereich, den Sie messen möchten, einstellen können.

GY-271-Anwendungen

Der GY-271-Sensor hat zahlreiche Anwendungen im Bereich Robotik und Navigation. Da es sich um ein relativ kostengünstiges und einfach zu implementierendes Gerät handelt, wird es in folgenden Projekten eingesetzt:

  • autonome Rover: Ermöglicht Robotern zu erkennen, in welche Richtung sie blicken.
  • Quadcopter: Hilft dabei, die Ausrichtung der Drohne in Bezug auf den Norden im Flug beizubehalten.
  • Navigationssysteme: Jedes Fahrzeug, das seine Position und Ausrichtung kennen muss, kann von diesem Modul profitieren.

Eines der merkwürdigsten Details ist, dass das GY-271 zwar unter kontrollierten Bedingungen eine hohe Präzision aufweist, seine Messung jedoch dadurch beeinträchtigt werden kann InterferenzB. das Vorhandensein von Metallen oder elektromagnetischen Feldern in der Nähe. Dies kann mithilfe von Techniken korrigiert werden Kalibrierung kombiniert mit Beschleunigungsmessern oder Gyroskopen (IMU), was typisch für fortschrittlichere Navigationssysteme ist.

Die Kombination dieses Sensors mit Beschleunigungsmessern ermöglicht beispielsweise den Bau präziserer Geräte, die resistent gegen magnetisches Rauschen sind, was eine Reihe von Möglichkeiten für den Einsatz in Projekten mit Arduino und anderen Mikrocontrollern eröffnet ...


Schreiben Sie den ersten Kommentar

Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.