Sisällysluettelo:

Kuinka käyttää GY511 -moduulia Arduinon kanssa [Tee digitaalinen kompassi]: 11 vaihetta
Kuinka käyttää GY511 -moduulia Arduinon kanssa [Tee digitaalinen kompassi]: 11 vaihetta

Video: Kuinka käyttää GY511 -moduulia Arduinon kanssa [Tee digitaalinen kompassi]: 11 vaihetta

Video: Kuinka käyttää GY511 -moduulia Arduinon kanssa [Tee digitaalinen kompassi]: 11 vaihetta
Video: Review of 18650 4 channel Lithium Battery Capacity Tester, Charger and Discharge | WattHour 2024, Marraskuu
Anonim
Kuinka käyttää GY511 -moduulia Arduinon kanssa [Tee digitaalinen kompassi]
Kuinka käyttää GY511 -moduulia Arduinon kanssa [Tee digitaalinen kompassi]

Yleiskatsaus

Joissakin elektroniikkahankkeissa meidän on tiedettävä maantieteellinen sijainti milloin tahansa ja tehtävä tietty toiminto sen mukaisesti. Tässä opetusohjelmassa opit käyttämään LSM303DLHC GY-511 -kompassimoduulia Arduinon kanssa digitaalisen kompassin tekemiseen. Ensin opit tästä moduulista ja sen toiminnasta, ja sitten näet kuinka liittää LSM303DLHC GY-511 -moduuli Arduinon kanssa.

Mitä opit

  • Mikä on kompassimoduuli?
  • Kompassimoduuli ja Arduino -käyttöliittymä.
  • Tee digitaalinen kompassi GY-511-moduulin ja Arduinon avulla.

Vaihe 1: Yleistä kompassimoduulista

Yleistä tietoa kompassimoduulista
Yleistä tietoa kompassimoduulista

GY-511-moduulissa on 3-akselinen kiihtyvyysmittari ja 3-akselinen magnetometri. Tämä anturi voi mitata lineaarisen kiihtyvyyden täydellä asteikolla ± 2 g / ± 4 g / ± 8 g / ± 16 g ja magneettikentän täydellä asteikolla ± 1,3 / ± 1,9 / ± 2,5 / ± 4,0 / ± 4,7 / ± 5,6 / ± 8,1 Gauss.

Kun tämä moduuli asetetaan magneettikenttään, Lorentzin lain mukaan viritysvirta indusoi sen mikroskooppisessa kelassa. Kompassimoduuli muuntaa tämän virran differentiaalijännitteeksi kullekin koordinaattisuunnalle. Näillä jännitteillä voit laskea magneettikentän kumpaankin suuntaan ja saada maantieteellisen sijainnin.

Kärki

QMC5883L on toinen yleisesti käytetty kompassimoduuli. Tämä moduuli, jolla on samanlainen rakenne ja sovellus kuin LMS303 -moduulilla, on hieman erilainen suorituskyvyssä. Joten jos teet projekteja, ole varovainen moduulityypin suhteen. Jos moduulisi on QMC5882L, käytä asianmukaista kirjastoa ja koodeja, jotka sisältyvät myös opetusohjelmaan.

Vaihe 2: Tarvittavat komponentit

Pakolliset osat
Pakolliset osat

Laitteiston osat

Arduino UNO R3 *1

GY-511 3-akselinen kiihtyvyysmittari + magnetometri *1

TowerPro-servomoottori SG-90 *1

1602 LCD -moduuli *1

Puserot *1

Ohjelmistosovellukset

Arduino IDE

Vaihe 3: Liitä GY-511-kompassimoduuli Arduinon kanssa

Liitäntä GY-511-kompassimoduuli Arduinon kanssa
Liitäntä GY-511-kompassimoduuli Arduinon kanssa
Liitäntä GY-511-kompassimoduuli Arduinon kanssa
Liitäntä GY-511-kompassimoduuli Arduinon kanssa

GY-511-kompassimoduulissa on 8 nastaa, mutta tarvitset vain 4 niistä liittääksesi Arduinon. Tämä moduuli kommunikoi Arduinon kanssa käyttäen I2C -protokollaa, joten liitä moduulin SDA (I2C -lähtö) ja SCK (I2C -kellotulo) -nastat Arduino -kortin I2C -nastoihin.

Huomautus Kuten näette, olemme käyttäneet GY-511-moduulia tässä projektissa. Voit kuitenkin käyttää tätä ohjetta muiden LMS303 -kompassimoduulien määrittämiseen.

Vaihe 4: GY-511-kompassimoduulin kalibrointi

Navigoidaksesi sinun on ensin kalibroitava moduuli, mikä tarkoittaa mittausalueen asettamista 0 - 360 astetta. Voit tehdä tämän yhdistämällä moduulin Arduinoon alla kuvatulla tavalla ja lataamalla seuraavan koodin taulullesi. Kun olet suorittanut koodin, näet mittausalueen minimi- ja maksimiarvot X-, Y- ja Z -akselille sarjamonitori -ikkunassa. Tarvitset näitä numeroita seuraavassa osassa, joten kirjoita ne muistiin.

Vaihe 5: Piiri

Piiri
Piiri

Vaihe 6: Koodi

Tässä koodissa tarvitset Wire.h -kirjaston I2C -viestintään ja LMS303.h -kirjaston kompassimoduuliin. Voit ladata nämä kirjastot seuraavista linkeistä.

LMS303.h kirjasto

Wire.h -kirjasto

Huomautus Jos käytät QMC5883 -laitetta, tarvitset seuraavan kirjaston:

MechaQMC5883L.h

Tässä selitämme LMS303: n koodin, mutta voit ladata myös QMC -moduulin koodit.

Katsotaanpa joitain uusia toimintoja:

kompassi.enableDefault ();

Moduulin alustus

kompassi.luku ();

Kompassimoduulin lähtöarvojen lukeminen

käynnissä_min.z = min (käynnissä_min.z, kompassi.m.z); käynnissä_max.x = maksimi (juokseva_maksi.x, kompassi.m.x);

Mittausalueen minimi- ja maksimiarvojen määrittäminen vertaamalla mitattuja arvoja.

Vaihe 7: Digitaalisen kompassin luominen

Moduulin kalibroinnin jälkeen rakennamme kompassin kytkemällä servomoottorin moduuliin. Joten servo -ilmaisin näyttää aina pohjoisen suunnan, kuten kompassin punainen nuoli. Tätä varten kompassimoduuli laskee ensin maantieteellisen suunnan ja lähettää sen Arduinolle, ja sitten soveltamalla sopivaa kerrointa lasketaan kulma, jonka servomoottori pyörii niin, että sen osoitin osoittaa magneettista pohjoista. Lopulta käytämme tätä kulmaa servomoottoriin.

Vaihe 8: Piiri

Piiri
Piiri

Vaihe 9: Koodi

Koodi
Koodi

Tätä osaa varten tarvitset myös Servo.h -kirjaston, joka on oletusarvoisesti asennettu Arduino -ohjelmistoosi.

Katsotaanpa joitain uusia toimintoja:

Servo Servo1;

Moduulin alustus

kompassi.luku ();

Esittelyssä servomoottorikohde

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

Kompassimoduulin ja servomoottorin alustaminen

Servo1.attach () -argumentti on servomoottoriin liitetyn nastan numero.

kompassi.m_min = (LSM303:: vektori) { -32767, -32767, -32767}; kompassi.m_max = (LSM303:: vektori) { +32767, +32767, +32767};

Näillä viivoilla määrität edellisessä osassa saadun alueen mittausalueen minimi- ja maksimiarvot.

kelluva otsikko = kompassi.otsikko ((LSM303:: vektori) {0, 0, 1});

Suunta () -funktio palauttaa koordinaattiakselin ja kiinteän akselin välisen kulman. Voit määrittää kiinteän akselin vektoreilla funktioargumentissa. Esimerkiksi tässä määrittämällä (LSM303:: vektori) {0, 0, 1} Z -akselia pidetään vakioakselina.

Servo1.write (otsikko);

Servo1.write () -toiminto käyttää kompassimoduulin lukuarvoa servomoottorissa.

Huomaa Huomaa, että servomoottorissa voi olla magneettikenttä, joten on parempi sijoittaa servomoottori sopivalle etäisyydelle kompassimoduulista, jotta se ei aiheuta kompassimoduulin poikkeamista.

Suositeltava: