Turinys:

Kaip naudoti GY511 modulį su „Arduino“[Sukurkite skaitmeninį kompasą]: 11 žingsnių
Kaip naudoti GY511 modulį su „Arduino“[Sukurkite skaitmeninį kompasą]: 11 žingsnių

Video: Kaip naudoti GY511 modulį su „Arduino“[Sukurkite skaitmeninį kompasą]: 11 žingsnių

Video: Kaip naudoti GY511 modulį su „Arduino“[Sukurkite skaitmeninį kompasą]: 11 žingsnių
Video: How to Control Multiple ESP8266 ESP01 Relays | RemoteXY | FLProg 2024, Lapkritis
Anonim
Kaip naudoti GY511 modulį su „Arduino“[Sukurkite skaitmeninį kompasą]
Kaip naudoti GY511 modulį su „Arduino“[Sukurkite skaitmeninį kompasą]

Apžvalga

Kai kuriuose elektronikos projektuose bet kuriuo metu turime žinoti geografinę vietą ir atitinkamai atlikti tam tikrą operaciją. Šioje pamokoje sužinosite, kaip naudoti „LSM303DLHC GY-511“kompaso modulį su „Arduino“skaitmeniniam kompasui gaminti. Pirmiausia sužinosite apie šį modulį ir kaip jis veikia, o tada pamatysite, kaip sujungti „LSM303DLHC GY-511“modulį su „Arduino“.

Ko išmoksi

  • Kas yra kompaso modulis?
  • Kompaso modulis ir „Arduino“sąsaja.
  • Sukurkite skaitmeninį kompasą naudodami modulį GY-511 ir „Arduino“.

1 žingsnis: Bendra informacija apie kompaso modulį

Bendra informacija apie kompaso modulį
Bendra informacija apie kompaso modulį

GY-511 modulį sudaro 3 ašių akselerometras ir 3 ašių magnetometras. Šis jutiklis gali išmatuoti tiesinį pagreitį esant visoms ± 2 g / ± 4 g / ± 8 g / ± 16 g skalėms ir magnetinius laukus esant visoms skalėms ± 1,3 / ± 1,9 / ± 2,5 / ± 4,0 / ± 4,7 / ± 5,6 / ± 8,1 Gausas.

Įdėjus šį modulį į magnetinį lauką, pagal Lorenco įstatymą jo mikroskopinėje ritėje sužadinama sužadinimo srovė. Kompaso modulis konvertuoja šią srovę į skirtingą įtampą kiekvienai koordinačių krypčiai. Naudodami šias įtampas galite apskaičiuoti magnetinį lauką kiekviena kryptimi ir gauti geografinę padėtį.

Patarimas

QMC5883L yra dar vienas dažniausiai naudojamas kompaso modulis. Šis modulis, turintis panašią struktūrą ir pritaikymą kaip ir LMS303 modulis, yra šiek tiek kitoks. Taigi, jei vykdote projektus, būkite atsargūs dėl savo modulio tipo. Jei jūsų modulis yra QMC5882L, naudokite atitinkamą biblioteką ir kodus, kurie taip pat įtraukti į mokymo programą.

2 žingsnis: reikalingi komponentai

Būtini komponentai
Būtini komponentai

Techninės įrangos komponentai

„Arduino UNO R3“*1

GY-511 3 ašių akselerometras + magnetometras *1

„TowerPro“servo variklis SG-90 *1

1602 LCD modulis *1

Džemperiai *1

Programinės įrangos programos

„Arduino IDE“

3 žingsnis: GY-511 kompaso modulio sąsaja su „Arduino“

Sąsajos GY-511 kompaso modulis su „Arduino“
Sąsajos GY-511 kompaso modulis su „Arduino“
Sąsajos GY-511 kompaso modulis su „Arduino“
Sąsajos GY-511 kompaso modulis su „Arduino“

„GY-511“kompaso modulis turi 8 kaiščius, tačiau norint prisijungti prie „Arduino“, reikia tik 4 iš jų. Šis modulis bendrauja su „Arduino“naudodamas I2C protokolą, todėl prijunkite modulio SDA (I2C išvestis) ir SCK (I2C laikrodžio įvestis) kaiščius prie „Arduino“plokštės I2C kaiščių.

Pastaba. Kaip matote, šiame projekte panaudojome modulį GY-511. Tačiau šią instrukciją galite naudoti nustatydami kitus LMS303 kompaso modulius.

4 žingsnis: GY-511 kompaso modulio kalibravimas

Norėdami naršyti, pirmiausia turite sukalibruoti modulį, o tai reiškia, kad reikia nustatyti matavimo diapazoną nuo 0 iki 360 laipsnių. Norėdami tai padaryti, prijunkite modulį prie „Arduino“, kaip parodyta žemiau, ir įkelkite šį kodą į savo plokštę. Įvykdę kodą, serijinio monitoriaus lange galite pamatyti mažiausią ir didžiausią X, Y ir Z ašių matavimo diapazono reikšmes. Šių skaičių jums reikės kitoje dalyje, todėl užsirašykite.

5 žingsnis: grandinė

Grandinė
Grandinė

6 žingsnis: kodas

Šiame kode jums reikia „Wire.h“bibliotekos, skirtos „I2C“ryšiui, ir „LMS303.h“bibliotekos, skirtos kompaso moduliui. Šias bibliotekas galite atsisiųsti iš šių nuorodų.

LMS303.h biblioteka

Wire.h biblioteka

Pastaba. Jei naudojate QMC5883, jums reikės šios bibliotekos:

MechaQMC5883L.h

Čia paaiškiname LMS303 kodą, tačiau taip pat galite atsisiųsti QMC modulio kodus.

Pažvelkime į kai kurias naujas funkcijas:

compass.enableDefault ();

Modulio inicijavimas

kompasas.skaityti ();

Kompaso modulio išvesties verčių skaitymas

run_min.z = min (running_min.z, kompasas.m.z); bėgimo_max.x = maks. (bėgimo_max.x, kompasas.m.x);

Mažiausių ir didžiausių matavimo diapazono verčių nustatymas lyginant išmatuotas vertes.

7 žingsnis: sukurkite skaitmeninį kompasą

Kalibravę modulį, mes sukursime kompasą, prijungę servo variklį prie modulio. Taigi, kad servo indikatorius visada parodytų mums šiaurės kryptį, kaip raudona kompaso rodyklė. Norėdami tai padaryti, pirmiausia kompaso modulis apskaičiuoja geografinę kryptį ir siunčia ją „Arduino“, o tada, taikydami atitinkamą koeficientą, apskaičiuosite kampą, kurį servo variklis turėtų pasukti, kad jo indikatorius būtų nukreiptas į magnetinę šiaurę. Galų gale mes pritaikome šį kampą servo varikliui.

8 žingsnis: grandinė

Grandinė
Grandinė

9 žingsnis: kodas

Kodas
Kodas

Šiai daliai jums taip pat reikia „Servo.h“bibliotekos, kuri pagal numatytuosius nustatymus yra įdiegta jūsų „Arduino“programinėje įrangoje.

Pažvelkime į kai kurias naujas funkcijas:

Servo servo1;

Modulio inicijavimas

kompasas.skaityti ();

Pristatome servo variklio objektą

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

Kompaso modulio ir servo variklio inicijavimas

„Servo1.attach“() argumentas yra prie servo variklio prijungto kaiščio numeris.

kompasas.m_min = (LSM303:: vektorius) { -32767, -32767, -32767}; kompasas.m_max = (LSM303:: vektorius) { +32767, +32767, +32767};

Naudodamiesi šiomis eilutėmis, apibrėžiate minimalias ir maksimalias ankstesnėje dalyje gauto diapazono matavimo vertes.

plūdės antraštė = kompasas. antraštė ((LSM303:: vektorius) {0, 0, 1});

Funkcija head () grąžina kampą tarp koordinačių ašies ir fiksuotos ašies. Fiksuotą ašį galite apibrėžti vektoriumi funkcijos argumente. Pavyzdžiui, čia, apibrėžiant (LSM303:: vektorių) {0, 0, 1}, Z ašis laikoma pastovia ašimi.

Servo1.raštas (antraštė);

Funkcija Servo1.write () servo varikliui taiko kompaso modulio nuskaitymo reikšmę.

Pastaba Atkreipkite dėmesį, kad servo variklis gali turėti magnetinį lauką, todėl geriau jį pastatyti tinkamu atstumu nuo kompaso modulio, kad kompaso modulis nenukryptų.

Rekomenduojamas: