Tartalomjegyzék:

A GY511 modul használata Arduino -val [Készítsen digitális iránytűt]: 11 lépés
A GY511 modul használata Arduino -val [Készítsen digitális iránytűt]: 11 lépés

Videó: A GY511 modul használata Arduino -val [Készítsen digitális iránytűt]: 11 lépés

Videó: A GY511 modul használata Arduino -val [Készítsen digitális iránytűt]: 11 lépés
Videó: use flowcode with GY-511 module 2024, November
Anonim
A GY511 modul használata Arduino -val [Készítsen digitális iránytűt]
A GY511 modul használata Arduino -val [Készítsen digitális iránytűt]

Áttekintés

Egyes elektronikai projekteknél bármikor ismernünk kell a földrajzi helyet, és ennek megfelelően kell elvégeznünk egy adott műveletet. Ebben az oktatóanyagban megtudhatja, hogyan használhatja az LSM303DLHC GY-511 iránytűmodult az Arduino-val digitális iránytű készítéséhez. Először is megismerheti ezt a modult és működését, majd látni fogja, hogyan illesztheti össze az LSM303DLHC GY-511 modult az Arduino-val.

Mit fog tanulni

  • Mi az iránytű modul?
  • Iránytű modul és Arduino interfész.
  • Készítsen digitális iránytűt a GY-511 modul és az Arduino segítségével.

1. lépés: Általános információk az iránytű modulról

Általános információk az iránytű modulról
Általános információk az iránytű modulról

A GY-511 modul 3 tengelyes gyorsulásmérőt és 3 tengelyes magnetométert tartalmaz. Ez az érzékelő képes mérni a lineáris gyorsulást ± 2 g / ± 4 g / ± 8 g / ± 16 g teljes skálán és a mágneses mezőt ± 1,3 / ± 1,9 / ± 2,5 / ± 4,0 / ± 4,7 / ± 5,6 teljes skálán / ± 8,1 Gauss.

Amikor ezt a modult mágneses mezőbe helyezzük, a Lorentz -törvény szerint gerjesztőáramot indukál a mikroszkopikus tekercsében. Az iránytű modul ezt az áramot minden koordinátairányra differenciális feszültséggé alakítja át. Ezekkel a feszültségekkel kiszámíthatja a mágneses mezőt minden irányban, és megkaphatja a földrajzi helyzetet.

Tipp

A QMC5883L egy másik általánosan használt iránytű modul. Ez a modul, amelynek szerkezete és alkalmazása hasonló az LMS303 modulhoz, teljesítményében kissé eltér. Tehát ha a projekteket végzi, ügyeljen a modul típusára. Ha a modul QMC5882L, használja a megfelelő könyvtárat és kódokat, amelyek szintén megtalálhatók az oktatóanyagban.

2. lépés: Szükséges összetevők

Szükséges összetevők
Szükséges összetevők

Hardver alkatrészek

Arduino UNO R3 *1

GY-511 3 tengelyes gyorsulásmérő + magnetométer *1

TowerPro szervomotor SG-90 *1

1602 LCD modul *1

Jumper *1

Szoftveralkalmazások

Arduino IDE

3. lépés: A GY-511 iránytűmodul illesztése az Arduino-val

Interfész GY-511 iránytű modul Arduino-val
Interfész GY-511 iránytű modul Arduino-val
Interfész GY-511 iránytű modul Arduino-val
Interfész GY-511 iránytű modul Arduino-val

A GY-511 iránytűmodul 8 tűvel rendelkezik, de csak négyből kell csatlakoznia az Arduino-hoz. Ez a modul az Arduino -val kommunikál az I2C protokoll használatával, ezért csatlakoztassa a modul SDA (I2C kimenete) és SCK (I2C óra bemenet) csapjait az Arduino kártya I2C csapjaihoz.

Megjegyzés: Mint látható, ebben a projektben a GY-511 modult használtuk. De ezt az utasítást más LMS303 iránytű modulok beállítására is használhatja.

4. lépés: A GY-511 iránytű modul kalibrálása

A navigáláshoz először kalibrálnia kell a modult, ami azt jelenti, hogy a mérési tartományt 0 és 360 fok között kell beállítani. Ehhez csatlakoztassa a modult az Arduino -hoz az alábbiak szerint, és töltse fel a következő kódot a táblára. A kód végrehajtása után a soros monitor ablakban láthatja az X, Y és Z tengely mérési tartományának minimális és maximális értékeit. Ezekre a számokra lesz szüksége a következő részben, ezért írja le őket.

5. lépés: Áramkör

Áramkör
Áramkör

6. lépés: Kód

Ebben a kódban szüksége van a Wire.h könyvtárra az I2C kommunikációhoz, és az LMS303.h könyvtárra az iránytű modulhoz. Ezeket a könyvtárakat az alábbi linkekről töltheti le.

LMS303.h Könyvtár

Wire.h Könyvtár

Megjegyzés: Ha QMC5883 -at használ, a következő könyvtárra lesz szüksége:

MechaQMC5883L.h

Itt elmagyarázzuk az LMS303 kódját, de letöltheti a QMC modul kódjait is.

Lássunk néhány új funkciót:

compass.enableDefault ();

A modul inicializálása

iránytű.olvasás ();

Az iránytű modul kimeneti értékeinek leolvasása

fut_min.z = perc (fut_min.z, iránytű.m.z); futó_max.x = max (futó_max.x, iránytű.m.x);

A mérési tartomány minimális és maximális értékeinek meghatározása a mért értékek összehasonlításával.

7. lépés: Digitális iránytű készítése

A modul kalibrálása után iránytűt fogunk építeni úgy, hogy egy szervo motort csatlakoztatunk a modulhoz. Annak érdekében, hogy a szervo jelző mindig északi irányt mutasson nekünk, mint az iránytű piros nyílja. Ehhez először az iránytű modul kiszámítja a földrajzi irányt, majd elküldi az Arduino -nak, majd a megfelelő együttható alkalmazásával kiszámítja azt a szöget, amelyet a szervomotornak el kell forgatnia, hogy jelzője a mágneses észak felé mutasson. Végül ezt a szöget alkalmazzuk a szervomotorra.

8. lépés: Áramkör

Áramkör
Áramkör

9. lépés: Kód

Kód
Kód

Ehhez a részhez szüksége van a Servo.h könyvtárra is, amely alapértelmezés szerint az Arduino szoftverre van telepítve.

Lássunk néhány új funkciót:

Szervo szervo1;

A modul inicializálása

iránytű.olvasás ();

Bemutatjuk a szervomotoros objektumot

Servo1.attach (servoPin); iránytű.init (); compass.enableDefault ();

Az iránytű modul és a szervomotor inicializálása

A Servo1.attach () argumentum a szervomotorhoz csatlakoztatott csapok száma.

iránytű.m_min = (LSM303:: vektor) { -32767, -32767, -32767}; iránytű.m_max = (LSM303:: vektor) { +32767, +32767, +32767};

Ezekkel a sorokkal határozhatja meg az előző részben kapott tartomány mérésének minimális és maximális értékeit.

float head = compass.heading ((LSM303:: vektor) {0, 0, 1});

A head () függvény a koordináta tengely és a rögzített tengely közötti szöget adja vissza. A fix tengelyt egy vektorral definiálhatja a függvény argumentumban. Például itt az (LSM303:: vektor) {0, 0, 1} meghatározásával a Z tengely állandó tengelynek számít.

Servo1.write (fejléc);

A Servo1.write () függvény az iránytű modul olvasási értékét alkalmazza a szervomotorra.

Megjegyzés Vegye figyelembe, hogy a szervomotor mágneses mezővel rendelkezhet, ezért jobb, ha a szervomotort megfelelő távolságra helyezi el az iránytűmodultól, hogy ne okozzon eltérést az iránytűmodultól.

Ajánlott: