BNO055 驱动程序

1. 概述

该驱动程序支持 Bosch BNO055 IMU(在串行和 I2C 总线上)。

始终提供加速度计、磁力计和陀螺仪测量值。当“fusion_enable” sysfs 属性设置为 1 时,还会提供方向(欧拉角和四元数)、线速度和重力向量,但某些传感器设置(例如,低通滤波和范围)将被锁定(IMU 固件控制它们)。

此驱动程序还支持 IIO 缓冲区。

2. 校准

如果(且仅当)在融合模式下运行,IMU 会持续执行自动校准程序。但是,可以通过在 sysfs in_magn_calibration_fast_enable 属性中写入 0 来禁用磁力计自动校准。

该驱动程序提供对自动校准标志的访问(即,您可以知道 IMU 是否已成功自动校准)以及对校准数据 blob 的访问。

用户可以将此 blob 保存在固件文件中(即在 /lib/firmware 中),该文件驱动程序在探测时会查找。如果找到,则 IMU 将使用此校准数据进行初始化。这使用户无需每次都执行校准程序(该程序包括以各种方式移动 IMU)。

该驱动程序使用两个不同的名称查找校准数据文件:首先搜索名称带有 IMU 唯一 ID(在 sysfs 中公开为 serial_number)后缀的文件;当有多个 IMU 实例时,这很有用。如果未找到此文件,则搜索“通用”校准文件(当只有一个 IMU 存在时可以使用,无需为每个设备更改花哨的名称而苦苦挣扎)。

有效的校准文件名示例:

bno055-caldata-0e7c26a33541515120204a35342b04ff.dat bno055-caldata.dat

在非融合模式下,IIO 'offset' 属性提供对来自校准数据的偏移量的访问(如果有),以便用户可以将它们应用于 accel、angvel 和 magn IIO 属性。在融合模式下,它们是不需要的(IMU 固件在内部应用这些校正),并且它们读取为零。