Ak chcete do svojich projektov Arduino integrovať snímač 9 stupňov voľnosti (9-DOF), ste na správnom mieste. Tieto zariadenia sú mimoriadne užitočné na meranie orientácie, zrýchlenia a rotácie v trojrozmernom priestore. V tomto článku dôkladne preskúmame, ako používať Adafruit 9-DOF, jeho pripojenia a konfiguráciu s Arduino.
9-DOF senzory kombinujú tri rôzne typy senzorov: akcelerometre, magnetometre a gyroskopy. To z nich robí nevyhnutné nástroje na presné sledovanie orientácií a pohybov. S týmito pokynmi môžete začať používať svoj senzor Adafruit 9-DOF s Arduinom rýchlo a efektívne.
Čo je to senzor 9 stupňov voľnosti (9-DOF)?
9-DOF senzor má tri senzory v jednom: a akcelerometer, magnetometer a gyroskop. Akcelerometer meria zrýchlenie v troch osiach, čo mu umožňuje zistiť orientáciu vzhľadom na gravitáciu. Magnetometer detekuje magnetické pole, čo je užitočné na určenie smeru magnetického severu. Nakoniec gyroskop meria uhlovú rotáciu.
Tieto tri senzory sa kombinujú a ponúkajú a trojrozmerné vnímanie pohybu a orientáciu, vďaka čomu je ideálny pre aplikácie ako robotika, drony alebo nositeľné zariadenia.
Pripojenie 9-DOF senzora k Arduinu
Keď máte senzor, ďalším krokom je pripojenie k vašej Arduino doske. Ak plánujete použiť I2C rozhranie, ktorý je najbežnejší, má senzor Adafruit 9-DOF predvolenú I2C adresu 0x69. Môžete ho však zmeniť aj na 0x68 pripojením pinu adresy ku GND.
Pripojenie cez I2C
Proces pripojenia je jednoduchý. S použitím STEMMA QT konektora alebo a nepájkovaná doska na krájanie, musíte jednoducho zladiť napájacie a dátové piny. Ak používate konektor STEMMA, musíte ho pripojiť iba k I2C pinom (SCL a SDA).
Použite 9-DOF snímač s SPI
Ak uprednostňujete používanie rozhrania SPI, budete musieť povoliť kolíky CS, SCK, MOSI a MISO pre pripojenie, ako aj špecifikovať nastavenia v kóde.
Nainštalujte potrebné knižnice na Arduino
Aby váš senzor Adafruit správne fungoval s Arduinom, budete musieť nainštalovať niekoľko knižníc. Prvá vec, ktorú potrebujete, je Knižnica Adafruit ICM20X, ktorý je kompatibilný so snímačmi ICM20948 a ICM20649. Ak ho chcete nainštalovať, otvorte Správca knižnice v Arduino IDE a vyhľadajte „Adafruit ICM20X“.
Okrem toho budete musieť nainštalovať Knižnica Adafruit BusIO a Zjednotená knižnica senzorov Adafruit.
Príklad kódu pre senzor Adafruit 9-DOF
Keď máte všetko pripojené a potrebné knižnice nainštalované, môžete načítať jeden z príkladov a skontrolovať, či všetko funguje správne. Prejsť na Súbor -> Príklady -> Adafruit ICM20X a vyberte test, ktorý je kompatibilný s vaším snímačom.
Tento príklad vytlačí hodnoty ako teplota, ako aj hodnoty na osiach X, Y a Z gyroskopu, akcelerometra a magnetometra. Výsledok môžete skontrolovať na sériovom monitore nastavenom na 115200 baudov.
Základný príklad pre merania s ICM20948
#include <Adafruit_ICM20X.h>#include <Adafruit_ICM20948.h>#include <Adafruit_Sensor.h>#include <Wire.h>
Kód uvedený v príkladoch knižnice vám umožní získať udalosti z rôznych senzorov. Pre pokročilejšie projekty však môžete upraviť nastavenia rozsahu citlivosti akcelerometra aj gyroskopu podľa vašich potrieb.
Ako fungujú hlásenia rotácie na snímači BNO085
Ak okrem snímačov ICM20948 používate aj 9-stupňový snímač, ako je napr BNO085, to vám umožní generovať správy o rotácii, dôležité pre získanie podrobnejších údajov o orientácii v zložitých pohyboch.
Dôležitým detailom, ktorý by ste mali mať na pamäti, je, že tento senzor vyžaduje mikrokontrolér väčšia kapacita pamäteako je SAMD21, SAMD51 alebo nRF52. Používanie základných dosiek Arduino, ako sú Uno alebo Leonardo, sa neodporúča, pretože nemajú dostatok pamäte RAM.
Okrem toho BNO085 využíva špeciálnu implementáciu I2C, ktorá nie je podporovaná všetkými systémami. Napríklad tento snímač nefunguje korektne s čipmi ako napr ESP32 alebo s I2C multiplexermi. Jeho fungovanie je však celkom spoľahlivé na platformách ako napr RP2040, STM32F4 alebo SAMD51.
Dizajn a funkcie breakoutu LSM9DS1
Snímač LSM9DS9 1-DOF je ideálny na sledovanie orientácie a pohybu s prijateľnejšou cenou v porovnaní s inými podobnými snímačmi. Integruje niekoľko meracích rozsahov, ktoré vám umožňujú nastaviť úroveň presnosti potrebnú pre váš projekt.
Tento snímač má a I2C rozhranie y SPI, vďaka čomu je všestranný pre rôzne vývojové platformy. Môžete ho ľahko pripojiť k Arduinu, poskytujúcemu napätie medzi 3 a 5V a pripojením I2C pinov na SCL y SDA.
Rozdiely s LSM9DS0
Jeden z hlavných rozdielov spočíva v rozsahy akcelerometra, ktoré v LSM9DS1 sú ±2, ±4, ±8 a ±16 g, zatiaľ čo iné snímače, ako napríklad LSM9DS0, zahŕňajú dodatočný rozsah ±6 g.
Čo môžete robiť so snímačom Adafruit 9-DOF?
Tento typ snímačov je ideálny pre vývoj projektov ako napr autonómne robotynavigačné systémy a zariadenia založené na gestách. S informáciami o zrýchlení, rotácii a orientácii, ktoré poskytuje, môžete zostaviť zariadenie, ktoré presne sleduje zložité pohyby.