nanoFramework.Iot.Device.Bno055 1.2.613

Prefix Reserved
dotnet add package nanoFramework.Iot.Device.Bno055 --version 1.2.613                
NuGet\Install-Package nanoFramework.Iot.Device.Bno055 -Version 1.2.613                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="nanoFramework.Iot.Device.Bno055" Version="1.2.613" />                
对于支持 PackageReference 的项目,请将此 XML 节点复制到项目文件中以引用包。
paket add nanoFramework.Iot.Device.Bno055 --version 1.2.613                
#r "nuget: nanoFramework.Iot.Device.Bno055, 1.2.613"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将其复制到交互式工具或脚本的源代码中以引用包。
// Install nanoFramework.Iot.Device.Bno055 as a Cake Addin
#addin nuget:?package=nanoFramework.Iot.Device.Bno055&version=1.2.613

// Install nanoFramework.Iot.Device.Bno055 as a Cake Tool
#tool nuget:?package=nanoFramework.Iot.Device.Bno055&version=1.2.613                

BNO055 - 测量仪器

这些传感器是智能 9 轴绝对方向传感器。大多数实现使用 I2C 传感器,但传感器也支持通过 I2C 和串行端口通信的 HID。此类只支持 I2C。

已开发所有当前使用操作。尚未实现每个传感器的单独中断级别设置。如果需要,它们很容易实现。

文档

BNO055

BNO055 数据表

您可以将此设备用作 "测量仪器""Adafruit BNO055 绝对方向传感器"

用法

重要:在创建 I2cDevice 之前,请确保正确设置 I2C 引脚,特别是 ESP32,确保安装 nanoFramework.Hardware.ESP32 nuget

//////////////////////////////////////////////////////////////////////
// when connecting to an ESP32 device, need to configure the I2C GPIOs
// used for the bus
Configuration.SetPinFunction(21, DeviceFunction.I2C1_DATA);
Configuration.SetPinFunction(22, DeviceFunction.I2C1_CLOCK);

对于 STM32 等其他设备,请确保您正在使用您想要使用的 I2C 总线的预设引脚。

创建一个 Bno055Sensor 类,并传递 I2C 设备。类中提供了默认的 I2C 地址。

I2cDevice i2cDevice = I2cDevice.Create(new I2cConnectionSettings(1, Bno055Sensor.DefaultI2cAddress));
Bno055Sensor bno055Sensor = new Bno055Sensor(i2cDevice);
Debug.WriteLine($"Id: {bno055Sensor.Info.ChipId}, AccId: {bno055Sensor.Info.AcceleratorId}, GyroId: {bno055Sensor.Info.GyroscopeId}, MagId: {bno055Sensor.Info.MagnetometerId}");
Debug.WriteLine($"Firmware version: {bno055Sensor.Info.FirmwareVersion}, Bootloader: {bno055Sensor.Info.BootloaderVersion}");
Debug.WriteLine($"Temperature source: {bno055Sensor.TemperatureSource}, Operation mode: {bno055Sensor.OperationMode}, Units: {bno055Sensor.Units}");
Debug.WriteLine($"Powermode: {bno055Sensor.PowerMode}");

您可以通过属性轻松访问传感器信息和设置。

校准

为了获得准确的测量值,最好等待磁力计完成校准。就像在您的手机上一样,当需要进行校准时,需要将传感器在空中移动以帮助校准。

以下代码展示了如何检查校准

Debug.WriteLine("Checking the magnetometer calibration, move the sensor up to the calibration will be complete if needed");
var calibrationStatus = bno055Sensor.GetCalibrationStatus();
while ((calibrationStatus & CalibrationStatus.MagnetometerSuccess) != (CalibrationStatus.MagnetometerSuccess))
{
    Debug.Write($".");
    calibrationStatus = bno055Sensor.GetCalibrationStatus();
    Thread.Sleep(200);
}

Debug.WriteLine();
Debug.WriteLine("Calibration completed");

请注意,实际上并不需要检查其他传感器和系统的校准。校准是随时进行的。重要的是磁力计。

访问传感器数据

通过它们的属性简单地访问各种传感器数据。请注意,最好是一次读取数据然后显示它们,或者对它们进行操作,而不是每次访问子元素。原因是第一种情况下,您将进行一次测量,数据将是一致的,在第二种情况下,每次访问一个子属性时,您都会进行一次测量,这意味着数据将不一致。

错误方式

// Data will be inconsistent in this case!
// Do not access the data like this
Debug.WriteLine($"Magnetometer X: {bno055Sensor.Magnetometer.X} Y: {bno055Sensor.Magnetometer.Y} Z: {bno055Sensor.Magnetometer.Z}");

正确方式

// First read and store the data
var magneto = bno055Sensor.Magnetometer;
// Then manipulate the data
Debug.WriteLine($"Magnetometer X: {magneto.X} Y: {magneto.Y} Z: {magneto.Z}");

该传感器提供9轴测量。以下是一个示例,展示了您可以访问的所有传感器属性

while(true)
{
    var magneto = bno055Sensor.Magnetometer;
    Debug.WriteLine($"Magnetometer X: {magneto.X} Y: {magneto.Y} Z: {magneto.Z}");
    var gyro = bno055Sensor.Gyroscope;
    Debug.WriteLine($"Gyroscope X: {gyro.X} Y: {gyro.Y} Z: {gyro.Z}");
    var accele = bno055Sensor.Accelerometer;
    Debug.WriteLine($"Acceleration X: {accele.X} Y: {accele.Y} Z: {accele.Z}");
    var orien = bno055Sensor.Orientation;
    Debug.WriteLine($"Orientation Heading: {orien.X} Roll: {orien.Y} Pitch: {orien.Z}");
    var line = bno055Sensor.LinearAcceleration;
    Debug.WriteLine($"Linear acceleration X: {line.X} Y: {line.Y} Z: {line.Z}");
    var gravity = bno055Sensor.Gravity;
    Debug.WriteLine($"Gravity X: {gravity.X} Y: {gravity.Y} Z: {gravity.Z}");
    var qua = bno055Sensor.Quaternion;
    Debug.WriteLine($"Quaternion X: {qua.X} Y: {qua.Y} Z: {qua.Z} W: {qua.W}");
    var temp = bno055Sensor.Temperature.Celsius;
    Debug.WriteLine($"Temperature: {temp} °C");
    Thread.Sleep(100);
}

关于传感器和单位的说明

  • 方向:

    • 绝对方向(欧拉向量,100Hz)

    • 基于360°球体的三个轴方向数据

    • Heading = Vector3.X; Roll = Vector3.Y; Pitch = Vector3.Z

    • 单位可用的是度(默认)或弧度,您可以使用来更改

      bno055Sensor.Units = bno055Sensor.Units | Units.EulerAnglesRadians;
      
  • 四元数

    • 绝对方向(四元数,100Hz)
    • 四个点四元数输出,以进行更精确的数据操作
    • 单位是1四元数 = 2^14返回的数据
  • 磁力计

    • 磁场强度向量(20Hz)
    • 三个轴磁场感测,以微特斯拉(uT)为单位
  • 加速度

    • 加速度向量(100Hz)
    • 三个轴加速度(重力+线性运动)
    • 默认单位为m/s^2,可更改为mg
  • 线性加速度

    • 线性加速度向量(100Hz)
    • 三个轴线性加速度数据(加速度减去重力)
    • 默认单位为m/s^2,可更改为mg
  • 重力

    • 重力向量(100Hz)
    • 三个轴重力加速度(减去任何运动)
    • 默认单位为m/s^2,可更改为mg
  • 陀螺仪

    • 角速度向量(100Hz)
    • 三个轴的“旋转速度”
    • 默认单位是每秒度但可更改为每秒弧度
  • 温度

    • 温度(1Hz)

    • 环境温度,单位为摄氏度

    • 默认值可更改为华氏度

    • 温度可以通过陀螺仪或加速度计测量

    • 精度似乎更好,因此默认设置为陀螺仪。您可以像这样更改源

      bno055Sensor.TemperatureSource = TemperatureSource.Accelerometer;
      

传感器数据校准

您可以获得和设置传感器数据校准。每个允许操作的传感器都有一个获取校准数据并设置校准数据的函数。

以下是如何获取和设置加速度计校准数据的示例。

Vector4 calib = bno055Sensor.GetAccelerometerCalibrationData();
// Change, transform the calibration data
bno055Sensor.SetAccelerometerCalibrationData(calib);

重新映射加速度计轴

您可以将加速度计轴重新映射以及获取它们的配置。

例如,您可以像这样更改X轴为负号

var axisMap = bno055Sensor.GetAxisMap();
axisMap[0].Sign = AxisSign.Negative;
bno055Sensor.SetAxisMap(axisMap[0], axisMap[1], axisMap[2]);

在返回的数组中,X是第一个元素,Y是第二个,Z是最后一个。

产品 兼容和附加计算目标框架版本。
.NET Framework net是兼容的。
兼容目标框架
包含目标框架(在包中)
了解更多关于 目标框架.NET 标准规范 的信息。

NuGet 包

此包未由任何 NuGet 包使用。

GitHub 存储库

此包未由任何流行的 GitHub 存储库使用。

版本 下载 最后更新
1.2.613 57 8/9/2024
1.2.601 49 7/26/2024
1.2.590 74 7/17/2024
1.2.573 87 6/19/2024
1.2.570 82 6/14/2024
1.2.560 84 5/29/2024
1.2.548 94 5/15/2024
1.2.536 94 4/15/2024
1.2.514 104 3/22/2024
1.2.494 94 2/28/2024
1.2.474 110 1/24/2024
1.2.462 138 1/5/2024
1.2.458 127 12/20/2023
1.2.436 139 11/10/2023
1.2.416 87 11/8/2023
1.2.403 126 10/6/2023
1.2.396 99 9/27/2023
1.2.384 146 9/6/2023
1.2.378 140 8/16/2023
1.2.369 149 8/2/2023
1.2.363 128 7/28/2023
1.2.357 137 7/19/2023
1.2.354 125 7/14/2023
1.2.345 153 6/21/2023
1.2.341 141 6/14/2023
1.2.337 142 6/7/2023
1.2.335 143 6/2/2023
1.2.329 129 5/26/2023
1.2.313 137 5/12/2023
1.2.302 156 5/10/2023
1.2.297 142 5/3/2023
1.2.273 223 3/17/2023
1.2.267 237 3/10/2023
1.2.263 237 3/8/2023
1.2.259 216 2/27/2023
1.2.256 248 2/24/2023
1.2.253 234 2/22/2023
1.2.222 300 1/9/2023
1.2.217 326 1/6/2023
1.2.212 309 1/5/2023
1.2.208 296 1/3/2023
1.2.203 303 12/28/2022
1.2.159 382 11/14/2022
1.2.153 369 11/5/2022
1.2.141 391 10/25/2022
1.2.128 399 10/22/2022
1.2.122 445 10/12/2022
1.2.114 392 10/8/2022
1.2.95 442 9/22/2022
1.2.87 511 9/15/2022
1.2.73 407 9/8/2022
1.2.63 412 9/3/2022
1.2.47 432 8/15/2022
1.2.40 432 8/6/2022
1.2.38 435 8/5/2022
1.2.32 435 8/2/2022
1.2.28 452 8/1/2022
1.2.13 452 7/24/2022
1.2.10 429 7/23/2022
1.1.145.58726 458 7/7/2022
1.1.133.52556 450 6/30/2022
1.1.121.35854 468 6/26/2022
1.1.116.8772 444 6/24/2022
1.1.113.2032 446 6/23/2022
1.1.102.51394 416 6/15/2022
1.1.99.36719 438 6/14/2022
1.1.97.17326 439 6/13/2022
1.1.92.53000 432 6/8/2022
1.1.72.29765 424 5/31/2022
1.1.64.21380 446 5/26/2022
1.1.58.10097 455 5/23/2022
1.1.54.28879 453 5/23/2022
1.1.40 463 5/5/2022
1.1.3 476 4/15/2022
1.1.1 454 4/14/2022
1.0.300 467 3/31/2022
1.0.288-preview.114 118 3/25/2022
1.0.288-preview.113 116 3/25/2022
1.0.288-preview.106 108 3/23/2022
1.0.288-preview.104 104 3/22/2022
1.0.288-preview.103 102 3/21/2022
1.0.288-preview.100 113 3/19/2022
1.0.288-preview.99 119 3/18/2022
1.0.288-preview.98 112 3/18/2022
1.0.288-preview.95 123 3/15/2022
1.0.288-preview.93 109 3/15/2022
1.0.288-preview.87 111 3/10/2022
1.0.288-preview.86 114 3/8/2022
1.0.288-preview.77 116 2/27/2022
1.0.288-preview.75 105 2/26/2022
1.0.288-preview.65 108 2/18/2022
1.0.288-preview.63 109 2/16/2022
1.0.288-preview.61 115 2/12/2022
1.0.288-preview.58 107 2/10/2022
1.0.288-preview.53 110 2/9/2022
1.0.288-preview.48 125 2/4/2022
1.0.288-preview.41 120 1/31/2022
1.0.288-preview.29 121 1/28/2022
1.0.288-preview.20 127 1/27/2022
1.0.288-preview.19 117 1/27/2022
1.0.288-preview.18 123 1/27/2022
1.0.288-preview.5 121 1/24/2022
1.0.288-preview.3 118 1/21/2022
1.0.288-preview.1 116 1/21/2022
1.0.272 152 1/10/2022
1.0.259 330 12/9/2021
1.0.258 334 12/7/2021
1.0.218 187 10/18/2021
1.0.157 346 9/4/2021
1.0.155 329 8/31/2021
1.0.153 342 8/14/2021
1.0.151 341 8/6/2021
1.0.146 335 7/22/2021
1.0.130 147 7/6/2021
1.0.127 170 7/5/2021
1.0.125 186 7/5/2021
1.0.12 184 5/21/2021