BNO055 驱动程序

1. 概述

此驱动程序支持博世 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” 属性提供对校准数据(如果有)的偏移量的访问,以便用户可以将它们应用于加速度计、角速度和磁力计 IIO 属性。在融合模式下,它们不是必需的(IMU 固件在内部应用这些校正),并且它们读取为零。