Kuidas kasutada moodulit GY-271 koos Arduinoga digitaalse kompassi loomiseks

  • GY-271 mõõdab magnetvälja kolmel teljel ja edastab oma andmed I2C kaudu.
  • Orientatsiooni arvutamine põhja suhtes nõuab magnetilise deklinatsiooni korrigeerimist.
  • GY-271 kasutatakse robootikas, droonides ja autonoomsetes navigatsioonisüsteemides.

GY-271 Arduino moodul

Sel korral räägime ühest andurist, mida Arduino navigeerimise ja orienteerumisega seotud projektides enim kasutatakse: GY-271. See moodul sisaldab andurit HMC5883L, mis on kolmeteljeline magnetomeeter, mis on võimeline tuvastama magnetvälju ja seega andma meile orientatsiooni magnetilise põhja suhtes.

Kui kavatsete selle Arduinoga projekti integreerida, selgitame selles artiklis kõiki selle üksikasju: alates selle omadustest, ühendamisest ja programmeerimisest kuni kasutusnäidete ja näpunäideteni parima täpsuse saavutamiseks. Nii et lugege edasi ja saage teada, kuidas Arduinoga digitaalset kompassi luua!

Mis on GY-271 andur?

Andur GY-271 See on moodul, mis ühendab magnetomeetri HMC5883L. See kiip on võimeline mõõtma magnetvälja kolmel teljel (X, Y ja Z) ning nende andmete põhjal on võimalik teada saada orientatsiooni Maa magnetvälja suhtes. Sellel anduril on suur täpsus ja seda kasutatakse laialdaselt inseneriprojektides. roboti navigeerimine või autonoomsed sõidukid.

Selle mooduli ja Arduino vaheline suhtlus toimub läbi I2C buss, mis hõlbustab oluliselt mõõdetud andmete saamist. HMC5883L mõõtmisvahemik on olenevalt konfiguratsioonist vahemikus ±0.88 Gauss kuni ±8.1 Gauss, mis hõlmab laia valikut rakendusi.

Ühendused ja kokkupanek Arduinoga

GY-271 ühendamine Arduinoga on tõesti lihtne, vajate lihtsalt mõnda kaablit ja järgige põhiskeemi:

  • Ühendage tihvt GND moodulist Arduino GND-viiguga
  • PIN-kood VCC GY-271 peab olema ühendatud Arduino 5 V pingega
  • Ühendage tihvt SDA GY-271-st koos Arduino tihvtiga A4 (või mõnel mudelil SCL-iga, näiteks Mega)
  • PIN-kood SCL peaks minema Arduino (või mõnel juhul SDA) kontaktile A5

Kui kõik on ühendatud, on moodul tööd alustama valmis. Kui teie eesmärk on saada magnetvälja andmeid ja luua digitaalne kompass, on teil juba põhitõed. Siiski pidage meeles, et keskkond koht, kuhu andur asetate, peab olema vaba magnetilised häired, kuna läheduses olevad metallid või elektroonilised seadmed võivad mõõtmisi muuta.

Koodinäited Arduinoga

Allpool näitame teile põhinäidet magnetvälja X-, Y- ja Z-väärtuste lugemiseks vastava raamatukogu abil. See raamatukogu hõlbustab I2C-suhtlust ja andurite lugemist:

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

See kood sobib ideaalselt kolme telje magnetvälja komponentide saamiseks. Kui teil on need väärtused, saate funktsiooni abil arvutada anduri orientatsiooni magnetilise põhja suhtes atan2, mis võimaldab teisendada X- ja Y-teljed nurgaks.

Nurga arvutamine põhja suhtes

Nüüd, kui teil on magnetvälja näidud, on järgmine samm magnetilise põhja suhtes orientatsiooni arvutamine. Selleks võite kasutada järgmist valemit:

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

See arvutus annab meile nurga kraadides, mis tähistab suunda magnetilise põhja poole. Siiski peate arvestama magnetiline deklinatsioon, mis on erinevus magnetilise põhja ja geograafilise põhja vahel. Sõltuvalt teie geograafilisest asukohast võib see väärtus erineda ja täpsema kompassi saamiseks on oluline seda parandada.

Lisaseaded ja töörežiimid

GY-271 pakub mitmeid konfiguratsioone, mis võimaldavad teil selle tööd vastavalt oma vajadustele kohandada. Näiteks saate valida kaks töörežiimid:

  • pidev režiim: Magnetomeeter teostab pidevalt mõõtmisi ja uuendab vastavaid registreid (X, Y, Z).
  • Ühe mõõtmise režiim: Andur loeb ainult siis, kui Arduino seda nõuab, mis võib olla kasulik, kui soovite energiat säästa.

Lisaks saate muuta anduri tundlikkust rango de medición. Saadaolevad vahemikud on vahemikus ±0.88 Ga kuni ±8.1 Ga, mis võimaldab teil kohandada andurit erinevate keskkondade ja töötingimustega.

Pidage meeles, et mõõtmisvahemiku muutmiseks peate kasutama funktsiooni setGain raamatukogust, mis võimaldab määrata anduri võimenduse sõltuvalt magnetilisest vahemikust, mida soovite mõõta.

GY-271 Rakendused

Anduril GY-271 on arvukalt rakendusi robootika ja navigatsiooni valdkonnas. Kuna seade on suhteliselt odav ja hõlpsasti rakendatav, kasutatakse seda sellistes projektides nagu:

  • autonoomsed kulgurid: Võimaldab robotitel teada, millises suunas nad vaatavad.
  • Quadkopterid: Aitab säilitada drooni orientatsiooni põhja suhtes lennu ajal.
  • navigatsioonisüsteemid: Sellest moodulist saavad kasu kõik sõidukid, mis peavad teadma oma asukohta ja orientatsiooni.

Üks kummalisemaid detaile on see, et kuigi GY-271 on kontrollitud tingimustes väga täpne, võivad selle mõõtmist mõjutada häireid, näiteks metallide või läheduses olevate elektromagnetväljade olemasolu. Seda saab tehnikate abil parandada kalibreerimine kombineerituna kiirendusmõõturite või güroskoopidega (IMU), mis on tüüpiline arenenumatele navigatsioonisüsteemidele.

Selle anduri kombinatsioon näiteks kiirendusmõõturitega võimaldab konstrueerida täpsemaid, magnetmürale vastupidavaid seadmeid, mis avab hulga võimalusi kasutamiseks projektides Arduino ja teiste mikrokontrolleritega...


Ole esimene kommentaar

Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.