Pokud hledáte integraci snímače 9 stupňů volnosti (9-DOF) do vašich projektů Arduino, jste na správném místě. Tato zařízení jsou mimořádně užitečná pro měření orientace, zrychlení a rotace v trojrozměrném prostoru. V tomto článku důkladně prozkoumáme, jak používat Adafruit 9-DOF, jeho připojení a konfiguraci s Arduinem.
Senzory 9-DOF kombinují tři různé typy senzorů: akcelerometry, magnetometry a gyroskopy. To z nich dělá základní nástroje pro přesné sledování orientací a pohybů. S těmito pokyny můžete začít používat svůj senzor Adafruit 9-DOF s Arduinem rychle a efektivně.
Co je senzor 9 stupňů volnosti (9-DOF)?
Senzor 9-DOF má tři senzory v jednom: a akcelerometr, zajišťuje také účinek magnetometr a gyroskop. Akcelerometr měří zrychlení ve třech osách, což mu umožňuje detekovat orientaci vzhledem ke gravitaci. Magnetometr detekuje magnetické pole, což je užitečné pro určení směru magnetického severu. Nakonec gyroskop měří úhlovou rotaci.
Kombinace těchto tří senzorů nabízí a trojrozměrné vnímání pohybu a orientaci, díky čemuž je ideální pro aplikace, jako je robotika, drony nebo nositelná zařízení.
Připojení 9-DOF senzoru k Arduinu
Jakmile máte senzor, dalším krokem je jeho připojení k desce Arduino. Pokud plánujete používat I2C rozhraní, což je nejběžnější, má senzor Adafruit 9-DOF výchozí I2C adresu 0x69. Můžete jej však také změnit na 0x68 připojením pinu adresy ke GND.
Připojení přes I2C
Proces připojení je snadný. S použitím konektoru STEMMA QT nebo a nepájivé prkénko, musíte jednoduše sladit napájecí a datové piny. Pokud používáte konektor STEMMA, stačí jej připojit pouze k pinům I2C (SCL a SDA).
Použijte 9-DOF senzor s SPI
Pokud dáváte přednost použití rozhraní SPI, budete muset pro připojení povolit piny CS, SCK, MOSI a MISO a také zadat nastavení v kódu.
Nainstalujte potřebné knihovny na Arduino
Aby váš senzor Adafruit správně fungoval s Arduinem, budete muset nainstalovat několik knihoven. První věc, kterou potřebujete, je Knihovna Adafruit ICM20X, který je kompatibilní se senzory ICM20948 a ICM20649. Chcete-li jej nainstalovat, otevřete soubor Správce knihovny v Arduino IDE a vyhledejte „Adafruit ICM20X“.
Kromě toho budete muset také nainstalovat Knihovna Adafruit BusIO a Sjednocená knihovna senzorů Adafruit.
Příklad kódu pro senzor Adafruit 9-DOF
Jakmile máte vše zapojeno a potřebné knihovny nainstalované, můžete načíst jeden z příkladů a zkontrolovat, zda vše funguje dobře. Přejít na Soubor -> Příklady -> Adafruit ICM20X a vyberte test, který je kompatibilní s vaším senzorem.
Tento příklad vytiskne hodnoty jako teplota, stejně jako hodnoty na osách X, Y a Z gyroskopu, akcelerometru a magnetometru. Výsledek můžete zkontrolovat na sériovém monitoru nastaveném na 115200 baudů.
Základní příklad pro měření s ICM20948
#include <Adafruit_ICM20X.h>#include <Adafruit_ICM20948.h>#include <Adafruit_Sensor.h>#include <Wire.h>
Kód uvedený v příkladech knihovny vám umožní získat události z různých senzorů. U pokročilejších projektů však můžete upravit nastavení rozsahu citlivosti jak akcelerometru, tak gyroskopu podle vašich potřeb.
Jak fungují hlášení rotace na snímači BNO085
Pokud kromě snímačů ICM20948 používáte snímač 9-DOF, jako je např BNO085, to vám umožní generovat zprávy o rotaci, důležité pro získání podrobnějších údajů o orientaci ve složitých pohybech.
Důležitým detailem, který byste měli mít na paměti, je, že tento senzor vyžaduje mikrokontrolér větší kapacitu paměti, jako je SAMD21, SAMD51 nebo nRF52. Použití více základních desek Arduino, jako je Uno nebo Leonardo, se nedoporučuje, protože nemají dostatek paměti RAM.
BNO085 navíc využívá speciální implementaci I2C, kterou nepodporují všechny systémy. Například tento snímač nepracuje korektně s čipy jako např ESP32 nebo s I2C multiplexery. Jeho provoz je však vcelku spolehlivý na platformách jako je např RP2040, STM32F4 nebo SAMD51.
Design a vlastnosti breakoutu LSM9DS1
Snímač LSM9DS9 1-DOF je ideální pro sledování orientace a pohybu s dostupnější cenou ve srovnání s jinými podobnými snímači. Integruje několik rozsahů měření, které vám umožňují upravit úroveň přesnosti požadovanou pro váš projekt.
Tento snímač má a I2C rozhraní y SPI, díky čemuž je univerzální pro různé vývojové platformy. Můžete jej snadno připojit k Arduinu, poskytovat napětí mezi 3 a 5 V a připojit piny I2C na SCL y SDA.
Rozdíly oproti LSM9DS0
Jeden z hlavních rozdílů spočívá v rozsahy akcelerometru, které jsou u LSM9DS1 ±2, ±4, ±8 a ±16 g, zatímco jiné snímače jako LSM9DS0 zahrnují další rozsah ±6 g.
Co můžete dělat se senzorem Adafruit 9-DOF?
Tento typ senzorů je ideální pro vývoj projektů jako např autonomní roboti, navigační systémy a zařízení založená na gestech. S informacemi o zrychlení, rotaci a orientaci, které poskytuje, můžete sestavit zařízení, které přesně sleduje složité pohyby.