Jak používat modul GY-271 s Arduinem k vytvoření digitálního kompasu

  • GY-271 měří magnetické pole ve třech osách a svá data sděluje přes I2C.
  • Výpočet orientace vzhledem k severu vyžaduje korekci magnetické deklinace.
  • GY-271 se používá v robotice, dronech a autonomních navigačních systémech.

Modul Arduino GY-271

Při této příležitosti budeme hovořit o jednom ze senzorů, který se nejvíce používá v projektech Arduino souvisejících s navigací a orientací: GY-271. Tento modul obsahuje senzor HMC5883L, což je tříosý magnetometr schopný detekovat magnetická pole, a proto nám poskytuje orientaci vzhledem k magnetickému severu.

Pokud uvažujete o jeho integraci do projektu s Arduinem, v tomto článku vysvětlíme všechny jeho podrobnosti: od jeho charakteristik, jak jej připojit a naprogramovat, až po příklady použití a tipy pro dosažení nejlepší přesnosti. Takže čtěte dál a zjistěte, jak vytvořit digitální kompas pomocí Arduina!

Co je senzor GY-271?

Senzor GY-271 Jedná se o modul, který integruje magnetometr HMC5883L. Tento čip je schopen měřit magnetické pole ve třech osách (X, Y a Z) a s těmito údaji je možné znát orientaci vzhledem k magnetickému poli Země. Tento senzor má vysokou přesnost a je široce používán v inženýrských projektech. navigace robota nebo autonomní vozidla.

Komunikace mezi tímto modulem a Arduinem probíhá přes I2C autobus, což značně usnadňuje získávání naměřených dat. HMC5883L má rozsah měření ±0.88 Gauss až ±8.1 Gauss, v závislosti na konfiguraci, a pokrývá širokou škálu aplikací.

Zapojení a montáž s Arduinem

Připojení GY-271 k vašemu Arduinu je opravdu jednoduché, potřebujete jen pár kabelů a postupujte podle základního schématu:

  • Připojte kolík GND modulu s GND pinem Arduina
  • PIN VCC GY-271 musí být připojen k 5V Arduina
  • Připojte kolík SDA GY-271 s kolíkem A4 Arduina (nebo SCL u některých modelů, jako je Mega)
  • PIN SCL by měl jít na pin A5 Arduina (nebo SDA v některých případech)

Jakmile budete mít vše připojeno, modul bude připraven začít pracovat. Pokud je vaším cílem získat data o magnetickém poli a vytvořit digitální kompas, základy již máte. Mějte však na paměti, že prostředí kam senzor umístíte, musí být volné magnetické rušení, protože blízké kovy nebo elektronická zařízení mohou změnit měření.

Příklady kódu s Arduino

Níže vám ukážeme základní příklad, jak číst hodnoty X, Y a Z magnetického pole pomocí příslušné knihovny. Tato knihovna usnadní komunikaci I2C a čtení senzorů:

#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ální pro získání složek magnetického pole ve třech osách. Jakmile budete mít tyto hodnoty, můžete pomocí funkce vypočítat orientaci senzoru vzhledem k magnetickému severu atan2, což nám umožní převést osy X a Y na úhel.

Výpočet úhlu vzhledem k severu

Nyní, když máte naměřené hodnoty magnetického pole, je dalším krokem výpočet orientace vzhledem k magnetickému severu. Chcete-li to provést, můžete použít následující vzorec:

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

Tento výpočet nám poskytne úhel ve stupních, který představuje směr k magnetickému severu. Musíte však vzít v úvahu magnetická deklinace, což je rozdíl mezi magnetickým severem a geografickým severem. V závislosti na vaší geografické poloze se tato hodnota může lišit a je důležité ji opravit, abyste získali přesnější kompas.

Další nastavení a provozní režimy

GY-271 nabízí několik konfigurací, které vám umožní upravit jeho provoz podle vašich potřeb. Vybrat si můžete například dva provozní režimy:

  • Nepřetržitý způsob: Magnetometr nepřetržitě provádí měření a aktualizuje odpovídající registry (X, Y, Z).
  • Režim jednoho měření: Senzor načítá pouze tehdy, když to Arduino požaduje, což může být užitečné, pokud chcete šetřit energii.

Navíc můžete upravit citlivost senzoru úpravou rango de medición. Dostupné rozsahy se pohybují od ±0.88 Ga do ±8.1 Ga, což vám umožňuje přizpůsobit snímač různým prostředím a pracovním podmínkám.

Pamatujte, že pro změnu rozsahu měření musíte použít funkci setGain z knihovny, která umožňuje nastavit zesílení senzoru v závislosti na magnetickém rozsahu, který chcete měřit.

Aplikace GY-271

Senzor GY-271 má četné aplikace v oblasti robotiky a navigace. Jako relativně levné a snadno implementovatelné zařízení se používá v projektech, jako jsou:

  • autonomní rovery: Umožňuje robotům vědět, kterým směrem jsou otočeni.
  • Kvadrokoptéry: Pomáhá udržovat orientaci dronu vzhledem k severu za letu.
  • navigační systémy: Z tohoto modulu může těžit každé vozidlo, které potřebuje znát svou polohu a orientaci.

Jedním z nejkurióznějších detailů je, že ačkoli GY-271 má velkou přesnost za kontrolovaných podmínek, jeho měření může být ovlivněno rušeníjako je přítomnost kovů nebo blízkých elektromagnetických polí. To lze napravit pomocí technik kalibrace v kombinaci s akcelerometry nebo gyroskopy (IMU), což je typické pro pokročilejší navigační systémy.

Kombinace tohoto senzoru například s akcelerometry umožňuje konstrukci přesnějších zařízení, která jsou odolná vůči magnetickému šumu, což otevírá řadu možností využití v projektech s Arduino a dalšími mikrokontroléry...


Začněte konverzaci

Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.