IMU Unit

6-Axis IMU Unit 是一款 6 轴姿态传感器,内置 3 轴重力加速度计和 3 轴陀螺仪,可实时计算倾角和加速度。芯片采用 mpu6886。

支持以下产品:

IMUUnit

MicroPython 应用示例

import os, sys, io
import M5
from M5 import *
from hardware import *
from unit import IMUUnit
import time

i2c0 = I2C(0, scl=Pin(1), sda=Pin(2), freq=100000)
imu_0 = IMUUnit(i2c0)
imu_0.set_accel_unit(1)
imu_0.set_gyro_unit(1)

while True:
    print((str('Acc:') + str((imu_0.get_accelerometer()))))
    print((str('Gryo:') + str((imu_0.get_gyroscope()))))
    print((str('Attitude') + str((imu_0.get_attitude()))))
    time.sleep_ms(100)

UiFlow2 应用示例

example.png

unit-imu-demo.m5f2

class IMUUnit

Constructors

class IMUUnit(i2c)

创建一个 IMUUnit 对象

参数:

i2c – I2C 对象。

UIFLOW2:

init.png

“”

IMUUnit.get_accelerometer()

获取加速度计的 x、y、z 值元组,以及以重力单位(9.81 m/s^2)表示的加速度向量。

  • 返回:tuple:(float, float, float)

UIFLOW2:

get_accelerometer.png

IMUUnit.get_gyroscope()

获取陀螺仪的 x、y、z 值元组以及陀螺仪矢量,单位为 rad/sec。

  • 返回:tuple:(float, float, float)

UIFLOW2:

get_gyroscope.png

IMUUnit.get_attitude()

以度为单位获取偏航角(yaw)、俯仰角(pitch)和横滚角(roll)姿态角。

  • 返回:tuple:(float, float, float)

UIFLOW2:

get_attitude.png

IMUUnit.set_accel_range(accel_scale)

设置加速度计量程范围。

参数:

accel_scale – 量程范围为 ±2g、±4g、±8g 和 ±16g。

UIFLOW2:

set_accel_range.png

IMUUnit.set_gyro_range(gyro_scale)

设置陀螺仪量程范围。

参数:

gyro_scale – ±250 dps、±500 dps、±1000 dps 和 ±2000 dps 的量程范围。

UIFLOW2:

set_gyro_range.png

IMUUnit.set_accel_unit(unit)

设置加速度计单位为 g 或 m/s^2。

参数:

unit (int) – 0: g,1: m/s^2。

UIFLOW2:

set_accel_unit.png

IMUUnit.set_gyro_unit(unit)

设置陀螺仪单位为 rad/sec 或 degrees/sec。

参数:

unit (int) – 0:度/秒,1:弧度/秒。

UIFLOW2:

set_gyro_unit.png

IMUUnit.set_gyro_calibrate(samples, delay)

使用样本数量以及每个样本的延迟来设置陀螺仪校准参数

参数:
  • samples (int.) – 采样数量。

  • delay (int) – 每个样本的延迟时间(毫秒)。

UIFLOW2:

set_gyro_calibrate.png

IMUUnit.set_gyro_offsets(x, y, z)

设置手动陀螺仪校准偏移值

参数:
  • x – 0.0

  • y – 0.0

  • z – 0.0

UIFLOW2:

set_gyro_offsets.png