Kaip naudoti GY-271 modulį su Arduino skaitmeniniam kompasui sukurti

  • GY-271 matuoja magnetinį lauką trimis ašimis ir perduoda duomenis per I2C.
  • Apskaičiuojant orientaciją šiaurės atžvilgiu, reikia ištaisyti magnetinę deklinaciją.
  • GY-271 naudojamas robotikoje, dronuose ir autonominėse navigacijos sistemose.

GY-271 Arduino modulis

Šia proga kalbėsime apie vieną iš jutiklių, dažniausiai naudojamų Arduino projektuose, susijusiuose su navigacija ir orientacija: GY-271. Šiame modulyje yra jutiklis HMC5883L, kuris yra trijų ašių magnetometras, galintis aptikti magnetinius laukus ir todėl suteikti mums orientaciją magnetinės šiaurės atžvilgiu.

Jei galvojate apie jo integravimą į projektą su Arduino, šiame straipsnyje paaiškinsime visas jo detales: nuo jo charakteristikų, prijungimo ir programavimo iki naudojimo pavyzdžių ir patarimų, kaip pasiekti geriausią tikslumą. Taigi skaitykite toliau ir sužinokite, kaip sukurti skaitmeninį kompasą naudojant „Arduino“!

Kas yra GY-271 jutiklis?

Jutiklis GY-271 Tai modulis, kuriame integruotas magnetometras HMC5883L. Ši mikroschema gali išmatuoti magnetinį lauką trijose ašyse (X, Y ir Z) ir, remiantis šiais duomenimis, galima sužinoti orientaciją Žemės magnetinio lauko atžvilgiu. Šis jutiklis pasižymi dideliu tikslumu ir yra plačiai naudojamas inžineriniuose projektuose. roboto navigacija arba autonominės transporto priemonės.

Ryšys tarp šio modulio ir „Arduino“ vyksta per I2C magistralė, o tai labai palengvina išmatuotų duomenų gavimą. Priklausomai nuo konfigūracijos, HMC5883L matavimo diapazonas yra nuo ±0.88 Gauso iki ±8.1 Gauso, ir apima daugybę pritaikymų.

Jungtys ir surinkimas su Arduino

GY-271 prijungimas prie „Arduino“ yra labai paprastas, jums tereikia kelių laidų ir vadovaukitės pagrindine schema:

  • Prijunkite kaištį GND modulio su Arduino GND kaiščiu
  • PIN kodas VCC GY-271 turi būti prijungtas prie 5 V Arduino
  • Prijunkite kaištį gamtos turtai GY-271 su A4 kaiščiu Arduino (arba SCL kai kuriuose modeliuose, pvz., Mega)
  • PIN kodas LAT turėtų pereiti prie Arduino (arba kai kuriais atvejais SDA) A5 kaiščio

Kai viską prijungsite, modulis bus paruoštas pradėti veikti. Jei jūsų tikslas yra gauti magnetinio lauko duomenis ir sukurti skaitmeninį kompasą, jūs jau turite pagrindus. Tačiau atminkite, kad aplinka Vietoje, kur pastatysite jutiklį, neturi būti magnetiniai trukdžiai, nes netoliese esantys metalai ar elektroniniai prietaisai gali pakeisti matavimus.

Kodo pavyzdžiai su Arduino

Žemiau parodysime pagrindinį pavyzdį, kaip nuskaityti magnetinio lauko X, Y ir Z reikšmes naudojant atitinkamą biblioteką. Ši biblioteka palengvins I2C ryšį ir jutiklių rodmenis:

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

Šis kodas idealiai tinka gauti trijų ašių magnetinio lauko komponentus. Kai turėsite šias vertes, naudodami funkciją galėsite apskaičiuoti jutiklio orientaciją magnetinės šiaurės atžvilgiu atanas2, kuris leis X ir Y ašis paversti kampu.

Kampo šiaurės atžvilgiu apskaičiavimas

Dabar, kai turite magnetinio lauko rodmenis, kitas žingsnis yra apskaičiuoti orientaciją magnetinės šiaurės atžvilgiu. Norėdami tai padaryti, galite naudoti šią formulę:

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

Šis skaičiavimas suteiks mums kampą laipsniais, kuris rodo kryptį į magnetinę šiaurę. Tačiau jūs turite atsižvelgti į magnetinė deklinacija, kuris yra skirtumas tarp magnetinės šiaurės ir geografinės šiaurės. Priklausomai nuo jūsų geografinės padėties, ši vertė gali skirtis, todėl svarbu ją pataisyti, kad gautumėte tikslesnį kompasą.

Papildomi nustatymai ir darbo režimai

GY-271 siūlo keletą konfigūracijų, kurios leis koreguoti jo veikimą pagal savo poreikius. Pavyzdžiui, galite pasirinkti du darbo režimai:

  • Nepertraukiamas režimas: Magnetometras nuolat atlieka matavimus ir atnaujina atitinkamus registrus (X, Y, Z).
  • Vieno matavimo režimas: Jutiklis nuskaito tik tada, kai to reikalauja „Arduino“, o tai gali būti naudinga, jei norite sutaupyti energijos.

Be to, galite reguliuoti jutiklio jautrumą modifikuodami rango de medición. Galimi diapazonai svyruoja nuo ±0.88 Ga iki ±8.1 Ga, todėl galite pritaikyti jutiklį skirtingoms aplinkoms ir darbo sąlygoms.

Atminkite, kad norėdami pakeisti matavimo diapazoną, turite naudoti funkciją setGain iš bibliotekos, kuri leidžia nustatyti jutiklio stiprinimą priklausomai nuo magnetinio diapazono, kurį norite išmatuoti.

GY-271 Programos

GY-271 jutiklis turi daugybę pritaikymų robotikos ir navigacijos srityje. Kadangi yra gana pigus ir lengvai įdiegiamas įrenginys, jis naudojamas tokiuose projektuose kaip:

  • autonominiai roveriai: leidžia robotams žinoti, kuria kryptimi jie atsukti.
  • Kvadrokopteriai: padeda išlaikyti drono orientaciją šiaurės atžvilgiu skrydžio metu.
  • navigacinės sistemos: Šis modulis gali būti naudingas bet kuriai transporto priemonei, kuriai reikia žinoti savo padėtį ir orientaciją.

Viena įdomiausių detalių yra ta, kad nors GY-271 pasižymi dideliu tikslumu kontroliuojamomis sąlygomis, jo matavimui gali turėti įtakos trukdžiai, pvz., metalų ar šalia esančių elektromagnetinių laukų buvimas. Tai galima ištaisyti naudojant metodus kalibravimas kartu su akselerometrais arba giroskopais (IMU), kas būdinga pažangesnėms navigacijos sistemoms.

Šio jutiklio derinys su akselerometrais, pavyzdžiui, leidžia sukonstruoti tikslesnius įrenginius, atsparius magnetiniam triukšmui, o tai atveria daugybę galimybių naudoti projektuose su Arduino ir kitais mikrovaldikliais...


Būkite pirmas, kuris pakomentuos

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.