
Versija 1.0.0
Jutiklis LSM9DS1 Tai sudėtingas inercinio matavimo modulis, kuriame yra a akselerometras, giroskopas ir magnetometras, viskas viename luste. Šis jutiklis yra labai universalus ir naudojamas projektuose, kuriuose reikia matuoti judesį ir orientaciją trimatėje erdvėje. Tai įprasta tokiose programose kaip navigacijos įrenginiai, judesio valdymas robotikoje ir papildytos realybės sistemos.
Šiame vadove mes išsamiai išnagrinėsime, kaip jis veikia, kaip jį integruoti Arduino ir į kokius aspektus reikia atsižvelgti interpretuojant savo skaitymus. Be to, išmoksime jį programuoti naudodami konkrečias bibliotekas, kad išnaudotume visas jo galimybes.
LSM9DS1 jutiklio savybės
LSM9DS1 yra jutiklis 9 laisvės laipsniai (9DOF), tai reiškia, kad jis gali matuoti judėjimą trimis ašimis, naudodamas tris skirtingus jutiklius:
- Akselerometras: Matuoja pagreitį X, Y ir Z ašyse, leidžiančią aptikti posvyrį ir greitį.
- Giroskopas: matuoja kampinį greitį visose trijose ašyse, naudinga nustatant orientacijos pokyčius.
- Magnetometras: Tai leidžia nustatyti Žemės magnetinio lauko kryptį, veikiant kaip skaitmeninis kompasas.
Šis modulis palaiko ryšį su mikrovaldikliu per I2C arba SPI ir kiekvienam jutikliui siūlo skirtingus matavimo diapazonus:
- Akselerometras: ±2g, ±4g, ±8g, ±16g
- Giroskopas: ±245 dps, ±500 dps, ±2000 dps
- Magnetometras: ±4 gauss, ±8 gauss, ±12 gauss, ±16 gauss
LSM9DS1 prijungimas prie Arduino
Norėdami naudoti jutiklį LSM9DS1 su Arduino, turime užmegzti fizinį ryšį naudodami atitinkamą ryšio protokolą. Šis jutiklis leidžia prijungti du būdus:
Ryšys per I2C
Jei naudosime sąsają I2C, mes sujungsime jutiklio kaiščius taip:
- VCC: 3.3V
- GND:GND
- gamtos turtai: A4 ant ATmega328P plokščių (Arduino Uno, nano ir kt.)
- LAT: A5 ant ATmega328P plokščių
Ryšys per SPI
Naudojimo atveju SPI, bus prijungtas taip:
- VCC: 3.3V
- GND:GND
- DAWDLE: D11
- Sojų pasta: D12
- SCLK: D13
- CS: pasirenkamas skaitmeninis kaištis
Bibliotekos ir pirmojo kodo įdiegimas
Kad būtų lengviau naudotis LSM9DS1, Arduino turi oficialią biblioteką, kurią galime įdiegti iš Bibliotekos administratorė. Tiesiog ieškok „Arduino_LSM9DS1“ ir įdiekite.
Įdiegę galime įkelti šį testo kodą:
#include void setup() {Serial.begin(115200);while (!Serial);if (!IMU.begin()) {Serial.println("Error al iniciar el IMU.");while (1);}}void loop() {float x, y, z;if (IMU.magneticFieldAvailable()) {IMU.readMagneticField(x, y, z);Serial.print("Campo magnetico: ");Serial.print(x); Serial.print(", ");Serial.print(y); Serial.print(", ");Serial.println(z);}delay(500);}
Šis kodas nuskaito magnetinis laukas aptinkamas magnetometro ir rodomas serijiniame monitoriuje.
Gautų verčių aiškinimas
Duomenys, gauti pagal LSM9DS1 Tai yra skaitinės vertės, atspindinčios tikrus fizinius matavimus:
- Akselerometras grąžina reikšmes g (Žemės gravitacija).
- Giroskopas matuoja kampinį greitį dps (laipsniais per sekundę).
- Magnetometras matuoja magnetinio lauko intensyvumą mikroteslomis (µT).
Norint integruoti šiuos duomenis į realų projektą, patartina taikyti tokius metodus kaip jutiklių suliejimas naudojant Kalman arba Complementary filtrus.
LSM9DS1 programos
Šis jutiklis gali būti naudojamas įvairiuose projektuose, pavyzdžiui:
- Skaitmeniniai kompasai: magnetometro verčių naudojimas krypčiai nustatyti.
- navigacinės sistemos: akselerometro ir giroskopo derinys poslinkiams matuoti.
- Judėjimo valdymas: robotikoje ir VR įrenginiuose, kad būtų galima aptikti pakreipimą ir sukimąsi.
Dėl savo universalumo, LSM9DS1 Tai pagrindinė priemonė kuriant projektus, kuriems reikia tikslių judėjimo ir orientacijos žinių.
LSM9DS1 yra puikus pasirinkimas judesiui ir orientacijai matuoti dideliu tikslumu. Jo integracija su Arduino Tai paprasta dėl konkrečių bibliotekų, kurios leidžia gauti duomenis realiuoju laiku pagreitis, sukimasis y magnetinis laukas. Tinkamai kalibruojant ir interpretuojant duomenis, galima sukurti pažangias robotikos, navigacijos ir sąveikos su aplinka programas.