Эта библиотека взаимодействует с InvensenseMPU-6500 и InvenSense MPU-9250 и MPU-9255 инерциальными измерительными блоками (IMU). Эта библиотека совместима с системами сборки Arduino и CMake.
Invense MPU-6500 представляет собой трехосный гироскоп и трехосный акселерометр. InvenSense MPU-9250 представляет собой систему в корпусе (SiP), сочетающую в себе два чипа: трехосевой гироскоп MPU-6500 и трехосный акселерометр; и трехосный магнитометр AK8963. MPU-6500 и MPU-9250 поддерживают I2C до 400 кГц и связь SPI до 1 МГц для настройки регистров и 20 МГц для чтения данных. Доступны следующие выбираемые полномасштабные диапазоны датчиков:
Полномасштабный диапазон гироскопа | Полный диапазон шкалы акселерометра | Полный диапазон шкалы магнитометра (только MPU-9250) |
---|---|---|
+/- 250 град/с | +/- 2г | +/- 4800 мкТ |
+/- 500 град/с | +/- 4г | |
+/- 1000 град/с | +/- 8 г | |
+/- 2000 град/с | +/- 16 г |
IMU опрашивают гироскопы, акселерометры и магнитометры с помощью 16-битных аналого-цифровых преобразователей. Он также оснащен программируемыми цифровыми фильтрами, точными часами и встроенным датчиком температуры.
Используйте диспетчер библиотек Arduino, чтобы установить эту библиотеку, или клонируйте ее в папку Arduino/libraries.
Для MPU-6500 эта библиотека добавляется как:
# include " mpu6500.h "
Для MPU-9250 эта библиотека добавляется как:
# include " mpu9250.h "
Примеры исполняемых файлов Arduino находятся в папке example/arduino/ . Устройства Teensy 3.x, 4.x и LC используются для тестирования под Arduino, и эта библиотека должна быть совместима с другими устройствами Arduino.
CMake используется для создания этой библиотеки, которая экспортируется как целевой объект библиотеки под названием invensense_imu .
Для MPU-6500 эта библиотека добавляется как:
# include " mpu6500.h "
Для MPU-9250 эта библиотека добавляется как:
# include " mpu9250.h "
Библиотеку также можно скомпилировать автономно, используя идиому CMake для создания каталога сборки , а затем из этого каталога выдать:
cmake .. -DMCU=MK66FX1M0
make
Это приведет к созданию библиотеки и примеров исполняемых файлов с именами i2c_example , spi_example , drdy_spi_example и wom_example (только для MPU-9250). Исходные файлы примеров исполняемых файлов расположены по адресу example/cmake . Обратите внимание, что команда cmake включает определение, определяющее микроконтроллер, для которого компилируется код. Это необходимо для правильной настройки кода, частоты процессора и параметров компиляции/компоновки. Доступные микроконтроллеры:
Известно, что они работают с теми же пакетами, которые используются в продуктах Teensy. Также известно, что переключение пакетов работает хорошо, пока это всего лишь изменение пакета.
В примерах создаются исполняемые файлы для связи с датчиком с использованием связи I2C или SPI, использования прерывания готовности данных и использования прерывания пробуждения при движении соответственно. Каждая цель также имеет _hex для создания шестнадцатеричного файла для загрузки в микроконтроллер и _upload для использования загрузчика Teensy CLI для прошивки Teensy. Обратите внимание, что инструкции по настройке среды сборки можно найти в нашем репозитории инструментов сборки.
Эта библиотека находится в пространстве имен bfs .
Этот класс предоставляет методы для чтения и записи регистров этих датчиков. Ожидается, что это должно работать как минимум с MPU-6000, MPU-6050, MPU-6500, MPU-9150 и MPU-9250; хотя это может работать и для других датчиков. Большинство пользователей, вероятно, предпочтут специальные классы датчиков, указанные ниже; однако этот класс может позволить людям разблокировать большую функциональность и использовать его в качестве отправной точки для своих собственных драйверов датчиков.
InvensenseImu() Конструктор по умолчанию, требует вызова метода Config для настройки шины I2C или SPI и адреса I2C или вывода выбора чипа SPI.
InvensenseImu(TwoWire *i2c, const uint8_t addr) Создает объект InvensenseImu. Этот конструктор используется для интерфейса связи I2C. Указатель на объект шины I2C передается вместе с адресом I2C датчика.
InvensenseImu(SPIClass *bus, uint8_t cs) Создает объект InvensenseImu. Этот конструктор используется для интерфейса связи SPI. Указатель на объект шины SPI передается вместе с выводом выбора микросхемы датчика. Любой вывод, поддерживающий цифровой ввод/вывод, может использоваться в качестве вывода выбора микросхемы.
void Config(TwoWire *bus, const uint8_t addr) Это необходимо при использовании конструктора по умолчанию и устанавливает шину I2C и адрес I2C.
void Config(SPIClass *spi, const uint8_t cs) Это требуется при использовании конструктора по умолчанию и настраивает шину SPI и вывод выбора чипа.
void Begin() Инициализирует связь с датчиком. Коммуникационная шина не инициализируется в этой библиотеке и должна инициализироваться отдельно; это улучшает совместимость с другими датчиками, которые могут работать на той же шине.
bool WriteRegister(const uint8_t reg, const uint8_t data, const int32_t spi_lock) Записывает данные регистра в датчик, учитывая адрес регистра и данные. Тактовая частота SPI должна быть указана, если используется связь SPI.
bool WriteRegister(const uint8_t reg, const uint8_t data) Перегрузка вышеописанного, когда используется связь I2C.
bool ReadRegisters(const uint8_t reg, const uint8_t count, const int32_t spi_lock, uint8_t * const data) Считывает данные регистра с датчика, учитывая адрес регистра, количество регистров для чтения, тактовую частоту SPI и указатель для хранения данных.
bool ReadRegisters(const uint8_t reg, const uint8_t count, uint8_t * const data) Перегрузка вышеописанного, когда используется связь I2C.
Этот класс работает с модулями IMU MPU-9250 и MPU-9255.
Mpu9250() Конструктор по умолчанию, требует вызова метода Config для настройки шины I2C или SPI и адреса I2C или вывода выбора чипа SPI.
Mpu9250(i2c_t3 *bus, I2cAddr адрес) Создает объект Mpu9250. Этот конструктор используется для интерфейса связи I2C. Указатель на объект шины I2C передается вместе с адресом I2C датчика. Адрес будет I2C_ADDR_PRIM (0x68), если вывод AD0 заземлен, и I2C_ADDR_SEC (0x69), если вывод AD0 поднят на высокий уровень.
Mpu9250 mpu9250 (&Wire, bfs::Mpu9250::I2C_ADDR_PRIM);
Mpu9250(SPIClass *bus, uint8_t cs) Создает объект Mpu9250. Этот конструктор используется для интерфейса связи SPI. Указатель на объект шины SPI передается вместе с выводом выбора микросхемы датчика. Любой вывод, поддерживающий цифровой ввод/вывод, может использоваться в качестве вывода выбора микросхемы.
Mpu9250 mpu9250 (&SPI, 2 );
void Config(TwoWire *bus, const I2cAddr addr) Это необходимо при использовании конструктора по умолчанию и устанавливает шину I2C и адрес I2C. Адрес будет I2C_ADDR_PRIM (0x68), если вывод AD0 заземлен, и I2C_ADDR_SEC (0x69), если вывод AD0 поднят на высокий уровень.
void Config(SPIClass *spi, const uint8_t cs) Это требуется при использовании конструктора по умолчанию и настраивает шину SPI и вывод выбора чипа.
bool Begin() Инициализирует связь с датчиком и настраивает диапазоны датчиков по умолчанию, частоты дискретизации и настройки фильтра нижних частот. Диапазон акселерометра по умолчанию составляет +/- 16 г, а диапазон гироскопа по умолчанию составляет +/- 2000 град/с. Частота дискретизации по умолчанию составляет 1000 Гц, а для фильтра нижних частот установлена частота среза 184 Гц. True возвращается, если связь с датчиком может быть установлена и настройка завершена успешно, в противном случае возвращается false. Коммуникационная шина не инициализируется в этой библиотеке и должна инициализироваться отдельно; это улучшает совместимость с другими датчиками, которые могут работать на той же шине.
Wire.begin();
Wire.setClock( 400000 );
bool status = mpu9250.Begin();
if (!status) {
// ERROR
}
bool EnableDrdyInt() Включает прерывание готовности данных. Прерывание на 50 мкс будет вызвано на выводе INT MPU-9250, когда данные IMU будут готовы. Это прерывание имеет активный высокий уровень. Этот метод возвращает true, если прерывание успешно разрешено, в противном случае возвращается false.
bool status = mpu9250.EnableDrdyInt();
if (!status) {
// ERROR
}
bool DisableDrdyInt() Отключает прерывание готовности данных. Этот метод возвращает true, если прерывание успешно отключено, в противном случае возвращается false.
bool status = mpu9250.DisableDrdyInt();
if (!status) {
// ERROR
}
bool ConfigAccelRange(const AccelRange range) Устанавливает полный диапазон шкалы акселерометра. Варианты:
Диапазон | Перечисляемое значение |
---|---|
+/- 2г | ACCEL_RANGE_2G |
+/- 4г | ACCEL_RANGE_4G |
+/- 8 г | ACCEL_RANGE_8G |
+/- 16 г | ACCEL_RANGE_16G |
True возвращается при успешной установке диапазона акселерометра, в противном случае возвращается false. Диапазон по умолчанию составляет +/-16g.
bool status = mpu9250.ConfigAccelRange(bfs::Mpu9250::ACCEL_RANGE_4G);
if (!status) {
// ERROR
}
AccelRange accel_range() Возвращает текущий диапазон акселерометра.
AccelRange range = mpu9250.accel_range();
bool ConfigGyroRange(const GyroRange range) Устанавливает полный диапазон шкалы гироскопа. Варианты:
Диапазон | Перечисляемое значение |
---|---|
+/- 250 град/с | GYRO_RANGE_250DPS |
+/- 500 град/с | GYRO_RANGE_500DPS |
+/- 1000 град/с | GYRO_RANGE_1000DPS |
+/- 2000 град/с | GYRO_RANGE_2000DPS |
True возвращается при успешной установке диапазона гироскопа, в противном случае возвращается false. Диапазон по умолчанию составляет +/- 2000 град/с.
bool status = mpu9250.ConfigGyroRange(bfs::Mpu9250::GYRO_RANGE_1000DPS);
if (!status) {
// ERROR
}
GyroRange gyro_range() Возвращает текущий диапазон гироскопа.
GyroRange range = mpu9250.gyro_range();
bool ConfigSrd(const uint8_t srd) Устанавливает делитель частоты дискретизации датчика. MPU-9250 производит опрос акселерометра и гироскопа с частотой в Гц, определяемой:
Настройка srd , равная 0, означает, что MPU-9250 производит выборку акселерометра и гироскопа с частотой 1000 Гц. Настройка srd , равная 4, установит частоту дискретизации 200 Гц. Прерывание готовности данных IMU привязано к частоте, определяемой делителем частоты дискретизации. Магнитометр производит выборку с частотой 100 Гц для значений делителя частоты дискретизации, соответствующих 100 Гц или выше. В противном случае магнитометр производит выборку с частотой 8 Гц.
True возвращается при успешной установке делителя частоты дискретизации, в противном случае возвращается false. Значение делителя частоты дискретизации по умолчанию равно 0, что соответствует частоте дискретизации 1000 Гц.
/* Set sample rate divider for 50 Hz */
bool status = mpu9250.sample_rate_divider( 19 );
if (!status) {
// ERROR
}
uint8_t srd() Возвращает текущее значение делителя частоты дискретизации.
uint8_t srd = mpu9250.srd();
bool ConfigDlpfBandwidth(const DlpfBandwidth dlpf) Устанавливает частоту среза цифрового фильтра нижних частот для акселерометра, гироскопа и датчика температуры. Доступные полосы пропускания:
Пропускная способность DLPF | Перечисляемое значение |
---|---|
184 Гц | DLPF_BANDWIDTH_184HZ |
92 Гц | DLPF_BANDWIDTH_92HZ |
41 Гц | DLPF_BANDWIDTH_41HZ |
20 Гц | DLPF_BANDWIDTH_20HZ |
10 Гц | DLPF_BANDWIDTH_10HZ |
5 Гц | DLPF_BANDWIDTH_5HZ |
True возвращается при успешной настройке цифровых фильтров нижних частот, в противном случае возвращается false. Полоса пропускания по умолчанию составляет 184 Гц.
bool status = mpu9250.ConfigDlpfBandwidth(bfs::Mpu9250::DLPF_BANDWIDTH_20HZ);
if (!status) {
// ERROR
}
DlpfBandwidth dlpf_bandwidth() Возвращает текущую настройку полосы пропускания цифрового фильтра нижних частот.
DlpfBandwidth dlpf = mpu9250.dlpf_bandwidth();
bool EnableWom(int16_t порог_mg, const WomRate wom_rate) Включает прерывание Wake-On-Motion. Он переводит MPU-9250 в режим пониженного энергопотребления и пробуждается с интервалом, определяемым WomRate . Если акселерометр обнаруживает движение, превышающее пороговое значение порога_mg , он генерирует импульс длительностью 50 мкс с контакта прерывания MPU-9250. Поддерживаются следующие перечисленные курсы WOM:
Частота дискретизации WOM | Перечисляемое значение |
---|---|
0,24 Гц | WOM_RATE_0_24HZ |
0,49 Гц | WOM_RATE_0_49HZ |
0,98 Гц | WOM_RATE_0_98HZ |
1,95 Гц | WOM_RATE_1_95HZ |
3,91 Гц | WOM_RATE_3_91HZ |
7,81 Гц | WOM_RATE_7_81HZ |
15,63 Гц | WOM_RATE_15_63HZ |
31,25 Гц | WOM_RATE_31_25HZ |
62,50 Гц | WOM_RATE_62_50HZ |
125 Гц | WOM_RATE_125HZ |
250 Гц | WOM_RATE_250HZ |
500 Гц | WOM_RATE_500HZ |
Порог движения задается как значение от 4 до 1020 мг, которое внутренне отображается в один байт, значение 1–255. Эта функция возвращает true при успешном включении Wake On Motion, в противном случае возвращает false. См. пример wom_i2c . Ниже приведен пример включения пробуждения при движении с порогом 40 мг и ODR 31,25 Гц.
imu.EnableWom( 40 , bfs::Mpu9250::WOM_RATE_31_25HZ);
void Reset() Сбрасывает MPU-9250.
bool Read() Считывает данные из MPU-9250 и сохраняет данные в объекте Mpu9250. Возвращает true, если данные успешно прочитаны, в противном случае возвращает false.
/* Read the IMU data */
if (mpu9250.Read()) {
}
bool new_imu_data() Возвращает true, если от акселерометра и гироскопа были возвращены новые данные.
if (mpu9250.Read()) {
bool new_data = mpu9250. new_imu_data ();
}
bool new_mag_data() Возвращает true, если с магнитометра были возвращены новые данные. Для частоты дискретизации MPU-9250 100 Гц и выше частота дискретизации магнитометра составляет 100 Гц. Для частот выборки MPU-9250 менее 100 Гц магнитометр производит выборку с частотой 8 Гц, поэтому нередко можно получить новые данные IMU, но не новые данные магнитометра.
if (mpu9250.Read()) {
bool new_mag = mpu9250. new_mag_data ();
}
float accel_x_mps2() Возвращает данные акселерометра x из объекта Mpu9250 в единицах м/с/с. Аналогичные методы существуют для данных по осям y и z.
/* Read the IMU data */
if (mpu9250.Read()) {
float ax = mpu9250. accel_x_mps2 ();
float ay = mpu9250. accel_y_mps2 ();
float az = mpu9250. accel_z_mps2 ();
}
float gyro_x_radps() Возвращает данные гироскопа x из объекта Mpu9250 в единицах рад/с. Аналогичные методы существуют для данных по осям y и z.
/* Read the IMU data */
if (mpu9250.Read()) {
float gx = mpu9250. gyro_x_radps ();
float gy = mpu9250. gyro_y_radps ();
float gz = mpu9250. gyro_z_radps ();
}
float mag_x_ut() Возвращает данные магнитометра x из объекта Mpu9250 в единицах мкТ. Аналогичные методы существуют для данных по осям y и z.
/* Read the IMU data */
if (mpu9250.Read()) {
float hx = mpu9250. mag_x_ut ();
float hy = mpu9250. mag_y_ut ();
float hz = mpu9250. mag_z_ut ();
}
float die_temp_c() Возвращает температуру матрицы датчика в единицах Цельсия.
/* Read the IMU data */
if (mpu9250.Read()) {
float temp = mpu9250. die_temp_c ();
}
Этот класс работает с датчиком MPU-6500.
Mpu6500() Конструктор по умолчанию, требует вызова метода Config для настройки шины I2C или SPI и адреса I2C или вывода выбора чипа SPI.
Mpu6500(i2c_t3 *bus, I2cAddr адрес) Создает объект Mpu6500. Этот конструктор используется для интерфейса связи I2C. Указатель на объект шины I2C передается вместе с адресом I2C датчика. Адрес будет I2C_ADDR_PRIM (0x68), если вывод AD0 заземлен, и I2C_ADDR_SEC (0x69), если вывод AD0 поднят на высокий уровень.
Mpu6500 mpu6500 (&Wire, bfs::Mpu6500::I2C_ADDR_PRIM);
Mpu6500(SPIClass *bus, uint8_t cs) Создает объект Mpu6500. Этот конструктор используется для интерфейса связи SPI. Указатель на объект шины SPI передается вместе с выводом выбора микросхемы датчика. Любой вывод, поддерживающий цифровой ввод/вывод, может использоваться в качестве вывода выбора микросхемы.
Mpu6500 mpu6500 (&SPI, 2 );
void Config(TwoWire *bus, const I2cAddr addr) Это необходимо при использовании конструктора по умолчанию и устанавливает шину I2C и адрес I2C. Адрес будет I2C_ADDR_PRIM (0x68), если вывод AD0 заземлен, и I2C_ADDR_SEC (0x69), если вывод AD0 поднят на высокий уровень.
void Config(SPIClass *spi, const uint8_t cs) Это требуется при использовании конструктора по умолчанию и настраивает шину SPI и вывод выбора чипа.
bool Begin() Инициализирует связь с датчиком и настраивает диапазоны датчиков по умолчанию, частоты дискретизации и настройки фильтра нижних частот. Диапазон акселерометра по умолчанию составляет +/- 16 г, а диапазон гироскопа по умолчанию составляет +/- 2000 град/с. Частота дискретизации по умолчанию составляет 1000 Гц, а для фильтра нижних частот установлена частота среза 184 Гц. True возвращается, если связь с датчиком может быть установлена и настройка завершена успешно, в противном случае возвращается false. Коммуникационная шина не инициализируется в этой библиотеке и должна инициализироваться отдельно; это улучшает совместимость с другими датчиками, которые могут работать на той же шине.
Wire.begin();
Wire.setClock( 400000 );
bool status = mpu6500.Begin();
if (!status) {
// ERROR
}
bool EnableDrdyInt() Включает прерывание готовности данных. Прерывание на 50 мкс будет вызвано на выводе INT MPU-9250, когда данные IMU будут готовы. Это прерывание имеет активный высокий уровень. Этот метод возвращает true, если прерывание успешно разрешено, в противном случае возвращается false.
bool status = mpu6500.EnableDrdyInt();
if (!status) {
// ERROR
}
bool DisableDrdyInt() Отключает прерывание готовности данных. Этот метод возвращает true, если прерывание успешно отключено, в противном случае возвращается false.
bool status = mpu6500.DisableDrdyInt();
if (!status) {
// ERROR
}
bool ConfigAccelRange(const AccelRange range) Устанавливает полный диапазон шкалы акселерометра. Варианты:
Диапазон | Перечисляемое значение |
---|---|
+/- 2г | ACCEL_RANGE_2G |
+/- 4г | ACCEL_RANGE_4G |
+/- 8 г | ACCEL_RANGE_8G |
+/- 16 г | ACCEL_RANGE_16G |
True возвращается при успешной установке диапазона акселерометра, в противном случае возвращается false. Диапазон по умолчанию составляет +/-16g.
bool status = mpu6500.ConfigAccelRange(bfs::Mpu6500::ACCEL_RANGE_4G);
if (!status) {
// ERROR
}
AccelRange accel_range() Возвращает текущий диапазон акселерометра.
AccelRange range = mpu6500.accel_range();
bool ConfigGyroRange(const GyroRange range) Устанавливает полный диапазон шкалы гироскопа. Варианты:
Диапазон | Перечисляемое значение |
---|---|
+/- 250 град/с | GYRO_RANGE_250DPS |
+/- 500 град/с | GYRO_RANGE_500DPS |
+/- 1000 град/с | GYRO_RANGE_1000DPS |
+/- 2000 град/с | GYRO_RANGE_2000DPS |
True возвращается при успешной установке диапазона гироскопа, в противном случае возвращается false. Диапазон по умолчанию составляет +/- 2000 град/с.
bool status = mpu6500.ConfigGyroRange(bfs::Mpu6500::GYRO_RANGE_1000DPS);
if (!status) {
// ERROR
}
GyroRange gyro_range() Возвращает текущий диапазон гироскопа.
GyroRange range = mpu6500.gyro_range();
bool ConfigSrd(const uint8_t srd) Устанавливает делитель частоты дискретизации датчика. MPU-9250 производит опрос акселерометра и гироскопа с частотой в Гц, определяемой:
Настройка srd , равная 0, означает, что MPU-9250 производит выборку акселерометра и гироскопа с частотой 1000 Гц. Настройка srd , равная 4, установит частоту дискретизации 200 Гц. Прерывание готовности данных IMU привязано к частоте, определяемой делителем частоты дискретизации. Магнитометр производит выборку с частотой 100 Гц для значений делителя частоты дискретизации, соответствующих 100 Гц или выше. В противном случае магнитометр производит выборку с частотой 8 Гц.
True возвращается при успешной установке делителя частоты дискретизации, в противном случае возвращается false. Значение делителя частоты дискретизации по умолчанию равно 0, что соответствует частоте дискретизации 1000 Гц.
/* Set sample rate divider for 50 Hz */
bool status = mpu6500.sample_rate_divider( 19 );
if (!status) {
// ERROR
}
uint8_t srd() Возвращает текущее значение делителя частоты дискретизации.
uint8_t srd = mpu6500.srd();
bool ConfigDlpfBandwidth(const DlpfBandwidth dlpf) Устанавливает частоту среза цифрового фильтра нижних частот для акселерометра, гироскопа и датчика температуры. Доступные полосы пропускания:
Пропускная способность DLPF | Перечисляемое значение |
---|---|
184 Гц | DLPF_BANDWIDTH_184HZ |
92 Гц | DLPF_BANDWIDTH_92HZ |
41 Гц | DLPF_BANDWIDTH_41HZ |
20 Гц | DLPF_BANDWIDTH_20HZ |
10 Гц | DLPF_BANDWIDTH_10HZ |
5 Гц | DLPF_BANDWIDTH_5HZ |
True возвращается при успешной настройке цифровых фильтров нижних частот, в противном случае возвращается false. Полоса пропускания по умолчанию составляет 184 Гц.
bool status = mpu6500.ConfigDlpfBandwidth(bfs::Mpu6500::DLPF_BANDWIDTH_20HZ);
if (!status) {
// ERROR
}
DlpfBandwidth dlpf_bandwidth() Возвращает текущую настройку полосы пропускания цифрового фильтра нижних частот.
DlpfBandwidth dlpf = mpu6500.dlpf_bandwidth();
bool Read() Считывает данные из MPU-6500 и сохраняет данные в объекте Mpu6500. Возвращает true, если данные успешно прочитаны, в противном случае возвращает false.
/* Read the IMU data */
if (mpu6500.Read()) {
}
bool new_imu_data() Возвращает true, если от акселерометра и гироскопа были возвращены новые данные.
if (mpu6500.Read()) {
bool new_data = mpu6500. new_imu_data ();
}
float accel_x_mps2() Возвращает данные акселерометра x из объекта Mpu6500 в единицах м/с/с. Аналогичные методы существуют для данных по осям y и z.
/* Read the IMU data */
if (mpu6500.Read()) {
float ax = mpu6500. accel_x_mps2 ();
float ay = mpu6500. accel_y_mps2 ();
float az = mpu6500. accel_z_mps2 ();
}
float gyro_x_radps() Возвращает данные гироскопа x из объекта Mpu6500 в единицах рад/с. Аналогичные методы существуют для данных по осям y и z.
/* Read the IMU data */
if (mpu6500.Read()) {
float gx = mpu6500. gyro_x_radps ();
float gy = mpu6500. gyro_y_radps ();
float gz = mpu6500. gyro_z_radps ();
}
float die_temp_c() Возвращает температуру матрицы датчика в единицах Цельсия.
/* Read the IMU data */
if (mpu6500.Read()) {
float temp = mpu6500. die_temp_c ();
}
Эта библиотека преобразует все данные в общую систему координат перед их возвратом. Эта система координат показана ниже. Это правосторонняя система координат с положительной осью z вниз, распространенная в динамике самолетов.
Осторожность! Эта система координат показана относительно датчиков MPU-6500 и MPU-9250. Датчик может поворачиваться относительно коммутационной платы.