Ако търсите да интегрирате сензор с 9 степени на свобода (9-DOF) във вашите Arduino проекти, попаднали сте на правилното място. Тези устройства са изключително полезни за измерване на ориентация, ускорение и въртене в триизмерното пространство. В тази статия ще проучим подробно как да използвате Adafruit 9-DOF, неговите връзки и конфигурация с Arduino.
Сензорите с 9 DOF съчетават три различни типа сензори: акселерометри, магнитометри и жироскопи. Това ги прави основни инструменти за прецизно проследяване на ориентации и движения. С тези инструкции можете да започнете да използвате вашия Adafruit 9-DOF сензор с Arduino бързо и ефективно.
Какво е сензор с 9 степени на свобода (9-DOF)?
Сензорът с 9 DOF има три сензора в един: a акселерометър, ООН магнитометър и жироскоп. Акселерометърът измерва ускорението в три оси, което му позволява да открие ориентация спрямо гравитацията. Магнитометърът открива магнитното поле, което е полезно за определяне на посоката на магнитния север. И накрая, жироскопът измерва ъгловото въртене.
Тези три сензора се комбинират, за да предложат a триизмерно възприемане на движението и ориентация, което го прави идеален за приложения като роботика, дронове или носими устройства.
Свързване на 9-DOF сензор с Arduino
След като имате сензора, следващата стъпка е да го свържете към вашата платка Arduino. Ако планирате да използвате I2C интерфейс, който е най-често срещаният, сензорът Adafruit 9-DOF има I2C адрес по подразбиране 0x69. Можете обаче също да го промените на 0x68, като свържете адресния щифт към GND.
Връзка чрез I2C
Процесът на свързване е лесен. С използването на STEMMA QT конектор или a макет без запояване, просто трябва да съпоставите щифтовете за захранване и данни. Ако използвате STEMMA конектор, трябва само да го свържете към I2C щифтовете (SCL и SDA).
Използвайте сензор с 9 DOF със SPI
Ако предпочитате да използвате интерфейса SPI, ще трябва да активирате пиновете CS, SCK, MOSI и MISO за връзката, както и да зададете настройките в кода.
Инсталирайте необходимите библиотеки на Arduino
За да може вашият сензор Adafruit да работи правилно с Arduino, ще трябва да инсталирате няколко библиотеки. Първото нещо, от което се нуждаете, е Библиотека Adafruit ICM20X, който е съвместим със сензори ICM20948 и ICM20649. За да го инсталирате, отворете Мениджър на библиотеката в Arduino IDE и потърсете „Adafruit ICM20X“.
В допълнение към това ще трябва да инсталирате и Библиотека Adafruit BusIO и Унифицирана сензорна библиотека на Adafruit.
Примерен код за сензора Adafruit 9-DOF
След като свържете всичко и инсталирате необходимите библиотеки, можете да заредите един от примерите, за да проверите дали всичко работи добре. Отидете на Файл -> Примери -> Adafruit ICM20X и изберете теста, който е съвместим с вашия сензор.
Този пример ще отпечата стойности като температура, както и стойностите по осите X, Y и Z на жироскопа, акселерометъра и магнитометъра. Можете да проверите резултата на серийния монитор, настроен на 115200 бода.
Основен пример за измервания с ICM20948
#include <Adafruit_ICM20X.h>#include <Adafruit_ICM20948.h>#include <Adafruit_Sensor.h>#include <Wire.h>
Кодът, предоставен в примерите на библиотеката, ще ви позволи да получите събитията от различните сензори. Въпреки това, за по-напреднали проекти, можете да промените настройките на диапазона на чувствителност както на акселерометъра, така и на жироскопа според вашите нужди.
Как работят отчетите за въртене на сензора BNO085
Ако в допълнение към сензорите ICM20948 използвате сензор с 9 DOF като BNO085, това ви позволява да генерирате доклади за ротация, важни за получаване на по-детайлни данни за ориентация при сложни движения.
Важна подробност, която трябва да имате предвид е, че този сензор изисква микроконтролер с по-голям капацитет на паметта, като SAMD21, SAMD51 или nRF52. Не се препоръчва използването на по-прости Arduino платки като Uno или Leonardo, тъй като те нямат достатъчно RAM.
Освен това BNO085 използва специална I2C реализация, която не се поддържа от всички системи. Например, този сензор не работи правилно с чипове като ESP32 или с I2C мултиплексори. Работата му обаче е доста надеждна на платформи като RP2040, STM32F4 или SAMD51.
Дизайн и характеристики на прекъсвача LSM9DS1
Сензорът LSM9DS9 1-DOF е идеален за проследяване на ориентация и движение с по-достъпна цена в сравнение с други подобни сензори. Той интегрира няколко диапазона на измерване, които ви позволяват да регулирате нивото на прецизност, необходимо за вашия проект.
Този сензор има a I2C интерфейс y SPI, което го прави универсален за различни платформи за разработка. Можете лесно да го свържете към Arduino, като осигурите напрежение между 3 и 5V и свържете I2C щифтовете на SCL y S.D.A..
Разлики с LSM9DS0
Една от основните разлики е в диапазони на акселерометъра, които в LSM9DS1 са ±2, ±4, ±8 и ±16 g, докато други сензори като LSM9DS0 включват допълнителен диапазон от ±6g.
Какво можете да правите със сензор Adafruit 9-DOF?
Този тип сензори са идеални за разработване на проекти като напр автономни роботи, навигационни системи и базирани на жестове устройства. С информацията за ускорение, въртене и ориентация, която предоставя, можете да създадете устройство, което проследява прецизно сложни движения.