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 韌體在內部應用這些校正),並且它們讀取為零。