Kompassimooduli lisamine Arduino mikrokontrollerile avab projektide jaoks hulgaliselt võimalusi. Siit saate teada, kuidas seda ühendada ja kasutada.
Kaasaegsetes isetegemisprojektides on üsna tavaline leida täiustatud andureid, nagu kiirendusmõõturid ja magnetomeetrid, mis on ühendatud mikrokontrolleritega. Ehkki olete neid andureid oma telefonis kasutanud, on raske ette kujutada, kuidas need moodulid töötavad, kuid see on üllatavalt lihtne.
Kompassi magnetomeetri andur GY-271 võimaldab erinevate rakenduste jaoks orientatsiooni tuvastamist. Siin uurime GY-271 anduri ja Arduino mikrokontrolleriga liidestamise protsessi, selle kalibreerimist ja probleeme, millega võite seda tehes kokku puutuda.
Mis on kompassi moodul GY-271?
Kompassimoodul GY-271 on ülitundlik magnetomeeter, mis suudab mõõta magnetvälju kolmemõõtmeliselt. Seda kasutatakse Maa magnetvälja tuvastamiseks ja seadmete suuna või orientatsiooni määramiseks sellistes rakendustes nagu navigatsioonisüsteemid, robootika ja droonid. Mõelge sellele kui väga täpsele digitaalsele kompassile. See andur on varustatud kompaktse ja vastupidava konstruktsiooniga, mis muudab selle paigaldamise ja kasutamise paljudes projektides lihtsaks.
Kuidas kompassi moodul GY-271 töötab?
Kompassimoodul GY-271 HCM5883L sisaldab 3-teljelist magnetomeetri andurit, mis põhineb anisotroopsel magnetoresistiivsel (AMR) tehnoloogial. Andur mõõdab Maa magnetvälja tugevust ja suunda, tuvastades selle sisemiste AMR-elementide takistuse muutused.
Kui andur puutub kokku magnetväljaga, muutub AMR-elementide takistus, tekitades pinge, mis on võrdeline magnetvälja tugevuse ja suunaga. Seejärel muundab anduri digitaalne signaaliprotsessor selle pinge digitaalseks signaaliks, mida saab lugeda mikrokontrolleriga. Mõõtes pinget kõigil kolmel teljel, saab andur anda magnetvälja tugevuse ja suuna ülitäpsed näidud kolmes mõõtmes.
GY-271 ühendamine Arduino Unoga
Selle mooduli ühendamine Arduinoga on üsna lihtne. Oleme käsitlenud ka muid lihtsalt kasutatavad Arduino moodulid mis aitab teie projekti tulevikus skaleerida. Moodulil GY-271 on kokku viis kontakti, sealhulgas VCC, GNDja kolm signaali kontakti (SDA, SCL, ja DRDY).
Teil on vaja järgmisi komponente:
- GY-271 HMC5883L kompassimoodul
- Arduino Uno (või muu mudel)
- Jumperjuhtmed (isane-emane ja isane-emane)
- Leivalaud (valikuline)
Esiteks ühendage VCC ja GND mooduli GY-271 kontaktid 5V ja GND vastavalt Arduino Uno tihvtid.
Järgmisena ühendage SDA ja SCL mooduli kontaktid A4 ja A5 vastavalt Arduino Uno analoogtihvtid.
Vajalike teekide installimine
Enne kompassimooduli GY-271 ja Arduinoga töötamist tuleb installida anduriga suhtlemiseks vajalikud teegid.
Esimene teek, mille peate oma visandisse lisama, on juhtmeteek, mida kasutatakse Arduino ja anduri vaheliseks I2C-suhtluseks. Wire raamatukogu on eelinstallitud koos Arduino IDE-ga, nii et te ei pea seda eraldi alla laadima. Teise installimiseks HMC5883L raamatukogu, peate järgima neid samme:
Avage Arduino IDE ja minge lehele Sketš > Kaasa raamatukogu > Hallake raamatukogusid.
Otsige raamatukogu halduris HMC5883L otsinguribal.
Valige HMC5883L raamatukogu konkreetselt Adafruitilt. Kui teek on installitud, saate selle oma Arduino visandisse lisada, minnes aadressile Sketš > Kaasa raamatukogu > HMC5883L.
Koodeksi mõistmine
Peate kirjutama programmi, mis initsialiseerib anduri, loeb selle andmeid ja arvutab välja Maa magnetvälja tugevuse ja suuna. Täieliku koodi saab alla laadida meie ametlikult GitHubi hoidla.
Koodi alguses peate lisama vajalikud teegid, mille just alla laadisite.
#sisaldama
#sisaldama
#sisaldama
Ärge unustage andurile unikaalset ID-d määrata. Kasutage selleks seda rida:
Adafruit_HMC5883_Unified mag = Adafruit_HMC5883_Unified(12345);
Seadistuskoodis käivitage seeriamonitor ja kontrollige, kas andur reageerib. Saate printida monitorile sõnumeid anduri oleku värskendamiseks:
tühineseadistamine(tühine)
{
Sari.alustada(9600);
Sari.println("HMC5883 magnetomeetri test"); Sari.println("");
/* Anduri lähtestamine */
kui(!mag.alustada())
{
Sari.println("Oih, HMC5883 ei tuvastatud... Kontrollige oma juhtmeid!");
samal ajal(1);
}
}
Kõigepealt hankige uus anduri sündmus:
andurid_sündmus_t üritus;
mag.getEvent(&event);
Seejärel kuvage anduri näidud jadamonitorile. Ärge unustage määrata edastuskiirust 9600.
Sari.printida("X:"); Sari.printida(sündmus.magnetiline.x); Sari.printida(" ");
Sari.printida("Y:"); Sari.printida(sündmus.magnetiline.y); Sari.printida(" ");
Sari.printida("Z:"); Sari.printida(sündmus.magnetiline.z); Sari.printida(" ");Sari.println("uT");
Hoidke moodulit nii Z osutab "üles" ja mõõtke pealkirja X ja Y. Seda tehes saate seejärel arvutada kursi, kui magnetomeeter on loodis. See koodirida aitab selles:
ujuk pealkiri = atan2(sündmus.magnetiline.y, sündmus.magnetiline.x);
Kui olete oma pealkiri, peate seejärel lisama oma deklinatsiooninurk, mis on teie asukoha magnetvälja viga.
ujuk deklinatsiooninurk = 0.663;
pealkiri += deklinatsiooninurk;
Oma kohaliku piirkonna deklinatsiooninurga leiate mugavalt lehelt Magnetic Declination veebisait. Kui te mingil põhjusel oma deklinatsiooninurka ei leia, kommenteerige oma koodi kaks rida.
Kahe koodirea kommenteerimine võib põhjustada vigaseid anduri näitu. Proovige andur enne kasutamist kalibreerida.
Lõpuks printige pealkiri jadamonitorile ja lisage viivitus, et oodata enne uuesti lugemist pool sekundit.
Sari.printida("Pöörd (kraadid):");
Sari.println(rubriik Degrees);
viivitus(500);
Siit saate koodi kohandada vastavalt oma projekti vajadustele ja lisada täiendavaid funktsioone, nagu andmete logimine.
Kui eelistate kasutada Adafruiti raamatukogu, soovitame selle hankida Adafruiti GitHubi hoidla.
Kompassi andmete lugemine ja tõlgendamine
Jadamonitoril kuvatavad andurite andmed näitavad magnetomeetriga mõõdetud magnetvälja vektori väärtusi mikrotesulates (μT) vastavalt X-, Y- ja Z-telgedele. Neid väärtusi saab kasutada magnetvälja orientatsiooni ja suuruse määramiseks.
Kraadides kuvatav kursi väärtus on samuti oluline ja tähistab magnetilise põhjapooluse suunda anduri asukoha suhtes. Seda näitu saab kasutada projektides, kus on vaja määrata liikuva objekti suund, näiteks robootikas, navigatsiooni- ja geolokatsioonisüsteemides.
Anduri kalibreerimine
Kui olete mooduli HMC5883L jaoks juba mõne muu teegi installinud, peate selle desinstallima või kustutama. Vastasel juhul võite kalibreerimise ajal saada kompileerimisvigu või näha jadamonitoril hoiatusi. Soovitame kasutada Jarzebski raamatukogu saadaval GitHubis, kuna sellel on kõik selle jaotise jaoks vajalikud kalibreerimisressursid.
Esmalt laadige hoidlast alla ZIP-fail, klõpsates nuppu Kood > Laadige alla ZIP.
Järgmisena avage Arduino IDE ja klõpsake nuppu Sketš > Kaasa raamatukogu > Lisa raamatukogu.
Valige Arduino-HMC5883 zip-fail, mille just alla laadisite, ja Arduino IDE installib seejärel teegi teie jaoks automaatselt.
Käivitage hoidlas saadaolev kalibreerimissketš, liigutades samal ajal andurit üleslaadimisel tasasel pinnal. Jadamonitorilt saadud väärtused on teie anduri nihkeväärtused, mida saate projektide ajal kompassi kasutamisel näitude korrigeerimiseks kasutada.
Probleemid, millega võite kokku puutuda
Kompassimooduli Arduinoga liidestamisel võib tekkida mitmeid tõrkeid. Siin on mõned näited ja nende lahendused:
Koostamise vead: need võivad ilmneda, kui vajalikke teeke pole kaasatud või kui koodis on süntaksivigu. Selle parandamiseks veenduge, et olete installinud õiged teegid ja kontrollige oma koodi süntaksivigade suhtes. Nagu oleme korduvalt näinud, võisite kogemata installida mitu HCM5883L teeki.
Kompileerimise viga: "Adafruit_HMC5883_Unified" teeb mitte nimeta tüüp
Suhtlusvead: Kui te ei saa kompassimooduliga suhelda, veenduge, et olete selle oma Arduino õigete tihvtidega ühendanud ja juhtmestik on õige. Võimalik, et peate oma koodis kohandama ka mooduli I2C-aadressi, kui see erineb vaikeaadressist, mis on 0x1E.
Viga kasutades hmc5883l/testSeade (rida246) Viga anduriga HMC5883L suhtlemisel. Väärtus lugeda alates ID_A, ID_B ja ID_C registrid tehamitte vastavad eeldatavatele väärtustele.
Magnetilised häired: kui kompassi näidud on ebastabiilsed või kõikuvad, võib selle põhjuseks olla lähedalasuvate objektide magnetilised häired. Stabiilsemate näitude saamiseks viige moodul magnetitest või muudest magnetiliste häirete allikatest eemale.
Tõsta oma projekte GY-271 kompassimooduliga
Kompassimooduli GY-271 HCM5883L kasutamine avab ukse Arduino abil keerukamate isetegemisprojektide (nt GPS-iga juhitavad kulgurid ja DIY droonid) ehitamiseks. Võimalused on lõputud, eriti kui lisate teisi andureid.