Jei norite integruoti 9 laisvės laipsnių (9-DOF) jutiklį į savo Arduino projektus, atėjote ten, kur reikia. Šie prietaisai itin naudingi matuojant orientaciją, pagreitį ir sukimąsi trimatėje erdvėje. Šiame straipsnyje mes išsamiai išnagrinėsime, kaip naudoti Adafruit 9-DOF, jo jungtis ir konfigūraciją su Arduino.
9-DOF jutikliai sujungia tris skirtingus jutiklių tipus: akselerometrus, magnetometrus ir giroskopus. Dėl to jie yra būtini įrankiai, skirti tiksliai sekti orientaciją ir judesius. Naudodami šias instrukcijas galite greitai ir efektyviai pradėti naudoti savo Adafruit 9-DOF jutiklį su Arduino.
Kas yra 9 laisvės laipsnių (9-DOF) jutiklis?
9-DOF jutiklis turi tris jutiklius viename: a akselerometras, Vienas magnetometras ir giroskopas. Pagreičio matuoklis matuoja pagreitį trijose ašyse ir leidžia nustatyti orientaciją gravitacijos atžvilgiu. Magnetometras aptinka magnetinį lauką ir yra naudingas nustatant magnetinės šiaurės kryptį. Galiausiai giroskopas matuoja kampinį sukimąsi.
Šie trys jutikliai kartu siūlo a trimatis judesio suvokimas ir orientacija, todėl idealiai tinka tokioms programoms kaip robotika, dronai ar nešiojami įrenginiai.
9-DOF jutiklio prijungimas prie Arduino
Kai turėsite jutiklį, kitas žingsnis yra prijungti jį prie „Arduino“ plokštės. Jei planuojate naudoti I2C sąsaja, kuris yra labiausiai paplitęs, Adafruit 9-DOF jutiklio numatytasis I2C adresas yra 0x69. Tačiau taip pat galite pakeisti jį į 0x68, prijungę adreso kaištį prie GND.
Ryšys per I2C
Prisijungimo procesas yra lengvas. Naudojant STEMMA QT jungtį arba a belituota duonos lenta, jūs tiesiog turite suderinti maitinimo ir duomenų kaiščius. Jei naudojate STEMMA jungtį, turite ją prijungti tik prie I2C kaiščių (SCL ir SDA).
Naudokite 9 DOF jutiklį su SPI
Jei norite naudoti SPI sąsają, turėsite įjungti CS, SCK, MOSI ir MISO kaiščius ryšiui, taip pat nurodyti nustatymus kode.
Įdiekite reikiamas bibliotekas „Arduino“.
Kad jūsų Adafruit jutiklis tinkamai veiktų su Arduino, turėsite įdiegti keletą bibliotekų. Pirmas dalykas, kurio jums reikia, yra Adafruit ICM20X biblioteka, kuris yra suderinamas su ICM20948 ir ICM20649 jutikliais. Norėdami jį įdiegti, atidarykite Bibliotekos vedėja „Arduino IDE“ ir ieškokite „Adafruit ICM20X“.
Be to, jūs taip pat turėsite įdiegti Adafruit BusIO biblioteka ir Adafruit Unified Sensor Library.
Adafruit 9-DOF jutiklio kodo pavyzdys
Kai viską prijungsite ir įdiegsite reikiamas bibliotekas, galite įkelti vieną iš pavyzdžių, kad patikrintumėte, ar viskas veikia gerai. Eikite į Failas -> Pavyzdžiai -> Adafruit ICM20X ir pasirinkite testą, suderinamą su jūsų jutikliu.
Šiame pavyzdyje bus spausdinamos tokios vertės kaip temperatūra, taip pat ašių vertes X, Y ir Z giroskopas, akselerometras ir magnetometras. Rezultatą galite patikrinti serijiniame monitoriuje, kuris nustatytas į 115200 XNUMX bodų.
Pagrindinis matavimų su ICM20948 pavyzdys
#include <Adafruit_ICM20X.h>#include <Adafruit_ICM20948.h>#include <Adafruit_Sensor.h>#include <Wire.h>
Bibliotekos pavyzdžiuose pateiktas kodas leis gauti įvykius iš skirtingų jutiklių. Tačiau pažangesniems projektams galite keisti tiek akselerometro, tiek giroskopo jautrumo diapazono nustatymus pagal savo poreikius.
Kaip veikia BNO085 jutiklio sukimosi ataskaitos
Jei be ICM20948 jutiklių naudojate 9 DOF jutiklį, pvz BNO085, tai leidžia generuoti rotacijos ataskaitos, svarbus norint gauti išsamesnių duomenų apie orientaciją atliekant sudėtingus judesius.
Svarbi detalė, kurią turėtumėte nepamiršti, yra tai, kad šiam jutikliui reikalingas mikrovaldiklis didesnė atminties talpa, pvz., SAMD21, SAMD51 arba nRF52. Nerekomenduojama naudoti paprastesnių „Arduino“ plokščių, tokių kaip „Uno“ ar „Leonardo“, nes jose nepakanka RAM.
Be to, BNO085 naudoja specialų I2C diegimą, kurį palaiko ne visos sistemos. Pavyzdžiui, šis jutiklis netinkamai veikia su tokiais lustais kaip ESP32 arba su I2C multiplekseriais. Tačiau jo veikimas yra gana patikimas tokiose platformose kaip RP2040, STM32F4 arba SAMD51.
LSM9DS1 išsiveržimo dizainas ir funkcijos
LSM9DS9 1-DOF jutiklis idealiai tinka orientacijai ir judėjimui sekti už prieinamesnę kainą, palyginti su kitais panašiais jutikliais. Jame integruoti keli matavimo diapazonai, leidžiantys reguliuoti jūsų projektui reikalingą tikslumo lygį.
Šis jutiklis turi a I2C sąsaja y SPI, todėl jis yra universalus skirtingoms kūrimo platformoms. Galite lengvai prijungti jį prie Arduino, tiekdami įtampą nuo 3 iki 5 V ir prijungdami I2C kaiščius LAT y gamtos turtai.
Skirtumai nuo LSM9DS0
Vienas iš pagrindinių skirtumų yra tame akselerometro diapazonai, kurie LSM9DS1 yra ±2, ±4, ±8 ir ±16 g, o kiti jutikliai, tokie kaip LSM9DS0, apima papildomą ±6 g diapazoną.
Ką galite padaryti su Adafruit 9-DOF jutikliu?
Šio tipo jutikliai idealiai tinka kurti tokius projektus kaip autonominiai robotai, navigacijos sistemos ir gestais pagrįsti įrenginiai. Naudodami pagreičio, sukimosi ir orientacijos informaciją, kurią ji teikia, galite sukurti įrenginį, kuris tiksliai seka sudėtingus judesius.