nanoFramework.Iot.Device.Lsm9Ds1
1.2.253
Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package nanoFramework.Iot.Device.Lsm9Ds1 --version 1.2.253
NuGet\Install-Package nanoFramework.Iot.Device.Lsm9Ds1 -Version 1.2.253
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="nanoFramework.Iot.Device.Lsm9Ds1" Version="1.2.253" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="nanoFramework.Iot.Device.Lsm9Ds1" Version="1.2.253" />
<PackageReference Include="nanoFramework.Iot.Device.Lsm9Ds1" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add nanoFramework.Iot.Device.Lsm9Ds1 --version 1.2.253
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: nanoFramework.Iot.Device.Lsm9Ds1, 1.2.253"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=nanoFramework.Iot.Device.Lsm9Ds1&version=1.2.253
#tool nuget:?package=nanoFramework.Iot.Device.Lsm9Ds1&version=1.2.253
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
LSM9DS1 - 3D accelerometer, gyroscope and magnetometer
LSM9DS1 internally uses 2 buses:
- Accelerometer and gyroscope
- Magnetometer
and therefore functionality has been split into 2 classes which allows using them independently.
Documentation
- You can find the datasheet here
Usage
Important: make sure you properly setup the I2C pins especially for ESP32 before creating the I2cDevice
, make sure you install the 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);
For other devices like STM32, please make sure you're using the preset pins for the I2C bus you want to use.
Accelerometer and gyroscope
class Program
{
public const int I2cAddress = 0x6A;
static void Main(string[] args)
{
using (var ag = new Lsm9Ds1AccelerometerAndGyroscope(CreateI2cDevice()))
{
while (true)
{
Debug.WriteLine($"Acceleration={ag.Acceleration}");
Debug.WriteLine($"AngularRate={ag.AngularRate}");
Thread.Sleep(100);
}
}
}
private static I2cDevice CreateI2cDevice()
{
var settings = new I2cConnectionSettings(1, I2cAddress);
return I2cDevice.Create(settings);
}
}
Magnetometer
class Magnetometer
{
public const int I2cAddress = 0x1C;
public static void Run()
{
using (var m = new Lsm9Ds1Magnetometer(CreateI2cDevice()))
{
Debug.WriteLine("Calibrating...");
Debug.WriteLine("Move the sensor around Z for the next 20 seconds, try covering every angle");
Stopwatch sw = Stopwatch.StartNew();
Vector3 min = m.MagneticInduction;
Vector3 max = m.MagneticInduction;
while (sw.ElapsedMilliseconds < 20 * 1000)
{
Vector3 sample = m.MagneticInduction;
min = Vector3.Min(min, sample);
max = Vector3.Max(max, sample);
Thread.Sleep(50);
}
Debug.WriteLine("Stop moving for some time...");
Thread.Sleep(3000);
const int intervals = 32;
bool[,] data = new bool[32,32];
Vector3 size = max - min;
int n = 0;
while (true)
{
n++;
Vector3 sample = m.MagneticInduction;
Vector3 pos = Vector3.Divide(Vector3.Multiply((sample - min), intervals - 1), size);
int x = Math.Clamp((int)pos.X, 0, intervals - 1);
int y = Math.Clamp((int)pos.Y, 0, intervals - 1);
data[x, y] = true;
if (n % 10 == 0)
{
Debug.WriteLine("Now move the sensor around again but slower...");
for (int i = 0; i < intervals; i++)
{
for (int j = 0; j < intervals; j++)
{
if (i == x && y == j)
{
Debug.Write('#');
}
else
{
Debug.Write(data[i, j] ? '#' : ' ');
}
}
Debug.WriteLine();
}
}
Thread.Sleep(50);
}
}
}
private static I2cDevice CreateI2cDevice()
{
var settings = new I2cConnectionSettings(1, I2cAddress);
return I2cDevice.Create(settings);
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET Framework | net is compatible. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
- nanoFramework.CoreLibrary (>= 1.14.2)
- nanoFramework.System.Buffers.Binary.BinaryPrimitives (>= 1.2.211)
- nanoFramework.System.Device.I2c (>= 1.1.9)
- nanoFramework.System.Device.Model (>= 1.2.216)
- nanoFramework.System.Diagnostics.Stopwatch (>= 1.2.195)
- nanoFramework.System.Math (>= 1.5.29)
- nanoFramework.System.Numerics (>= 1.2.227)
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.2.864 | 190 | 4/2/2025 |
1.2.852 | 190 | 3/11/2025 |
1.2.822 | 132 | 2/26/2025 |
1.2.775 | 127 | 2/4/2025 |
1.2.772 | 117 | 2/4/2025 |
1.2.755 | 122 | 1/31/2025 |
1.2.737 | 98 | 1/13/2025 |
1.2.704 | 124 | 12/18/2024 |
1.2.696 | 113 | 12/16/2024 |
1.2.673 | 140 | 10/23/2024 |
1.2.662 | 122 | 10/11/2024 |
1.2.631 | 145 | 8/28/2024 |
1.2.590 | 128 | 7/17/2024 |
1.2.570 | 138 | 6/14/2024 |
1.2.436 | 272 | 11/10/2023 |
1.2.416 | 144 | 11/8/2023 |
1.2.329 | 188 | 5/26/2023 |
1.2.313 | 184 | 5/12/2023 |
1.2.297 | 188 | 5/3/2023 |
1.2.253 | 299 | 2/22/2023 |
1.2.222 | 330 | 1/9/2023 |
1.2.217 | 349 | 1/6/2023 |
1.2.212 | 345 | 1/5/2023 |
1.2.208 | 344 | 1/3/2023 |
1.2.203 | 337 | 12/28/2022 |
1.2.159 | 406 | 11/14/2022 |
1.2.153 | 405 | 11/5/2022 |
1.2.141 | 430 | 10/25/2022 |
1.2.128 | 431 | 10/22/2022 |
1.2.87 | 534 | 9/15/2022 |
1.2.82 | 531 | 9/14/2022 |
1.1.116.8772 | 486 | 6/24/2022 |
1.1.113.2032 | 479 | 6/23/2022 |
1.1.97.17326 | 491 | 6/13/2022 |
1.1.92.53000 | 462 | 6/8/2022 |
1.1.3 | 524 | 4/15/2022 |
1.1.1 | 494 | 4/14/2022 |
1.0.300 | 489 | 3/31/2022 |
1.0.288-preview.114 | 175 | 3/25/2022 |
1.0.288-preview.113 | 159 | 3/25/2022 |
1.0.288-preview.106 | 159 | 3/23/2022 |
1.0.288-preview.104 | 151 | 3/22/2022 |
1.0.288-preview.100 | 160 | 3/19/2022 |
1.0.288-preview.98 | 171 | 3/18/2022 |
1.0.288-preview.95 | 171 | 3/15/2022 |
1.0.288-preview.93 | 171 | 3/15/2022 |
1.0.288-preview.87 | 164 | 3/10/2022 |
1.0.288-preview.65 | 174 | 2/18/2022 |
1.0.288-preview.48 | 197 | 2/4/2022 |
1.0.288-preview.41 | 179 | 1/31/2022 |
1.0.288-preview.29 | 184 | 1/28/2022 |
1.0.288-preview.20 | 187 | 1/27/2022 |
1.0.288-preview.1 | 173 | 1/21/2022 |
1.0.259 | 387 | 12/9/2021 |
1.0.155 | 374 | 8/31/2021 |
1.0.130 | 219 | 7/6/2021 |
1.0.129 | 220 | 7/6/2021 |
1.0.125 | 258 | 7/5/2021 |
1.0.121 | 261 | 6/29/2021 |
1.0.119 | 298 | 6/28/2021 |
1.0.52 | 266 | 5/24/2021 |