Ako použiť modul GY-271 s Arduino na vytvorenie digitálneho kompasu

  • GY-271 meria magnetické pole v troch osiach a svoje dáta komunikuje cez I2C.
  • Výpočet orientácie vzhľadom na sever vyžaduje korekciu magnetickej deklinácie.
  • GY-271 sa používa v robotike, dronoch a autonómnych navigačných systémoch.

Modul Arduino GY-271

Pri tejto príležitosti budeme hovoriť o jednom zo senzorov, ktorý sa najviac používa v projektoch Arduino súvisiacich s navigáciou a orientáciou: GY-271. Tento modul obsahuje snímač HMC5883L, čo je trojosový magnetometer schopný detekovať magnetické polia, a preto nám poskytuje orientáciu vzhľadom na magnetický sever.

Ak uvažujete o jeho integrácii do projektu s Arduinom, v tomto článku vám vysvetlíme všetky jeho detaily: od jeho charakteristík, ako ho pripojiť a naprogramovať, až po príklady použitia a tipy na dosiahnutie najvyššej presnosti. Takže čítajte ďalej a zistite, ako vytvoriť digitálny kompas pomocou Arduina!

Čo je senzor GY-271?

Senzor GY-271 Ide o modul, ktorý integruje magnetometer HMC5883L. Tento čip je schopný merať magnetické pole v troch osiach (X, Y a Z) a pomocou týchto údajov je možné poznať orientáciu vzhľadom na magnetické pole Zeme. Tento snímač má vysokú presnosť a je široko používaný v inžinierskych projektoch. navigácia robota alebo autonómne vozidlá.

Komunikácia medzi týmto modulom a Arduinom prebieha cez I2C autobus, čo značne uľahčuje získavanie nameraných údajov. HMC5883L má merací rozsah ±0.88 Gauss až ±8.1 Gauss, v závislosti od konfigurácie, pokrývajúci širokú škálu aplikácií.

Pripojenie a montáž s Arduino

Pripojenie GY-271 k vášmu Arduinu je naozaj jednoduché, potrebujete len niekoľko káblov a postupujte podľa základnej schémy:

  • Pripojte kolík GND modulu s GND pinom Arduina
  • PIN VCC GY-271 musí byť pripojený k 5V Arduina
  • Pripojte kolík SDA GY-271 s kolíkom A4 Arduina (alebo SCL v niektorých modeloch, ako je Mega)
  • PIN SCL by mal ísť na kolík A5 Arduina (alebo SDA v niektorých prípadoch)

Keď budete mať všetko pripojené, modul bude pripravený začať pracovať. Ak je vaším cieľom získať údaje o magnetickom poli a vytvoriť digitálny kompas, základy už máte. Majte však na pamäti, že prostredie miesto, kde snímač umiestnite, musí byť voľné magnetické rušenie, pretože blízke kovy alebo elektronické zariadenia môžu zmeniť merania.

Príklady kódu s Arduino

Nižšie vám ukážeme základný príklad, ako čítať hodnoty X, Y a Z magnetického poľa pomocou príslušnej knižnice. Táto knižnica uľahčí komunikáciu I2C a čítanie senzorov:

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

Tento kód je ideálny na získanie zložiek magnetického poľa v troch osiach. Keď máte tieto hodnoty, môžete pomocou funkcie vypočítať orientáciu senzora vzhľadom na magnetický sever ATAN2, čo nám umožní previesť osi X a Y na uhol.

Výpočet uhla vzhľadom na sever

Teraz, keď máte namerané hodnoty magnetického poľa, ďalším krokom je výpočet orientácie vzhľadom na magnetický sever. Ak to chcete urobiť, môžete použiť nasledujúci vzorec:

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

Tento výpočet nám poskytne uhol v stupňoch, ktorý predstavuje smer k magnetickému severu. Musíte však vziať do úvahy magnetická deklinácia, čo je rozdiel medzi magnetickým severom a geografickým severom. V závislosti od vašej geografickej polohy sa táto hodnota môže líšiť a je dôležité ju opraviť, aby ste získali presnejší kompas.

Ďalšie nastavenia a prevádzkové režimy

GY-271 ponúka niekoľko konfigurácií, ktoré vám umožnia upraviť jeho fungovanie podľa vašich potrieb. Môžete si napríklad vybrať dve prevádzkové režimy:

  • nepretržitý režim: Magnetometer nepretržite vykonáva merania a aktualizuje príslušné registre (X, Y, Z).
  • Režim jedného merania: Senzor meria iba vtedy, keď to Arduino požaduje, čo môže byť užitočné, ak chcete šetriť energiu.

Okrem toho môžete upraviť citlivosť snímača úpravou rango de medición. Dostupné rozsahy sa pohybujú od ±0.88 Ga do ±8.1 Ga, čo vám umožňuje prispôsobiť snímač rôznym prostrediam a pracovným podmienkam.

Pamätajte, že na zmenu rozsahu merania musíte použiť funkciu setGain z knižnice, ktorá umožňuje nastaviť zosilnenie snímača v závislosti od magnetického rozsahu, ktorý chcete merať.

Aplikácie GY-271

Senzor GY-271 má množstvo aplikácií v oblasti robotiky a navigácie. Keďže ide o relatívne lacné a ľahko implementovateľné zariadenie, používa sa v projektoch, ako sú:

  • autonómne rovery: Umožňuje robotom vedieť, ktorým smerom sú otočené.
  • Kvadrokoptéry: Pomáha udržiavať orientáciu dronu vzhľadom na sever počas letu.
  • Navigačné systémy: Tento modul môže využiť každé vozidlo, ktoré potrebuje poznať svoju polohu a orientáciu.

Jedným z najkurióznejších detailov je, že hoci má GY-271 v kontrolovaných podmienkach veľkú presnosť, jeho meranie môže byť ovplyvnené interferencieako je prítomnosť kovov alebo blízkych elektromagnetických polí. To sa dá napraviť pomocou techník kalibrácia v kombinácii s akcelerometrami alebo gyroskopmi (IMU), čo je typické pre pokročilejšie navigačné systémy.

Kombinácia tohto senzora napríklad s akcelerometrami umožňuje konštrukciu presnejších zariadení, ktoré sú odolné voči magnetickému šumu, čo otvára celý rad možností využitia v projektoch s Arduino a inými mikrokontrolérmi...


Buďte prvý komentár

Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.