Sisukord:

Kuidas kasutada GY511 moodulit Arduinoga [Digitaalse kompassi tegemine]: 11 sammu
Kuidas kasutada GY511 moodulit Arduinoga [Digitaalse kompassi tegemine]: 11 sammu

Video: Kuidas kasutada GY511 moodulit Arduinoga [Digitaalse kompassi tegemine]: 11 sammu

Video: Kuidas kasutada GY511 moodulit Arduinoga [Digitaalse kompassi tegemine]: 11 sammu
Video: Как управлять приводом с помощью Arduino - Robojax 2024, November
Anonim
Kuidas kasutada GY511 moodulit Arduinoga [tehke digitaalne kompass]
Kuidas kasutada GY511 moodulit Arduinoga [tehke digitaalne kompass]

Ülevaade

Mõnes elektroonikaprojektis peame igal hetkel teadma geograafilist asukohta ja tegema vastavalt sellele konkreetse toimingu. Selles õpetuses saate teada, kuidas kasutada digitaalse kompassi tegemiseks LSM303DLHC GY-511 kompassimoodulit koos Arduinoga. Esiteks saate teada selle mooduli ja selle toimimise kohta ning seejärel näete, kuidas ühendada LSM303DLHC GY-511 moodul Arduinoga.

Mida õpid

  • Mis on kompassimoodul?
  • Kompassimoodul ja Arduino liides.
  • Tehke digitaalne kompass GY-511 mooduli ja Arduino abil.

Samm: üldteave kompassimooduli kohta

Üldine teave kompassimooduli kohta
Üldine teave kompassimooduli kohta

GY-511 moodul sisaldab 3-teljelist kiirendusmõõturit ja 3-teljelist magnetomeetrit. See andur suudab mõõta lineaarset kiirendust täisväärtustel ± 2 g / ± 4 g / ± 8 g / ± 16 g ja magnetvälju täisväärtustel ± 1,3 / ± 1,9 / ± 2,5 / ± 4,0 / ± 4,7 / ± 5,6 / ± 8,1 Gauss.

Kui see moodul paigutatakse magnetvälja, indutseerib Lorentzi seaduse kohaselt selle mikroskoopilises mähises ergastusvool. Kompassimoodul teisendab selle voolu diferentsiaalpingeks iga koordinaadisuuna jaoks. Neid pingeid kasutades saate arvutada magnetvälja igas suunas ja saada geograafilise asukoha.

Nõuanne

QMC5883L on teine levinum kompassimoodul. See moodul, millel on sarnane struktuur ja rakendus nagu LMS303 moodulil, on jõudluse poolest pisut erinev. Nii et kui teete projekte, olge oma mooduli tüübi suhtes ettevaatlik. Kui teie moodul on QMC5882L, kasutage sobivat raamatukogu ja koode, mis on samuti õpetuses kaasas.

2. samm: nõutavad komponendid

Nõutavad komponendid
Nõutavad komponendid

Riistvara komponendid

Arduino UNO R3 *1

GY-511 3-teljeline kiirendusmõõtur + magnetomeeter *1

TowerPro servomootor SG-90 *1

1602 LCD -moodul *1

Džemprid *1

Tarkvararakendused

Arduino IDE

3. samm: GY-511 kompassimooduli liidestamine Arduinoga

Liidese GY-511 kompassimoodul Arduinoga
Liidese GY-511 kompassimoodul Arduinoga
Liidese GY-511 kompassimoodul Arduinoga
Liidese GY-511 kompassimoodul Arduinoga

GY-511 kompassimoodulil on 8 tihvti, kuid Arduinoga liidestamiseks vajate neid ainult 4. See moodul suhtleb Arduinoga, kasutades I2C protokolli, nii et ühendage mooduli SDA (I2C väljund) ja SCK (I2C kella sisend) kontaktid Arduino tahvli I2C tihvtidega.

Märkus. Nagu näete, oleme selles projektis kasutanud moodulit GY-511. Kuid seda juhist saate kasutada ka teiste LMS303 kompassimoodulite seadistamiseks.

4. samm: kompassimooduli GY-511 kalibreerimine

Navigeerimiseks tuleb esmalt moodul kalibreerida, mis tähendab mõõtmisvahemiku seadmist 0 kuni 360 kraadi. Selleks ühendage moodul Arduinoga, nagu allpool näidatud, ja laadige oma pardal üles järgmine kood. Pärast koodi täitmist näete jadamonitori aknas X, Y ja Z telje mõõtepiirkonna minimaalseid ja maksimaalseid väärtusi. Neid numbreid vajate järgmises osas, nii et kirjutage need üles.

Samm: vooluring

Vooluring
Vooluring

6. samm: kood

Selles koodis vajate I2C side jaoks Wire.h raamatukogu ja kompassimooduli jaoks LMS303.h raamatukogu. Neid raamatukogusid saate alla laadida järgmistelt linkidelt.

LMS303.h raamatukogu

Wire.h raamatukogu

Märkus. Kui kasutate QMC5883, vajate järgmist teeki:

MechaQMC5883L.h

Siin selgitame LMS303 koodi, kuid saate alla laadida ka QMC mooduli koodid.

Vaatame mõnda uut funktsiooni:

kompass.enableDefault ();

Mooduli lähtestamine

kompass.lugemine ();

Kompassimooduli väljundväärtuste lugemine

jooksmine_min.z = min (jooksmine_min.z, kompass.m.z); jooksva_max.x = max (jooksva_max.x, kompass.m.x);

Mõõtepiirkonna miinimum- ja maksimumväärtuste määramine mõõdetud väärtuste võrdlemise teel.

Samm: digitaalse kompassi tegemine

Pärast mooduli kalibreerimist ehitame kompassi, ühendades mooduli külge servomootori. Nii et servoindikaator näitab meile alati põhja suunda, nagu punane nool kompassil. Selleks arvutab kompassimoodul kõigepealt välja geograafilise suuna ja saadab selle Arduinole ning seejärel, sobiva koefitsiendi rakendamisega, arvutate servomootori pöörlemisnurga nii, et selle indikaator osutaks magnetilise põhja poole. Lõpuks rakendame selle nurga servomootorile.

8. samm: ahel

Vooluring
Vooluring

9. samm: kood

Kood
Kood

Selle osa jaoks on teil vaja ka raamatukogu Servo.h, mis on vaikimisi teie Arduino tarkvarasse installitud.

Vaatame mõnda uut funktsiooni:

Servo Servo1;

Mooduli lähtestamine

kompass.lugemine ();

Servomootori objekti tutvustus

Servo1.attach (servoPin); kompass.init (); kompass.enableDefault ();

Kompassimooduli ja servomootori initsialiseerimine

Argument Servo1.attach () on servomootoriga ühendatud tihvti number.

kompass.m_min = (LSM303:: vektor) { -32767, -32767, -32767}; kompass.m_max = (LSM303:: vektor) { +32767, +32767, +32767};

Nende joonte abil saate määratleda eelmises osas saadud vahemiku mõõtmise minimaalsed ja maksimaalsed väärtused.

ujukipealkiri = kompass.pealkiri ((LSM303:: vektor) {0, 0, 1});

Funktsioon rubriik () tagastab nurga koordinaattelje ja fikseeritud telje vahel. Fikseeritud telje saate funktsiooni argumendis vektoriga määratleda. Näiteks siin, määratledes (LSM303:: vektor) {0, 0, 1}, loetakse Z -telg konstantseks teljeks.

Servo1.write (rubriik);

Funktsioon Servo1.write () rakendab kompassimooduli lugemisväärtuse servomootorile.

Märkus. Pange tähele, et servomootoril võib olla magnetväli, seega on parem paigutada servomootor kompassimoodulist sobivale kaugusele, nii et see ei põhjusta kompassimooduli kõrvalekaldeid.

Soovitan: