Nëse po kërkoni të integroni një sensor 9 gradë lirie (9-DOF) në projektet tuaja Arduino, keni ardhur në vendin e duhur. Këto pajisje janë jashtëzakonisht të dobishme për matjen e orientimit, nxitimit dhe rrotullimit në hapësirën tredimensionale. Në këtë artikull, ne do të shqyrtojmë plotësisht se si të përdorim Adafruit 9-DOF, lidhjet dhe konfigurimin e tij me Arduino.
Sensorët 9-DOF kombinojnë tre lloje të ndryshme sensorësh: përshpejtuesit, magnetometrat dhe xhiroskopët. Kjo i bën ato mjete thelbësore për gjurmimin e saktë të orientimeve dhe lëvizjeve. Me këto udhëzime, mund të filloni të përdorni sensorin tuaj Adafruit 9-DOF me Arduino shpejt dhe me efikasitet.
Çfarë është një sensor 9 gradë lirie (9-DOF)?
Sensori 9-DOF ka tre sensorë në një: a Accelerometer, Një magnetometër dhe një xhiroskop. Akselerometri mat nxitimin në tre akse, duke e lejuar atë të zbulojë orientimin në lidhje me gravitetin. Magnetometri zbulon fushën magnetike, duke qenë i dobishëm për të përcaktuar drejtimin e veriut magnetik. Së fundi, xhiroskopi mat rrotullimin këndor.
Këta tre sensorë kombinohen për të ofruar një perceptimi tredimensional i lëvizjes dhe orientimi, duke e bërë atë ideal për aplikacione të tilla si robotikë, dron ose pajisje të veshura.
Lidhja e sensorit 9-DOF me Arduino
Pasi të keni sensorin, hapi tjetër është ta lidhni atë me bordin tuaj Arduino. Nëse planifikoni të përdorni Ndërfaqja I2C, i cili është më i zakonshmi, sensori Adafruit 9-DOF ka një adresë të paracaktuar I2C prej 0x69. Megjithatë, ju gjithashtu mund ta ndryshoni atë në 0x68 duke lidhur pinin e adresës me GND.
Lidhja përmes I2C
Procesi i lidhjes është i lehtë. Me përdorimin e një lidhësi STEMMA QT ose a dërrasë buke pa saldim, thjesht duhet të përputheni me kunjat e fuqisë dhe të të dhënave. Nëse përdorni një lidhës STEMMA, duhet ta lidhni vetëm me kunjat I2C (SCL dhe SDA).
Përdorni një sensor 9-DOF me SPI
Nëse preferoni të përdorni ndërfaqen SPI, do t'ju duhet të aktivizoni kunjat CS, SCK, MOSI dhe MISO për lidhjen, si dhe të specifikoni cilësimet në kod.
Instaloni bibliotekat e nevojshme në Arduino
Në mënyrë që sensori juaj Adafruit të funksionojë siç duhet me Arduino, do t'ju duhet të instaloni disa biblioteka. Gjëja e parë që ju nevojitet është Biblioteka Adafruit ICM20X, i cili është i pajtueshëm me sensorët ICM20948 dhe ICM20649. Për ta instaluar, hapni Menaxher i bibliotekës në Arduino IDE dhe kërkoni për "Adafruit ICM20X".
Përveç kësaj, do t'ju duhet gjithashtu të instaloni Biblioteka Adafruit BusIO dhe Biblioteka e unifikuar e sensorëve Adafruit.
Shembull i kodit për sensorin Adafruit 9-DOF
Pasi të keni lidhur gjithçka dhe të instaloni bibliotekat e nevojshme, mund të ngarkoni një nga shembujt për të kontrolluar nëse gjithçka funksionon mirë. Shkoni në Skedar -> Shembuj -> Adafruit ICM20X dhe zgjidhni testin që është në përputhje me sensorin tuaj.
Ky shembull do të printojë vlera si temperaturë, si dhe vlerat në akse X, Y dhe Z të xhiroskopit, akselerometrit dhe magnetometrit. Mund ta kontrolloni rezultatin në monitorin serial të vendosur në 115200 baud.
Shembulli bazë për matjet me ICM20948
#include <Adafruit_ICM20X.h>#include <Adafruit_ICM20948.h>#include <Adafruit_Sensor.h>#include <Wire.h>
Kodi i dhënë në shembujt e bibliotekës do t'ju lejojë të merrni ngjarjet nga sensorë të ndryshëm. Megjithatë, për projekte më të avancuara, mund të modifikoni cilësimet e diapazonit të ndjeshmërisë si të akselerometrit ashtu edhe të xhiroskopit sipas nevojave tuaja.
Si funksionojnë raportet e rrotullimit në sensorin BNO085
Nëse përveç sensorëve ICM20948 përdorni një sensor 9-DOF si ai BNO085, kjo ju lejon të gjeneroni raportet e rrotullimit, e rëndësishme për marrjen e të dhënave më të detajuara mbi orientimin në lëvizjet komplekse.
Një detaj i rëndësishëm që duhet të keni parasysh është se ky sensor kërkon një mikrokontrollues me të kapacitet më të madh të memories, të tilla si SAMD21, SAMD51 ose nRF52. Përdorimi i pllakave më bazë Arduino si Uno ose Leonardo nuk rekomandohet, pasi ato nuk kanë RAM të mjaftueshëm.
Për më tepër, BNO085 përdor një zbatim të veçantë I2C që nuk mbështetet nga të gjitha sistemet. Për shembull, ky sensor nuk funksionon siç duhet me çipa si p.sh ESP32 ose me multipleksera I2C. Sidoqoftë, funksionimi i tij është mjaft i besueshëm në platforma të tilla si RP2040, STM32F4 ose SAMD51.
Dizajni dhe veçoritë e shkëputjes LSM9DS1
Sensori LSM9DS9 1-DOF është ideal për gjurmimin e orientimit dhe lëvizjes me një çmim më të volitshëm në krahasim me sensorë të tjerë të ngjashëm. Ai integron disa vargje matëse që ju lejojnë të rregulloni nivelin e saktësisë së kërkuar për projektin tuaj.
Ky sensor ka një Ndërfaqja I2C y SPI, duke e bërë atë të gjithanshëm për platforma të ndryshme zhvillimi. Mund ta lidhni lehtësisht me një Arduino, duke siguruar tension midis 3 dhe 5 V dhe duke lidhur kunjat I2C në SCL y burime natyrore.
Dallimet me LSM9DS0
Një nga dallimet kryesore qëndron në diapazoni i akselerometrit, të cilat në LSM9DS1 janë ±2, ±4, ±8 dhe ±16 g, ndërsa sensorë të tjerë si LSM9DS0 përfshijnë një gamë shtesë prej ±6g.
Çfarë mund të bëni me një sensor Adafruit 9-DOF?
Ky lloj sensori është ideal për zhvillimin e projekteve si p.sh robotë autonome, sistemet e navigimit dhe pajisjet e bazuara në gjeste. Me informacionin e nxitimit, rrotullimit dhe orientimit që ofron, mund të ndërtoni një pajisje që gjurmon me saktësi lëvizjet komplekse.