Sådan bruger du GY-271-modulet med Arduino til at skabe et digitalt kompas

  • GY-271 måler magnetfeltet i tre akser og kommunikerer dets data via I2C.
  • Beregning af orienteringen i forhold til nord kræver korrektion af den magnetiske deklination.
  • GY-271 bruges i robotteknologi, droner og autonome navigationssystemer.

GY-271 Arduino modul

Ved denne lejlighed vil vi tale om en af ​​de sensorer, der er mest brugt i Arduino-projekter relateret til navigation og orientering: GY-271. Dette modul indeholder sensoren HMC5883L, som er et tre-akset magnetometer, der er i stand til at detektere magnetiske felter og derfor give os orientering i forhold til magnetisk nord.

Hvis du overvejer at integrere det i et projekt med Arduino, vil vi gennem denne artikel forklare alle dets detaljer: fra dets egenskaber, hvordan man forbinder og programmerer det, til eksempler på brug og tips til at opnå den bedste præcision. Så læs videre og find ud af, hvordan du skaber et digitalt kompas med Arduino!

Hvad er GY-271 sensor?

Sensoren GY-271 Det er et modul, der integrerer magnetometeret HMC5883L. Denne chip er i stand til at måle magnetfeltet i de tre akser (X, Y og Z), og med disse data er det muligt at kende orienteringen i forhold til Jordens magnetfelt. Denne sensor har høj præcision og er meget brugt i ingeniørprojekter. robot navigation eller selvkørende køretøjer.

Kommunikation mellem dette modul og Arduino sker gennem I2C bus, hvilket i høj grad letter fremskaffelsen af ​​de målte data. HMC5883L har et måleområde på ±0.88 Gauss til ±8.1 Gauss, afhængigt af konfiguration, og dækker en lang række applikationer.

Tilslutninger og montering med Arduino

Tilslutning af GY-271 til din Arduino er virkelig enkel, du skal bare bruge nogle kabler og følge det grundlæggende diagram:

  • Tilslut stiften GND af modulet med GND-stiften på Arduino
  • PIN-koden VCC af GY-271 skal tilsluttes til 5V på Arduino
  • Tilslut stiften naturressourcer af GY-271 med pin A4 på Arduino (eller SCL i nogle modeller såsom Mega)
  • PIN-koden SCL skal gå til pin A5 på Arduino (eller SDA i nogle tilfælde)

Når du har alt tilsluttet, vil modulet være klar til at begynde at arbejde. Hvis dit mål er at indhente magnetfeltdata og skabe et digitalt kompas, har du allerede det grundlæggende. Husk dog på, at miljø hvor du placerer sensoren skal være fri af magnetisk interferens, da nærliggende metaller eller elektroniske enheder kan ændre målingerne.

Kode eksempler med Arduino

Nedenfor viser vi dig et grundlæggende eksempel på, hvordan du læser X-, Y- og Z-værdierne af magnetfeltet ved hjælp af det relevante bibliotek. Dette bibliotek vil lette I2C-kommunikation og sensoraflæsninger:

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

Denne kode er ideel til at opnå komponenterne i det magnetiske felt i de tre akser. Når du har disse værdier, kan du beregne orienteringen af ​​sensoren i forhold til magnetisk nord ved hjælp af funktionen ATAN2, hvilket vil give os mulighed for at konvertere X- og Y-akserne til en vinkel.

Beregning af vinklen i forhold til nord

Nu hvor du har magnetfeltaflæsningerne, er næste trin at beregne orienteringen i forhold til magnetisk nord. For at gøre dette kan du bruge følgende formel:

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

Denne beregning vil give os en vinkel i grader, der repræsenterer retningen mod magnetisk nord. Du skal dog tage hensyn til magnetisk deklination, som er forskellen mellem magnetisk nord og geografisk nord. Afhængigt af din geografiske placering kan denne værdi variere, og det er vigtigt at rette den for at få et mere præcist kompas.

Yderligere indstillinger og driftstilstande

GY-271 tilbyder adskillige konfigurationer, der giver dig mulighed for at justere dens drift efter dine behov. Du kan for eksempel vælge to driftstilstande:

  • kontinuerlig tilstand: Magnetometeret udfører løbende målinger og opdaterer de tilsvarende registre (X, Y, Z).
  • Enkelt måletilstand: Sensoren tager kun en aflæsning, når Arduino anmoder om det, hvilket kan være nyttigt, hvis du vil spare energi.

Derudover kan du justere sensorens følsomhed ved at ændre række af medicin. Tilgængelige intervaller spænder fra ±0.88 Ga til ±8.1 Ga, så du kan tilpasse sensoren til forskellige miljøer og arbejdsforhold.

Husk at du skal bruge funktionen for at ændre måleområdet sætGain fra biblioteket, som giver dig mulighed for at indstille sensorforstærkningen afhængigt af det magnetiske område, du vil måle.

GY-271 applikationer

GY-271-sensoren har adskillige anvendelser inden for robotteknologi og navigation. Da den er en relativt billig og nem at implementere enhed, bruges den i projekter som:

  • autonome rovere: Giver robotter mulighed for at vide, hvilken retning de vender.
  • Quadkoptere: Hjælper med at bevare dronens orientering i forhold til nord under flyvning.
  • navigationssystemer: Ethvert køretøj, der skal kende sin position og orientering, kan drage fordel af dette modul.

En af de mest besynderlige detaljer er, at selvom GY-271 har stor præcision under kontrollerede forhold, kan dens måling påvirkes af interferens, såsom tilstedeværelsen af ​​metaller eller nærliggende elektromagnetiske felter. Dette kan rettes ved hjælp af teknikker kalibrering kombineret med accelerometre eller gyroskoper (IMU), hvilket er typisk i mere avancerede navigationssystemer.

Kombinationen af ​​denne sensor med accelerometre tillader for eksempel konstruktionen af ​​mere præcise enheder, der er modstandsdygtige over for magnetisk støj, hvilket åbner en række muligheder for brug i projekter med Arduino og andre mikrocontrollere...


Start samtalen

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.