Leírás
A GY-271 (QMC5883P – HP5883) mágnesesség- és iránytűszenzor egy háromtengelyű magnetométer. Arduino, ESP32 vagy más I2C-képes vezérlő mellé kötve megkapjuk az X, Y és Z tengely mentén mért mágneses tér értékét, ebből pedig már lehet irányt számolni, mágneses teret figyelni vagy egy robot tájolását kiegészíteni.
Ennél a változatnál érdemes rögtön megnézni, mi van ténylegesen a panelen. A chip felirata HP5883, mögötte QMC5883P érzékelő dolgozik, az I2C-címe pedig 0x2C. Ez azért számít, mert GY-271 néven többféle szenzor került forgalomba. Egy régi HMC5883L-hez írt példaprogram ettől még szépen lefordulhat, csak éppen nem ezt a szenzort fogja megszólítani.
Ha elektronikus iránytűt építesz, maga a modul még csak a mágneses tér három komponensét adja oda. Az északi irányt a program számolja ki ezekből. Vízszintesen tartott panelnél ez egyszerű feladat, dönthető robotnál vagy kézben forgatott műszernél viszont már a dőlést is bele kell venni a számításba.
És itt jön az a rész, amit magnetométernél tényleg nem érdemes félvállról venni: a szenzor mindent megmér, ami mágneses teret kelt körülötte. Motort, mágnest, hangszórót, acélcsavart, nagy áramot vivő vezetéket. Ha a panel rossz helyre kerül, azt programból csak korlátozottan lehet helyrehozni.
Mire használjuk a gyakorlatban?
Képzelj el egy kis kétkerekű robotot. A kerékjeladó szépen megmondja, mennyit fordult a kerék. A giroszkóp jól követi a gyors elfordulásokat. A magnetométer ehhez hozzá tud adni egy olyan irányinformációt, amely a környezet mágneses teréhez kötődik.
A GY-271 (QMC5883P – HP5883) mágnesesség- és iránytűszenzor X, Y és Z értékeket ad. Ha a modul vízszintesen áll, az X és Y tengelyből atan2() számítással előállítható egy irányszög. Ezt már ki lehet írni fokban, kirajzolni egy kijelzőre, vagy be lehet vinni egy szabályozásba.
GPS mellé is érdekes. A GPS mozgás közben jól meg tudja mondani a haladási irányt, álló helyzetben viszont ebből kevés információ marad. A magnetométer ilyenkor is érzékeli a mágneses irányt, feltéve, hogy rendesen van elhelyezve és kalibrálva.
Ugyanebből a szenzorból nem kötelező iránytűt készíteni. Ha az X, Y és Z értékeket közvetlenül figyeled, mágnes közeledését, mágneses tér változását vagy egy kísérleti elektromágnes környezetét is lehet vele vizsgálni.
Bekötés és első életjel
Az alapbekötés egyszerű: VCC, GND, SDA és SCL. A panel 3,3-6 V tápfeszültségről használható, az adatkapcsolat I2C buszon történik.
Első bekapcsolás után célszerű egy I2C scannert futtatni. Ha minden rendben van, a modul 0x2C címen jelentkezik. Ez rögtön sok hibakeresést megspórol, mert innen már tudható, hogy a vezérlő látja a szenzort és jó irányban érdemes továbbmenni.
Arduino környezetben QMC5883P-hez készült könyvtár kell, például az Adafruit_QMC5883P. A HMC5883L és QMC5883L névre írt régebbi könyvtárakat nem érdemes erőltetni ennél a változatnál, mert más regiszterkiosztással dolgoznak.
ESP32 mellett az I2C kommunikációt 3,3 V-os logikai szinten célszerű tartani. A vezetékek pedig maradjanak rövidek. Egy robot belsejében eleve van elég motorzaj és kapcsolási zavar, nem sokat nyerünk azzal, ha még fél méter I2C vezetéket is hozzáadunk.
Hol használható jól?
- mobil robot tájolásának kiegészítésére;
- Arduino vagy ESP32 alapú digitális iránytűhöz;
- GPS mellé álló helyzetű irány meghatározására;
- mágneses tér változásának naplózására;
- mágnes közeledésének vagy mozgásának vizsgálatára;
- gyorsulásmérő és giroszkóp mellé egy IMU rendszerben;
- I2C és háromtengelyű mérés oktatási bemutatására.
Mire kell figyelni beüzemeléskor?
| Mire figyelj? | Mit okoz? |
|---|---|
| QMC5883P-hez készült program fut? | A modul 0x2C címet és QMC5883P regiszterkiosztást használ. |
| Motor vagy mágnes van a közelben? | Az irányérték elhúzódhat, akár látványosan is. |
| A kész szerkezetben kalibráltad? | Így a környező fémalkatrészek állandó hatása jobban korrigálható. |
| Vízszintesen marad a panel? | Egyszerű X/Y számításnál a dőlés irányhibát visz a mérésbe. |
| Mekkora méréstartomány van beállítva? | Kisebb tartomány finomabb méréshez, nagyobb tartomány erősebb mágneses térhez használható. |
| Milyen gyorsan kell új adat? | Lassan változó irányhoz kisebb, gyors mozgáshoz nagyobb mintavétel választható. |
A kalibrálást érdemes komolyan venni
A magnetométer nem tudja, hogy melyik mágneses tér a Földé, és melyiket okozza a mellettünk lévő motor. Mindent együtt mér.
Ezért célszerű a szenzort már a végleges helyére felszerelve kalibrálni. A kész szerkezetet lassan több irányba átforgatva össze lehet gyűjteni az egyes tengelyek minimum- és maximumértékeit. Ezekből a programban korrigálható az állandó eltolás jelentős része.
Robotnál különösen árulkodó próba, ha álló motor mellett stabil az irány, motorindításkor pedig elmozdul. Ilyenkor nem feltétlenül a képlettel van baj. Gyakran maga a motor, a hozzá vezető kábel vagy a motorvezérlő környéke változtatja meg a szenzor által látott mágneses teret.
Ilyen esetben előbb a panel helyét érdemes megváltoztatni. Néhány centiméter távolság sokkal többet jelenthet, mint újabb és újabb szoftveres korrekciók hozzáadása.
Méréstartományból sem mindig a nagyobb a jobb
A QMC5883P ±2, ±8, ±12 és ±30 G tartományokkal használható.
A Föld mágneses tere viszonylag gyenge, ezért iránytűs alkalmazásnál általában a kisebb tartomány érdekesebb. Így a rendelkezésre álló felbontás nagyobb része használható ki azon a tartományon, ahol valóban mérünk.
Ha viszont mágnest viszel a szenzor közelébe, vagy olyan berendezésben dolgozik, ahol erősebb mágneses tér jelenik meg, könnyen kifuthatsz a szűk tartományból. Ilyenkor át lehet váltani ±8, ±12 vagy ±30 G értékre.
A normál mintavétel 10, 50, 100 vagy 200 Hz lehet. Egy kijelzőn forgó iránytűhöz nincs szükség feltétlenül 200 új mérésre másodpercenként. Robotvezérlésnél viszont már hasznos lehet a sűrűbb adatfolyam.
A mintavételt tehát érdemes ahhoz igazítani, amit a program ténylegesen csinál az adatokkal.
Mi történik, ha megdől a modul?
Egy asztalon fekvő iránytűnél kényelmes dolgunk van. Az X és Y tengely közel vízszintes síkban marad, így az irány számítása egyszerű.
Egy robot viszont felmegy egy rámpára, egy kézi műszert pedig megdöntünk használat közben. Ilyenkor a Föld mágneses terének egy része más tengelyekre vetül, ezért az egyszerű X/Y számítás már mást fog mutatni.
Dőléskompenzált iránytűhöz gyorsulásmérő is kell. Abból meghatározható a panel helyzete, majd a magnetométer három tengelyének adatai ennek megfelelően korrigálhatók.
Ha már van a projektben gyorsulásmérő és giroszkóp, érdemes a három szenzort együtt kezelni. A giroszkóp gyors, rövid idejű forgásváltozást követ, a gyorsulásmérő segít a dőlés meghatározásában, a magnetométer pedig mágneses irányreferenciát ad.
Amikor más érzékelő vagy kiegészítés kell
- Térben dönthető eszköz irányának meghatározásához gyorsulásmérővel érdemes kiegészíteni.
- Erős mágneses zavar mellett először a szenzor számára kell jobb beépítési helyet keresni.
- Laborpontosságú mágneses tér méréséhez kalibrált mérőműszer szükséges.
- HMC5883L-re rögzített, módosíthatatlan programhoz HMC5883L-kompatibilis érzékelő kell.
- Több 0x2C című QMC5883P egy buszon I2C multiplexerrel vagy külön I2C perifériákkal kezelhető.
Műhelytipp
Ha iránytűt építesz, az első próba ne az legyen, hogy rögtön felcsavarozod a szenzort a motorvezérlő mellé. Kösd rá a vezérlőre, olvasd ki az X, Y és Z értékeket, majd lassan forgasd körbe az asztalon.
Ezután közelíts hozzá egy csavarhúzót, mágnest vagy működő motort. Rögtön látszani fog, mennyire érzékeny a környezetére. Ebből már sokkal könnyebb eldönteni, hová kerüljön a kész szerkezetben.
A végleges hely kiválasztása után jöhet a kalibrálás. Így a szoftver már abból az állapotból indul, amelyben a szenzor ténylegesen használva lesz.
Műszaki jellemzők
| Jellemző | Érték |
|---|---|
| Terméktípus: | háromtengelyű digitális magnetométer modul |
| Modul: | GY-271 |
| Szenzorchip: | QMC5883P, HP 5883 felirattal |
| Kommunikáció: | I2C |
| I2C-cím: | 0x2C |
| I2C órajel: | 100 kHz / 400 kHz |
| Mérési tengelyek: | X, Y, Z |
| ADC felbontás: | 16 bit |
| Méréstartomány: | ±2 / ±8 / ±12 / ±30 G |
| Normál mintavétel: | 10 / 50 / 100 / 200 Hz |
| Modul tápfeszültsége: | 3,3-6 V |
Dokumentáció
Csomag
- 1 db GY-271 (QMC5883P – HP5883) mágnesesség- és iránytűszenzor
- 1 db forrasztható tüskesor
FAQ/GYIK
<section class="product-faq" aria-labelledby="product-faq-title">
<h2 id="product-faq-title">Gyakran ismételt kérdések a GY-271 QMC5883P - HP5883 mágnesesség- és iránytűszenzorról</h2>
<article class="faq-item">
<h3>Milyen érzékelő van ezen a GY-271 modulon?</h3>
<p>Ez a változat HP5883 feliratú QMC5883P magnetométert használ. Programozáskor ezért QMC5883P-hez készült könyvtárral vagy regiszterkezeléssel érdemes indulni.</p>
</article>
<article class="faq-item">
<h3>Milyen I2C-címet keressek első bekapcsoláskor?</h3>
<p>A modul 0x2C címen jelentkezik. Egy egyszerű I2C scanner jó első próba, mert rögtön kiderül belőle, hogy a tápellátás és az SDA/SCL kapcsolat működik-e.</p>
</article>
<article class="faq-item">
<h3>Miért nem indul el vele egy régi HMC5883L példaprogram?</h3>
<p>A HMC5883L és a QMC5883P eltérő I2C-címet és regiszterkiosztást használ. Ehhez a modulhoz QMC5883P-kezelés szükséges.</p>
</article>
<article class="faq-item">
<h3>Hogyan lesz a szenzor adataiból iránytű?</h3>
<p>A modul X, Y és Z mágneses téradatokat ad. Vízszintes helyzetben az X és Y értékből atan2 számítással képezhető irányszög, amely kalibrációval tovább pontosítható.</p>
</article>
<article class="faq-item">
<h3>Miért fordul el az irányérték, amikor elindítom a robot motorját?</h3>
<p>A motor és a nagyáramú vezeték saját mágneses teret hoz létre, amit a szenzor is lát. Ilyenkor elsőként a magnetométer helyét érdemes átgondolni, mert néhány centiméter távolság is sokat számíthat.</p>
</article>
<article class="faq-item">
<h3>Kalibrálni kell a modult?</h3>
<p>Iránytűként használva érdemes a végleges szerkezetben kalibrálni. Forgatás közben összegyűjthetők a tengelyenkénti minimum- és maximumértékek, amelyekből korrigálható az állandó mágneses eltolás egy része.</p>
</article>
<article class="faq-item">
<h3>Mi történik, ha a robot megdől?</h3>
<p>A mágneses tér másképp vetül az X, Y és Z tengelyre, ezért az egyszerű kétdimenziós irányszámítás pontatlanabb lesz. Dőlő rendszerben gyorsulásmérővel érdemes dőléskompenzációt készíteni.</p>
</article>
<article class="faq-item">
<h3>Melyik méréstartományt használjam iránytűhöz?</h3>
<p>A Föld mágneses terének méréséhez általában a kisebb tartomány az érdekesebb. Erősebb mágneses tér közelében nagyobb tartományra lehet váltani, hogy a mérés ne fusson ki a szenzor határából.</p>
</article>
<article class="faq-item">
<h3>Mekkora mintavételi sebességet érdemes beállítani?</h3>
<p>Kijelzős iránytűhöz a 10 vagy 50 Hz is kényelmes lehet. Gyorsabban forduló robotnál a 100 vagy 200 Hz sűrűbb adatot ad a vezérlés számára.</p>
</article>
<article class="faq-item">
<h3>Használható GPS mellett?</h3>
<p>Igen. Mozgás közben a GPS haladási iránya és a magnetométer mágneses iránya jól kiegészítheti egymást, álló helyzetben pedig a magnetométer továbbra is szolgáltat irányinformációt.</p>
</article>
<article class="faq-item">
<h3>Mágnesek vizsgálatára is használható?</h3>
<p>Igen. Az X, Y és Z tengely nyers adataiból közvetlenül követhető a mágneses tér változása, a megfelelő méréstartományon belül.</p>
</article>
<article class="faq-item">
<h3>Hová érdemes tenni a modult egy roboton?</h3>
<p>Olyan helyet érdemes keresni, amely távolabb van a motoroktól, mágnesektől, hangszórótól és nagy áramot vivő vezetékektől. A végleges hely kiválasztása után célszerű elvégezni a kalibrálást.</p>
</article>
</section>A GY‑271 modul egy háromtengelyű mágneses iránytű szenzor, amelynek áramköri lapján többféle, egymással nem kompatibilis chipváltozat is megjelenhet – a feliratuk alapján azonosíthatók:
- DA 5883: QMC5883L chip, 0x0D vagy 0x1D címen érhető el – ez a leggyakoribb QST-gyártmány.
- HP 5883: újabb QMC5883P chip, 0x2C címmel – ezzel a változattal a korábbi szoftverek nem kompatibilisek!
- L 5883 / HMC5883L: eredeti Honeywell chip, 0x1E címen – más regisztertérképpel.
Ez a termék a HP5883 (QMC5883P) chippel szerelt!
A GY‑271 modul külsőre azonos, de a rajta lévő chip alapján más I²C cím és eltérő működés jellemzi. Az HP5883 felirattal jelölt példány már QMC5883P chipet tartalmaz, amely más konfigurációs regisztereket, adatkiolvasási sorrendet és módvezérlést használ. Ezért minden fejlesztés előtt szükséges az azonosítás (pl. i2c-scan segítségével).
A QMC‑sorozat – legyen az L vagy P – egyaránt tartalmaz 3 tengelyű mágneses érzékelőt, amelyet egy 16 bites ADC és ASIC rendszer olvas ki és kompenzál. Az ASIC felelős a hőmérsékleti kompenzációért, az ofszet‑korrekcióért, illetve a zajszűrésért is. A modul ideális kompakt tájolóként, drónokban, mobilrobotokban, valamint mágneses mezők monitorozására.
Fő előnyök
- HP5883/QMC5883P chippel szerelt változat – 0x2C I²C címmel
- 3 tengelyű mágneses érzékelés, 16 bites felbontás, integrált kompenzációs ASIC
- I²C interfész, egyszerű csatlakoztatás Arduino/ESP rendszerekhez
- Kompakt méret, alacsony fogyasztás, jól illeszkedik mobil projektekbe
Műszaki jellemzők
- Chipváltozat (lehetséges): DA5883 (QMC5883L) / HP5883 (QMC5883P)
- I²C cím: HP5883: 0x2C
- Tápfeszültség: 3,3-6 V
- Működési áram: aktív módban <100 μA
- Felbontás: 16 bit
- Mérési tartomány: ±200 μT – ±2000 μT
- Interfész: SDA, SCL, VCC, GND (+ DRDY)
- Fizikai méret: kb. 15 × 14 mm, pinraszter 2,54 mm
Dokumentáció
- HP5883 (QMC5883P) Arduino fórum
- Arduino library – a keretrendszer tartalmazza
Csomag tartalma
- 1 db GY‑271 modul QMC5883P chipváltozattal (HP5883)
- 1 db 5 tűs tüskesor (forrasztható csatlakozó)












Értékelések
Még nincsenek értékelések.