Kompassimoduulin lisääminen Arduino-mikrokontrolleriisi avaa monia mahdollisuuksia projekteihin. Näin liität yhden ja käytät sitä.

Nykyaikaisissa tee-se-itse-projekteissa on melko yleistä löytää kehittyneitä antureita, kuten kiihtyvyysantureita ja magnetometrejä, jotka on liitetty mikro-ohjainten kanssa. Vaikka olet saattanut käyttää näitä antureita puhelimessasi, on vaikea kuvitella, kuinka nämä moduulit toimivat, mutta se on yllättävän yksinkertaista.

GY-271 kompassimagnetometri-anturi mahdollistaa suunnantunnistuksen erilaisiin sovelluksiin. Täällä tutkimme GY-271-anturin liittämistä Arduino-mikro-ohjaimeen, sen kalibrointia ja ongelmia, joita saatat kohdata sen aikana.

Mikä on GY-271 kompassimoduuli?

GY-271 kompassimoduuli on erittäin herkkä magnetometri, joka voi mitata magneettikenttiä kolmessa ulottuvuudessa. Sitä käytetään maapallon magneettikentän havaitsemiseen ja laitteiden suunnan tai suunnan määrittämiseen sovelluksissa, kuten navigointijärjestelmissä, robotiikassa ja droneissa. Ajattele sitä kuin erittäin tarkkaa digitaalista kompassia. Tämä anturi on varustettu kompaktilla ja tukevalla rakenteella, jonka ansiosta se on helppo asentaa ja käyttää monenlaisissa projekteissa.

instagram viewer

Kuinka GY-271-kompassimoduuli toimii?

Kompassimoduuli GY-271 HCM5883L sisältää 3-akselisen magnetometrianturin, joka perustuu anisotrooppiseen magnetoresistiiviseen (AMR) tekniikkaan. Anturi mittaa Maan magneettikentän voimakkuutta ja suuntaa havaitsemalla sen sisäisten AMR-elementtien resistanssin muutokset.

Kun anturi altistuu magneettikentälle, AMR-elementtien resistanssi muuttuu, jolloin syntyy jännite, joka on verrannollinen magneettikentän voimakkuuteen ja suuntaan. Sen jälkeen anturin digitaalinen signaaliprosessori muuntaa tämän jännitteen digitaaliseksi signaaliksi, jonka mikro-ohjain voi lukea. Mittaamalla jännitteen kaikilla kolmella akselilla anturi voi antaa erittäin tarkat lukemat magneettikentän voimakkuudesta ja suunnasta kolmessa ulottuvuudessa.

GY-271:n yhdistäminen Arduino Unoon

Tämän moduulin liittäminen Arduinoon on melko yksinkertaista. Olemme käsitelleet myös muita helppokäyttöiset Arduino-moduulit jotka voivat auttaa skaalaamaan projektiasi tulevaisuudessa. GY-271-moduulissa on yhteensä viisi nastaa, mukaan lukien VCC, GNDja kolme signaalinastaa (SDA, SCL, ja DRDY).

Tarvitset seuraavat komponentit:

  • GY-271 HMC5883L kompassimoduuli
  • Arduino Uno (tai muu malli)
  • Hyppylangat (uros-uros ja uros-naaras)
  • Leipälauta (valinnainen)

Yhdistä ensin VCC ja GND GY-271-moduulin nastat 5V ja GND vastaavasti Arduino Unon nastat.

Yhdistä seuraavaksi SDA ja SCL moduulin nastat A4 ja A5 Arduino Unon analogiset nastat.

Tarvittavien kirjastojen asentaminen

Ennen kuin voit aloittaa työskentelyn GY-271-kompassimoduulin ja Arduinon kanssa, sinun on asennettava tarvittavat kirjastot viestiäksesi anturin kanssa.

Ensimmäinen kirjasto, joka sinun on sisällytettävä luonnoksiisi, on Wire-kirjasto, jota käytetään I2C-viestintään Arduinon ja anturin välillä. Wire-kirjasto on esiasennettu Arduino IDE: n kanssa, joten sinun ei tarvitse ladata sitä erikseen. Voit asentaa toisen, HMC5883L kirjastossa, sinun on noudatettava näitä vaiheita:

Avaa Arduino IDE ja siirry kohtaan Luonnos > Sisällytä kirjasto > Hallitse kirjastoja.

Hae Kirjastonhallinnassa HMC5883L hakupalkissa.

Valitse HMC5883L kirjasto erityisesti Adafruitilta. Kun kirjasto on asennettu, voit sisällyttää sen Arduino-luonnokseen siirtymällä osoitteeseen Luonnos > Sisällytä kirjasto > HMC5883L.

Koodin ymmärtäminen

Sinun on kirjoitettava ohjelma, joka alustaa anturin, lukee sen tiedot ja laskee Maan magneettikentän voimakkuuden ja suunnan. Täysi koodi on ladattavissa viralliselta sivultamme GitHub-arkisto.

Koodin alussa sinun on sisällytettävä tarvittavat juuri lataamasi kirjastot.

#sisältää
#sisältää
#sisältää

Älä unohda määrittää tunnistimelle yksilöllistä tunnusta. Käytä tätä riviä tehdäksesi sen:

Adafruit_HMC5883_Unified mag = Adafruit_HMC5883_Unified(12345);

Käynnistä sarjamonitori asetuskoodissa ja tarkista, vastaako anturi. Voit tulostaa viestejä monitoriin anturin tilan päivittämiseksi:

mitätönperustaa(mitätön)
{
Sarja.alkaa(9600);
Sarja.println("HMC5883 Magnetometer Test"); Sarja.println("");

/* Alusta anturi */
jos(!mag.alkaa())
{
Sarja.println("Hups, HMC5883:a ei havaittu... Tarkista johdotus!");
sillä aikaa(1);
}
}

Hanki silmukassa ensin uusi anturitapahtuma:

sensors_event_t tapahtuma;
mag.getEvent(&event);

Näytä sitten anturin lukemat sarjanäytössä. Älä unohda asettaa baudinopeutta 9600​​​​.

Sarja.Tulosta("X:"); Sarja.Tulosta(tapahtuma.magneettinen.x); Sarja.Tulosta(" ");
Sarja.Tulosta("Y:"); Sarja.Tulosta(tapahtuma.magneettinen.y); Sarja.Tulosta(" ");
Sarja.Tulosta("Z:"); Sarja.Tulosta(tapahtuma.magneettinen.z); Sarja.Tulosta(" ");Sarja.println("uT");

Pidä moduulia niin Z osoittaa "ylös" ja mittaa otsikko X ja Y. Näin voit laskea suunnan magnetometrin ollessa vaakasuorassa. Tämä koodirivi auttaa tässä:

kellua otsikko = atan2(tapahtuma.magneettinen.y, tapahtuma.magneettinen.x);

Kun sinulla on omasi otsikko, sinun on sitten lisättävä omasi deklinaatiokulma, joka on sijaintisi magneettikentän virhe.

kellua deklinaatiokulma = 0.663;
 otsikko += deklinaatioAngle;

Löydät kätevästi paikallisen alueesi deklinaatiokulman Magnetic Declination -sivusto. Jos et jostain syystä löydä deklinaatiokulmaasi, kommentoi koodisi kaksi riviä.

Kahden koodirivin kommentoiminen voi johtaa viallisiin anturin lukemiin. Yritä parhaasi mukaan kalibroida anturi ennen käyttöä.

Tulosta lopuksi otsikko sarjanäytölle ja lisää viive odottaaksesi puoli sekuntia ennen kuin luet uudelleen.

Sarja.Tulosta("Suunta (astetta):");
Sarja.println(otsikko Degrees);
viive(500);

Täältä voit muokata koodia projektisi tarpeiden mukaan ja lisätä lisäominaisuuksia, kuten tiedonkeruun.

Jos haluat mieluummin käyttää Adafruit-kirjastoa, suosittelemme hankkimaan sen osoitteesta Adafruitin GitHub-arkisto.

Kompassitietojen lukeminen ja tulkitseminen

Sarjanäytössä näkyvät anturitiedot näyttävät magnetometrin mittaamat magneettikenttävektoriarvot mikrotesloissa (μT) X-, Y- ja Z-akselille, vastaavasti. Näitä arvoja voidaan käyttää magneettikentän suunnan ja suuruuden määrittämiseen.

Myös asteina näkyvä suunta-arvo on tärkeä ja edustaa magneettisen pohjoisnavan suuntaa suhteessa anturin sijaintiin. Tätä lukemaa voidaan käyttää projekteissa, joissa liikkuvan kohteen suunta on määritettävä, kuten robotiikassa, navigoinnissa ja paikannusjärjestelmissä.

Anturin kalibrointi

Jos olet jo asentanut toisen kirjaston HMC5883L-moduulille, sinun on poistettava tai poistettava se. Muuten saatat saada käännösvirheitä tai nähdä varoituksia sarjanäytössäsi kalibroinnin aikana. Suosittelemme käyttöä Jarzebskin kirjasto saatavilla GitHubissa, koska siinä on kaikki tähän osioon tarvittavat kalibrointiresurssit.

Lataa ensin zip-tiedosto arkistosta napsauttamalla Koodi > Lataa ZIP.

Avaa seuraavaksi Arduino IDE ja napsauta Luonnos > Sisällytä kirjasto > Lisää kirjasto.

Valitse Arduino-HMC5883 zip-tiedosto, jonka juuri lataat, ja Arduino IDE asentaa kirjaston automaattisesti puolestasi.

Suorita arkistossa oleva kalibrointipiirros ja liikuta anturia tasaisella pinnalla latauksen yhteydessä. Sarjamonitorista saadut arvot ovat anturin offset-arvoja, joita voit käyttää lukemiesi korjaamiseen käyttäessäsi kompassia projekteissasi.

Ongelmat, joihin saatat törmätä

On olemassa useita virheitä, joihin joku voi törmätä yhdistäessään kompassimoduulin Arduinoon. Tässä on muutamia esimerkkejä ja niiden kiertotapoja:

Kokoonpanovirheet: Näitä voi tapahtua, jos tarvittavia kirjastoja ei ole mukana tai jos koodissa on syntaksivirheitä. Korjaa tämä varmistamalla, että olet asentanut oikeat kirjastot ja tarkistamalla koodisi syntaksivirheiden varalta. Kuten olemme nähneet monta kertaa, olet saattanut asentaa vahingossa useita HCM5883L-kirjastoja.

Kokoonpanovirhe: "Adafruit_HMC5883_Unified" tekee ei nimeä tyyppi

Viestintävirheet: Jos et pysty kommunikoimaan kompassimoduulin kanssa, varmista, että olet liittänyt sen oikeisiin Arduinon nastoihin ja että johdotus on oikea. Saatat myös joutua säätämään koodissasi olevan moduulin I2C-osoitetta, jos se eroaa oletusarvosta, joka on 0x1E.

Virhe käyttämällä hmc5883l/testDevice (linja246) Virhe tiedonsiirrossa HMC5883L-anturin kanssa. Arvo lukea alkaen ID_A, ID_B ja ID_C rekisterit tehdäei vastaa odotettuja arvoja.

Magneettinen häiriö: Jos kompassin lukemat ovat epävakaita tai vaihtelevia, se voi johtua lähellä olevien esineiden aiheuttamasta magneettisesta häiriöstä. Siirrä moduuli kauemmas magneeteista tai muista magneettisen häiriön lähteistä saadaksesi vakaammat lukemat.

Päivitä projektejasi GY-271-kompassimoduulilla

GY-271 HCM5883L kompassimoduulin käyttö mahdollistaa monimutkaisempien tee-se-itse-projektien rakentamisen Arduinoa käyttäen, kuten GPS-ohjattuja rovereita ja tee-se-itse-drooneja. Mahdollisuudet ovat rajattomat, varsinkin kun lisäät muita antureita.