Meadow.Foundation.FeatherWings.NineDofImuWing
1.4.0.4-beta
See the version list below for details.
dotnet add package Meadow.Foundation.FeatherWings.NineDofImuWing --version 1.4.0.4-beta
NuGet\Install-Package Meadow.Foundation.FeatherWings.NineDofImuWing -Version 1.4.0.4-beta
<PackageReference Include="Meadow.Foundation.FeatherWings.NineDofImuWing" Version="1.4.0.4-beta" />
paket add Meadow.Foundation.FeatherWings.NineDofImuWing --version 1.4.0.4-beta
#r "nuget: Meadow.Foundation.FeatherWings.NineDofImuWing, 1.4.0.4-beta"
// Install Meadow.Foundation.FeatherWings.NineDofImuWing as a Cake Addin #addin nuget:?package=Meadow.Foundation.FeatherWings.NineDofImuWing&version=1.4.0.4-beta&prerelease // Install Meadow.Foundation.FeatherWings.NineDofImuWing as a Cake Tool #tool nuget:?package=Meadow.Foundation.FeatherWings.NineDofImuWing&version=1.4.0.4-beta&prerelease
Meadow.Foundation.FeatherWings.NineDofImuWing
AdaFruit I2C ST 9-DoF IMU FeatherWing
The NineDofImuWing library is designed for the Wilderness Labs Meadow .NET IoT platform and is part of Meadow.Foundation.
The Meadow.Foundation peripherals library is an open-source repository of drivers and libraries that streamline and simplify adding hardware to your C# .NET Meadow IoT application.
For more information on developing for Meadow, visit developer.wildernesslabs.co.
To view all Wilderness Labs open-source projects, including samples, visit github.com/wildernesslabs.
Usage
NineDofImuWing nineDofImuWing;
public override Task Initialize()
{
Resolver.Log.Info("Initializing ...");
var i2cBus = Device.CreateI2cBus(I2cBusSpeed.FastPlus);
nineDofImuWing = new NineDofImuWing(i2cBus);
// Example that uses an IObservable subscription to only be notified when the filter is satisfied
var consumer = NineDofImuWing.CreateObserver(handler: result => HandleResult(this, result),
filter: result => FilterResult(result));
nineDofImuWing.Subscribe(consumer);
// classical .NET events can also be used for all sensors
nineDofImuWing.Updated += HandleResult;
// or for individual sensors
nineDofImuWing.Acceleration3DUpdated += HandleResult;
nineDofImuWing.AngularVelocity3DUpdated += HandleResult;
nineDofImuWing.MagneticField3DUpdated += HandleResult;
nineDofImuWing.StartUpdating(TimeSpan.FromSeconds(1));
return Task.CompletedTask;
}
bool FilterResult(IChangeResult<(
Acceleration3D? Acceleration3D,
AngularVelocity3D? AngularVelocity3D,
MagneticField3D? MagneticField3D
)> result)
{
return result.New.Acceleration3D.Value.Z > new Acceleration(0.1, Acceleration.UnitType.Gravity);
}
// Example Event Handler for all sensor results
void HandleResult(object sender, IChangeResult<(
Acceleration3D? Acceleration3D,
AngularVelocity3D? AngularVelocity3D,
MagneticField3D? MagneticField3D
)> result)
{
var accel = result.New.Acceleration3D.Value;
var gyro = result.New.AngularVelocity3D.Value;
var mag = result.New.MagneticField3D.Value;
Resolver.Log.Info(
$"Accelerometer (g): X = {accel.X.Gravity:0.##}, Y = {accel.Y.Gravity:0.##}, Z = {accel.Z.Gravity:0.##}; " +
$"Gyroscope (°/s): X = {gyro.X.DegreesPerSecond:0.##}, Y = {gyro.Y.DegreesPerSecond:0.##}, Z = {gyro.Z.DegreesPerSecond:0.##}; " +
$"Magnetometer (gauss) X = {mag.X.Gauss:0.##}, Y = {mag.Y.Gauss:0.##}, Z = {mag.Z.Gauss:0.##}"
);
}
// Example Event Handler for any individual sensors' result
void HandleResult<UNIT>(object sender, IChangeResult<UNIT> result)
where UNIT : struct
{
if (result is IChangeResult<Acceleration3D> accel)
{
Resolver.Log.Info($"Accelerometer (g): X = {accel.New.X.Gravity:0.##}, Y = {accel.New.Y.Gravity:0.##}, Z = {accel.New.Z.Gravity:0.##}");
}
else if (result is IChangeResult<AngularVelocity3D> gyro)
{
Resolver.Log.Info($"Gyroscope (°/s): X = {gyro.New.X.DegreesPerSecond:0.##}, Y = {gyro.New.Y.DegreesPerSecond:0.##}, Z = {gyro.New.Z.DegreesPerSecond:0.##};");
}
else if (result is IChangeResult<MagneticField3D> mag)
{
Resolver.Log.Info($"Magnetometer (gauss) X = {mag.New.X.Gauss:0.##}, Y = {mag.New.Y.Gauss:0.##}, Z = {mag.New.Z.Gauss:0.##}");
}
}
How to Contribute
- Found a bug? Report an issue
- Have a feature idea or driver request? Open a new feature request
- Want to contribute code? Fork the Meadow.Foundation.Featherwings repository and submit a pull request against the
develop
branch
Need Help?
If you have questions or need assistance, please join the Wilderness Labs community on Slack.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Meadow.Foundation.Sensors.Motion.Lis3mdl (>= 1.4.0.4-beta)
- Meadow.Foundation.Sensors.Motion.Lsm6dsox (>= 1.4.0.4-beta)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.15.0.3-beta | 62 | 11/4/2024 |
1.15.0.2-beta | 65 | 10/29/2024 |
1.15.0.1-beta | 58 | 10/22/2024 |
1.15.0 | 84 | 10/15/2024 |
1.14.0.6-beta | 64 | 10/8/2024 |
1.14.0.5-beta | 68 | 10/2/2024 |
1.14.0.4-beta | 76 | 9/24/2024 |
1.14.0.3-beta | 86 | 9/17/2024 |
1.14.0.2-beta | 62 | 9/12/2024 |
1.14.0.1-beta | 97 | 9/10/2024 |
1.14.0 | 97 | 9/5/2024 |
1.13.0.1-beta | 105 | 8/21/2024 |
1.13.0 | 118 | 8/15/2024 |
1.12.8.7-beta | 93 | 8/14/2024 |
1.12.8.6-beta | 66 | 8/6/2024 |
1.12.8.5-beta | 59 | 7/30/2024 |
1.12.8.4-beta | 67 | 7/30/2024 |
1.12.8.2-beta | 90 | 7/24/2024 |
1.12.8.1-beta | 74 | 7/17/2024 |
1.12.8 | 83 | 7/11/2024 |
1.12.2.9-beta | 93 | 7/9/2024 |
1.12.2.7-beta | 99 | 7/3/2024 |
1.12.2.6-beta | 75 | 6/29/2024 |
1.12.2.5-beta | 92 | 6/28/2024 |
1.12.2.4-beta | 85 | 6/24/2024 |
1.12.2.3-beta | 81 | 6/24/2024 |
1.12.2.1-beta | 90 | 6/19/2024 |
1.12.2 | 87 | 6/11/2024 |
1.12.0.2-beta | 91 | 6/4/2024 |
1.12.0.1-beta | 96 | 5/30/2024 |
1.12.0 | 105 | 5/28/2024 |
1.11.0.5-beta | 102 | 5/24/2024 |
1.11.0.4-beta | 93 | 5/21/2024 |
1.11.0.3-beta | 96 | 5/15/2024 |
1.11.0.2-beta | 96 | 5/9/2024 |
1.11.0.1-beta | 106 | 5/8/2024 |
1.11.0 | 125 | 4/30/2024 |
1.10.2.1-beta | 98 | 4/23/2024 |
1.10.2 | 100 | 4/17/2024 |
1.10.0.3-beta | 86 | 4/15/2024 |
1.10.0.2-beta | 82 | 4/11/2024 |
1.10.0.1-beta | 97 | 4/5/2024 |
1.10.0 | 112 | 3/26/2024 |
1.9.0.6-beta | 98 | 3/25/2024 |
1.9.0.5-beta | 93 | 3/19/2024 |
1.9.0.4-beta | 102 | 3/13/2024 |
1.9.0.3 | 126 | 3/6/2024 |
1.9.0.2-beta | 83 | 3/6/2024 |
1.9.0.1 | 110 | 3/1/2024 |
1.9.0 | 102 | 2/27/2024 |
1.8.0.8-beta | 100 | 2/23/2024 |
1.8.0.7-beta | 102 | 2/22/2024 |
1.8.0.6-beta | 93 | 2/20/2024 |
1.8.0.5-beta | 104 | 2/13/2024 |
1.8.0.4-beta | 101 | 2/6/2024 |
1.8.0.3-beta | 92 | 2/1/2024 |
1.8.0.2-beta | 88 | 1/24/2024 |
1.8.0.1 | 132 | 1/20/2024 |
1.8.0 | 115 | 1/16/2024 |
1.7.0 | 142 | 1/9/2024 |
1.6.0.6-beta | 125 | 1/3/2024 |
1.6.0.5-beta | 127 | 12/27/2023 |
1.6.0.4-beta | 110 | 12/20/2023 |
1.6.0.3-beta | 87 | 12/19/2023 |
1.6.0.2-beta | 113 | 12/12/2023 |
1.6.0 | 156 | 12/6/2023 |
1.5.0.1-beta | 119 | 12/4/2023 |
1.5.0 | 140 | 11/28/2023 |
1.4.0.9-beta | 111 | 11/28/2023 |
1.4.0.8-beta | 81 | 11/27/2023 |
1.4.0.7-beta | 108 | 11/8/2023 |
1.4.0.6-beta | 96 | 11/7/2023 |
1.4.0.4-beta | 115 | 11/1/2023 |
1.4.0.3 | 139 | 10/31/2023 |
1.3.4.10-beta | 126 | 10/25/2023 |
1.3.4.9-beta | 100 | 10/24/2023 |
1.3.4.8-beta | 117 | 10/17/2023 |
1.3.4.7-beta | 96 | 10/10/2023 |
1.3.4.6-beta | 99 | 10/5/2023 |
1.3.4.5-beta | 99 | 10/4/2023 |
1.3.4.4-beta | 99 | 10/3/2023 |
1.3.4.3-beta | 96 | 10/3/2023 |
1.3.4.2-beta | 96 | 9/30/2023 |
1.3.4.1-beta | 97 | 9/30/2023 |
1.3.4 | 104 | 9/26/2023 |