Kazalo:

Kako uporabljati modul GY511 z Arduinom [Naredite digitalni kompas]: 11 korakov
Kako uporabljati modul GY511 z Arduinom [Naredite digitalni kompas]: 11 korakov

Video: Kako uporabljati modul GY511 z Arduinom [Naredite digitalni kompas]: 11 korakov

Video: Kako uporabljati modul GY511 z Arduinom [Naredite digitalni kompas]: 11 korakov
Video: Lesson 91: Controlling Servo motor using potentiometer and display angle on LCD 2024, November
Anonim
Kako uporabljati modul GY511 z Arduinom [Naredite digitalni kompas]
Kako uporabljati modul GY511 z Arduinom [Naredite digitalni kompas]

Pregled

Pri nekaterih projektih na področju elektronike moramo v vsakem trenutku poznati geografsko lokacijo in temu ustrezno narediti posebno operacijo. V tej vadnici se boste naučili uporabljati modul kompasa LSM303DLHC GY-511 z Arduinom za izdelavo digitalnega kompasa. Najprej boste izvedeli o tem modulu in njegovem delovanju, nato pa boste videli, kako povezati modul LSM303DLHC GY-511 z Arduinom.

Kaj se boste naučili

  • Kaj je modul kompasa?
  • Kompasni modul in vmesnik Arduino.
  • Naredite digitalni kompas z modulom GY-511 in Arduinom.

1. korak: Splošne informacije o modulu Compass

Splošne informacije o modulu Compass
Splošne informacije o modulu Compass

Modul GY-511 vključuje 3-osni merilnik pospeška in 3-osni magnetometer. Ta senzor lahko meri linearni pospešek pri polnih lestvicah ± 2 g / ± 4 g / ± 8 g / ± 16 g in magnetna polja pri polnih lestvicah ± 1,3 / ± 1,9 / ± 2,5 / ± 4,0 / ± 4,7 / ± 5,6 / ± 8,1 Gauss.

Ko je ta modul postavljen v magnetno polje, po Lorentzovem zakonu v mikroskopski tuljavi inducira vzbujalni tok. Modul kompasa pretvori ta tok v diferenčno napetost za vsako koordinatno smer. S pomočjo teh napetosti lahko izračunate magnetno polje v vsaki smeri in pridobite geografski položaj.

Nasvet

QMC5883L je še en pogosto uporabljen modul kompasa. Ta modul, ki ima podobno strukturo in uporabo kot modul LMS303, se nekoliko razlikuje po zmogljivostih. Če torej izvajate projekte, bodite previdni pri vrsti modula. Če je vaš modul QMC5882L, uporabite ustrezno knjižnico in kode, ki so prav tako vključene v vadnico.

2. korak: Potrebne komponente

Potrebne komponente
Potrebne komponente

Komponente strojne opreme

Arduino UNO R3 *1

GY-511 3-osni merilnik pospeška + magnetometer *1

Servo motor TowerPro SG-90 *1

1602 LCD modul *1

Skakači *1

Aplikacije programske opreme

Arduino IDE

3. korak: Vmesnik kompasnega modula GY-511 z Arduinom

Vmesnik kompasnega modula GY-511 z Arduinom
Vmesnik kompasnega modula GY-511 z Arduinom
Vmesnik kompasnega modula GY-511 z Arduinom
Vmesnik kompasnega modula GY-511 z Arduinom

Modul kompasa GY-511 ima 8 zatičev, vendar potrebujete le 4 od njih za povezavo z Arduinom. Ta modul komunicira z Arduinom po protokolu I2C, zato priključite zatiče SDA (izhod I2C) in SCK (vhod za uro I2C) na zatiče I2C na plošči Arduino.

Opomba Kot vidite, smo v tem projektu uporabili modul GY-511. To navodilo pa lahko uporabite za nastavitev drugih modulov kompasa LMS303.

4. korak: Kalibracija modula kompasa GY-511

Za navigacijo morate najprej kalibrirati modul, kar pomeni, da nastavite merilno območje od 0 do 360 stopinj. Če želite to narediti, povežite modul z Arduinom, kot je prikazano spodaj, in naložite naslednjo kodo na svojo ploščo. Po izvedbi kode lahko vidite minimalne in največje vrednosti merilnega območja za os X, Y in Z v oknu serijskega monitorja. Te številke boste potrebovali v naslednjem delu, zato jih zapišite.

5. korak: Vezje

Vezje
Vezje

6. korak: Koda

V tej kodi potrebujete knjižnico Wire.h za komunikacijo I2C in knjižnico LMS303.h za modul kompas. Te knjižnice lahko prenesete s spodnjih povezav.

Knjižnica LMS303.h

Knjižnica Wire.h

Opomba Če uporabljate QMC5883, potrebujete naslednjo knjižnico:

MechaQMC5883L.h

Tukaj razlagamo kodo za LMS303, lahko pa prenesete tudi kode za modul QMC.

Poglejmo nekaj novih funkcij:

compass.enableDefault ();

Inicializacija modula

kompas.preberite ();

Branje izhodnih vrednosti kompasnega modula

running_min.z = min (running_min.z, compass.m.z); running_max.x = max (running_max.x, compass.m.x);

Določanje najnižje in največje vrednosti merilnega območja s primerjavo izmerjenih vrednosti.

7. korak: Izdelava digitalnega kompasa

Po umerjanju modula bomo izdelali kompas tako, da na modul priključimo servo motor. Tako, da nam servo indikator vedno kaže smer sever, kot rdeča puščica na kompasu. Če želite to narediti, najprej kompasni modul najprej izračuna geografsko smer in ga pošlje v Arduino, nato pa z ustreznim koeficientom izračunate kot, na katerega se mora servo motor vrteti, tako da njegov indikator kaže na magnetni sever. Sčasoma ta kot uporabimo za servo motor.

8. korak: Vezje

Vezje
Vezje

9. korak: Koda

Koda
Koda

Za ta del potrebujete tudi knjižnico Servo.h, ki je privzeto nameščena v programski opremi Arduino.

Poglejmo nekaj novih funkcij:

Servo Servo1;

Inicializacija modula

kompas.preberite ();

Predstavljamo predmet servo motorja

Servo1.priključek (servoPin); kompas.init (); compass.enableDefault ();

Inicializacija kompasnega modula in servo motorja

Argument Servo1.attach () je številka zatiča, priključenega na servo motor.

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

S temi vrsticami določite najmanjše in največje vrednosti za merjenje dosega, pridobljenega v prejšnjem delu.

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

Funkcija heading () vrne kot med koordinatno osjo in fiksno osjo. Fiksno os lahko definirate z vektorjem v argumentu funkcije. Na primer, tukaj se z definiranjem (LSM303:: vektor) {0, 0, 1} os Z obravnava kot konstantno os.

Servo1.write (naslov);

Funkcija Servo1.write () uporabi vrednost branja modula kompasa za servo motor.

Opomba Upoštevajte, da ima lahko servo motor magnetno polje, zato je bolje, da ga postavite na primerno razdaljo od modula kompasa, da ne povzroči odstopanja modula kompasa.

Priporočena: