Kako koristiti GY511 modul s Arduinom [Napravite digitalni kompas]: 11 koraka
Kako koristiti GY511 modul s Arduinom [Napravite digitalni kompas]: 11 koraka
Anonim
Kako koristiti GY511 modul s Arduinom [Napravite digitalni kompas]
Kako koristiti GY511 modul s Arduinom [Napravite digitalni kompas]

Pregled

U nekim projektima elektronike, moramo znati geografsku lokaciju u svakom trenutku i u skladu s tim izvršiti određenu operaciju. U ovom ćete vodiču naučiti kako koristiti modul kompasa LSM303DLHC GY-511 s Arduinom za izradu digitalnog kompasa. Prvo ćete naučiti o ovom modulu i kako radi, a zatim ćete vidjeti kako spojiti LSM303DLHC GY-511 modul s Arduinom.

Šta ćete naučiti

  • Šta je modul kompasa?
  • Modul kompasa i Arduino sučelje.
  • Napravite digitalni kompas s GY-511 modulom i Arduinom.

Korak 1: Opće informacije o modulu Compass

Opće informacije o modulu Compass
Opće informacije o modulu Compass

GY-511 modul uključuje troosni akcelerometar i troosni magnetometar. Ovaj senzor može mjeriti linearno ubrzanje na punoj skali od ± 2 g / ± 4 g / ± 8 g / ± 16 g i magnetska polja na punoj skali od ± 1,3 / ± 1,9 / ± 2,5 / ± 4,0 / ± 4,7 / ± 5,6 / ± 8,1 Gauss.

Kada se ovaj modul postavi u magnetsko polje, prema Lorentzovom zakonu u njegovom mikroskopskom zavojnici inducira se uzbudna struja. Modul kompasa pretvara ovu struju u diferencijalni napon za svaki koordinatni smjer. Pomoću ovih napona možete izračunati magnetsko polje u svakom smjeru i dobiti geografski položaj.

Savjet

QMC5883L je još jedan često korišteni modul kompasa. Ovaj modul, koji ima sličnu strukturu i primjenu kao i modul LMS303, malo se razlikuje po performansama. Stoga, ako radite na projektima, vodite računa o tipu vašeg modula. Ako je vaš modul QMC5882L, koristite odgovarajuću biblioteku i kodove koji su također uključeni u vodič.

Korak 2: Potrebne komponente

Potrebne komponente
Potrebne komponente

Hardverske komponente

Arduino UNO R3 *1

GY-511 troosni akcelerometar + magnetometar *1

TowerPro servo motor SG-90 *1

1602 LCD modul *1

Džemperi *1

Softverske aplikacije

Arduino IDE

Korak 3: Povezivanje GY-511 kompasnog modula s Arduinom

Povezivanje GY-511 kompasnog modula s Arduinom
Povezivanje GY-511 kompasnog modula s Arduinom
Povezivanje GY-511 kompasnog modula s Arduinom
Povezivanje GY-511 kompasnog modula s Arduinom

Modul kompasa GY-511 ima 8 pinova, ali samo 4 su vam potrebna za povezivanje s Arduinom. Ovaj modul komunicira s Arduinom pomoću I2C protokola, pa spojite pinove SDA (I2C izlaz) i SCK (ulaz sata I2C) na I2C pinove na Arduino ploči.

Napomena Kao što vidite, u ovom smo projektu koristili GY-511 modul. Ali ovo uputstvo možete koristiti za postavljanje drugih modula kompasa LMS303.

Korak 4: Kalibracija modula kompasa GY-511

Da biste se kretali, prvo morate kalibrirati modul, što znači postaviti mjerni raspon od 0 do 360 stepeni. Da biste to učinili, povežite modul s Arduinom kao što je prikazano u nastavku i postavite sljedeći kod na svoju ploču. Nakon izvršavanja koda, možete vidjeti minimalne i maksimalne vrijednosti mjernog područja za os X, Y i Z u prozoru serijskog monitora. Ovi brojevi će vam trebati u sljedećem dijelu, pa ih zapišite.

Korak 5: Krug

Krug
Krug

Korak 6: Kodirajte

U ovom kodu potrebna vam je biblioteka Wire.h za I2C komunikaciju i biblioteka LMS303.h za modul kompasa. Ove biblioteke možete preuzeti sa sljedećih veza.

Biblioteka LMS303.h

Wire.h biblioteka

Napomena Ako koristite QMC5883, trebat će vam sljedeća biblioteka:

MechaQMC5883L.h

Ovdje objašnjavamo kôd za LMS303, ali možete preuzeti i kodove za QMC modul.

Pogledajmo neke od novih funkcija:

compass.enableDefault ();

Inicijalizacija modula

compass.read ();

Očitavanje izlaznih vrijednosti modula kompasa

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

Određivanje minimalnih i maksimalnih vrednosti mernog opsega poređenjem izmerenih vrednosti.

Korak 7: Izrada digitalnog kompasa

Nakon kalibracije modula, izgradit ćemo kompas spajanjem servo motora na modul. Tako da nam servo indikator uvijek pokazuje smjer sjevera, poput crvene strelice na kompasu. Da biste to učinili, prvo kompasni modul najprije izračunava zemljopisni smjer i šalje ga u Arduino, a zatim ćete primjenom odgovarajućeg koeficijenta izračunati kut koji bi servo motor trebao rotirati tako da njegov indikator pokazuje prema magnetskom sjeveru. Na kraju primjenjujemo taj kut na servo motor.

Korak 8: Krug

Krug
Krug

Korak 9: Kodirajte

Kod
Kod

Za ovaj dio vam je potrebna i biblioteka Servo.h koja je prema zadanim postavkama instalirana na vašem Arduino softveru.

Pogledajmo neke od novih funkcija:

Servo Servo1;

Inicijalizacija modula

compass.read ();

Predstavljamo objekt servo motora

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

Inicijalizacija modula kompasa i servo motora

Argument Servo1.attach () je broj pina spojenog na servo motor.

compass.m_min = (LSM303:: vector) { -32767, -32767, -32767}; compass.m_max = (LSM303:: vector) { +32767, +32767, +32767};

Pomoću ovih linija definirate minimalne i maksimalne vrijednosti za mjerenje raspona dobivenog u prethodnom dijelu.

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

Funkcija heading () vraća kut između koordinatne osi i fiksne osi. Fiksnu os možete definirati vektorom u argumentu funkcije. Na primjer, ovdje, definiranjem (LSM303:: vektor) {0, 0, 1}, os Z se smatra konstantnom osi.

Servo1.write (naslov);

Funkcija Servo1.write () primjenjuje očitanu vrijednost od modula kompasa na servo motor.

Napomena Imajte na umu da servo motor može imati magnetsko polje, pa je bolje postaviti servo motor na odgovarajuću udaljenost od modula kompasa, kako to ne bi dovelo do odstupanja modula kompasa.

Preporučuje se: