nanoFramework.Iot.Device.LidarLiteV3 1.2.613
前缀已保留
dotnet add package nanoFramework.Iot.Device.LidarLiteV3 --version 1.2.613
NuGet\Install-Package nanoFramework.Iot.Device.LidarLiteV3 -Version 1.2.613
<PackageReference Include="nanoFramework.Iot.Device.LidarLiteV3" Version="1.2.613" />
paket add nanoFramework.Iot.Device.LidarLiteV3 --version 1.2.613
#r "nuget: nanoFramework.Iot.Device.LidarLiteV3, 1.2.613"
// Install nanoFramework.Iot.Device.LidarLiteV3 as a Cake Addin #addin nuget:?package=nanoFramework.Iot.Device.LidarLiteV3&version=1.2.613 // Install nanoFramework.Iot.Device.LidarLiteV3 as a Cake Tool #tool nuget:?package=nanoFramework.Iot.Device.LidarLiteV3&version=1.2.613
LidarLiteV3 - LIDAR 脉冲式测距传感器
此设备属于一种称为脉冲式测距的传感器类别,通过计算主电磁波信号发射和反射回传信号之间的时间延迟来测量距离。与流行的基于超声波的 HC-SR04 不同,此设备使用低功率激光。优点是距离更长(达 40m),但主电磁波信号反射体表面更容易造成误差。
文档
用法
重要:在创建 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 总线预设的引脚。
简单使用
using (var llv3 = new LidarLiteV3(CreateI2cDevice()))
{
// Take 10 measurements, each one second apart.
for (int i = 0; i < 10; i++)
{
Length currentDistance = llv3.MeasureDistance();
Debug.WriteLine($"Current Distance: {currentDistance.Centimeters} cm");
Thread.Sleep(1000);
}
}
I2cDevice CreateI2cDevice()
{
var settings = new I2cConnectionSettings(1, LidarLiteV3.DefaultI2cAddress);
return I2cDevice.Create(settings);
}
电源模式
可以通过 GPIO 引脚控制对设备的电源。使用可选的构造函数参数指定 GPIO 控制器和电源启用引脚号(编号方案取决于 GpioController)。
int powerEnablePin = 13;
using (var llv3 = new LidarLiteV3(CreateI2cDevice(), new GpioController(), powerEnablePin))
{
// Power off the device.
llv3.PowerOff();
// Device is completely turned off.
Debug.WriteLine("Device is off.");
Thread.Sleep(5000);
// Power on the device, device is ready in ~22ms.
Debug.WriteLine("Device is on.");
llv3.PowerOn();
// Sleep 50ms.
Thread.Sleep(50);
// Get a reading.
Length currentDistance = llv3.MeasureDistance();
Debug.WriteLine($"Current Distance: {currentDistance.Centimeters} cm");
}
还可以禁用接收电路(节省 40 mA)或将设备置于睡眠状态(节省 20 mA)。然而,建议使用电源启用引脚,因为初始化时间只短 2 毫秒。
using (var llv3 = new LidarLiteV3(CreateI2cDevice()))
{
llv3.PowerMode = PowerMode.Sleep;
}
重复模式
与按需获取测量结果不同,设备可以被配置为重复n次,或者无限重复。
通过传递模式(Off
,Repeat
或RepeatInfinitely
)、循环次数(如果模式是Repeat
)以及测量之间的延迟(默认为10 Hz)来配置SetMeasurementRepetitionMode
。延迟为20
时大约是100 Hz
。
在设置重复模式后,使用Distance
获取当前Length
值。使用DifferenceBetweenLastTwoDistances
来获取速度读数。负值表示对象正朝设备移动,正值表示正远离。这个值取决于延迟,默认的10 Hz大约为0.1 m/s。
using (var llv3 = new LidarLiteV3(CreateI2cDevice()))
{
llv3.SetMeasurementRepetitionMode(MeasurementRepetitionMode.RepeatIndefinitely);
while(true)
{
Thread.Sleep(5);
Length currentDistance = llv3.Distance;
Length currentVelocity = llv3.DifferenceBetweenLastTwoDistances;
}
}
更改I2C地址
默认情况下,设备地址为0x62
。可以将此地址更改为解决与其他设备的冲突或运行多个设备。
可用的地址是7位值,最低位为0。
using (var llv3 = new LidarLiteV3(CreateI2cDevice()))
{
// Set device from default `0x62` to `0x68`
llv3.SetI2cAddressAndDispose(0x68);
}
// Connect to the device again with the new address.
var settings = new I2cConnectionSettings(1, 0x68);
var i2cDevice = I2cDevice.Create(settings);
using (var llv3 = new LidarLiteV3(i2cDevice))
{
// ...
}
优化
默认设置应该能够很好地工作,但可以做一些调整来调整设备。有关更多详细信息,请参阅用户手册。
更改采集次数
为了隔离信号噪声,设备执行一系列采集,并将结果累加,直到找到峰值。可通过MaximumAcquisitionCount
配置采集次数(默认为128)。
较少的采集次数会导致测量速度更快,但限制最大范围并产生更多错误读数。这个数字大致与采集率为n/count和n^(1/4)相关。
using (var llv3 = new LidarLiteV3(CreateI2cDevice()))
{
llv3.MaximumAcquisitionCount = 100
}
快速终止模式
快速采集读数,但错误读数的可能性略高。
using (var llv3 = new LidarLiteV3(CreateI2cDevice()))
{
llv3.AcquistionMode |= AcquistionMode.EnableQuickTermination;
}
检测灵敏度
可以通过AlgorithmByPassThreshold
配置找到峰值时的阈值。默认情况下,这是0,使用内部算法确定阈值。
建议的默认值是32以提高灵敏度但增加错误读数,以及96以减少错误读数并降低灵敏度。
using (var llv3 = new LidarLiteV3(CreateI2cDevice()))
{
llv3.AlgorithmBypassThreshold = 32
}
MCU布线
设备通过I2C进行通信,尽管设备支持PWN模式,但尚未实现。
MCU上的I2C布线
LidarLiteV3布线 | MCU GPIO引脚(物理编号) |
---|---|
5V(红色) | 5V |
接地(黑色) | 接地 |
电源启用(橙色) | 可选,可用的IO引脚 |
模式控制(黄色) | 未使用 |
I2C SCL(绿色) | SCL |
I2C SDA(蓝色) | SDA |
产品 | 版本 兼容和额外的计算目标框架版本。 |
---|---|
.NET Framework | net 兼容。 |
-
- nanoFramework.CoreLibrary (>= 1.15.5)
- nanoFramework.Runtime.Events (>= 1.11.18)
- nanoFramework.System.Buffers.Binary.BinaryPrimitives (>= 1.2.586)
- nanoFramework.System.Device.Gpio (>= 1.1.41)
- nanoFramework.System.Device.I2c (>= 1.1.16)
- nanoFramework.System.Diagnostics.Stopwatch (>= 1.2.586)
- UnitsNet.nanoFramework.Length (>= 5.56.0)
NuGet包
此包不用于任何NuGet包。
GitHub仓库
此包不用于任何流行的GitHub仓库。
版本 | 下载 | 最后更新 |
---|---|---|
1.2.613 | 56 | 8/9/2024 |
1.2.601 | 48 | 7/26/2024 |
1.2.590 | 70 | 7/17/2024 |
1.2.573 | 76 | 6/19/2024 |
1.2.570 | 71 | 6/14/2024 |
1.2.560 | 83 | 5/29/2024 |
1.2.548 | 85 | 5/15/2024 |
1.2.536 | 109 | 4/15/2024 |
1.2.514 | 101 | 3/22/2024 |
1.2.494 | 88 | 2/28/2024 |
1.2.474 | 110 | 1/24/2024 |
1.2.462 | 142 | 1/5/2024 |
1.2.458 | 116 | 12/20/2023 |
1.2.436 | 148 | 11/10/2023 |
1.2.416 | 106 | 11/8/2023 |
1.2.403 | 127 | 10/6/2023 |
1.2.396 | 106 | 9/27/2023 |
1.2.384 | 130 | 9/6/2023 |
1.2.378 | 134 | 8/16/2023 |
1.2.369 | 133 | 8/2/2023 |
1.2.363 | 134 | 7/28/2023 |
1.2.357 | 129 | 7/19/2023 |
1.2.354 | 145 | 7/14/2023 |
1.2.345 | 146 | 6/21/2023 |
1.2.341 | 146 | 6/14/2023 |
1.2.337 | 170 | 6/7/2023 |
1.2.335 | 142 | 6/2/2023 |
1.2.329 | 150 | 5/26/2023 |
1.2.313 | 148 | 5/12/2023 |
1.2.302 | 177 | 5/10/2023 |
1.2.297 | 176 | 5/3/2023 |
1.2.273 | 243 | 3/17/2023 |
1.2.267 | 259 | 3/10/2023 |
1.2.263 | 255 | 3/8/2023 |
1.2.259 | 260 | 2/27/2023 |
1.2.256 | 270 | 2/24/2023 |
1.2.253 | 286 | 2/22/2023 |
1.2.222 | 306 | 1/9/2023 |
1.2.212 | 309 | 1/5/2023 |
1.2.208 | 309 | 1/3/2023 |
1.2.203 | 298 | 12/28/2022 |
1.2.159 | 372 | 11/14/2022 |
1.2.153 | 383 | 11/5/2022 |
1.2.141 | 402 | 10/25/2022 |
1.2.122 | 449 | 10/12/2022 |
1.2.114 | 406 | 10/8/2022 |
1.2.95 | 454 | 9/22/2022 |
1.2.87 | 503 | 9/15/2022 |
1.2.73 | 436 | 9/8/2022 |
1.2.63 | 428 | 9/3/2022 |
1.2.47 | 435 | 8/15/2022 |
1.2.40 | 459 | 8/6/2022 |
1.2.38 | 447 | 8/5/2022 |
1.2.28 | 459 | 8/1/2022 |
1.2.13 | 457 | 7/24/2022 |
1.2.10 | 453 | 7/23/2022 |
1.1.142.3202 | 480 | 7/7/2022 |
1.1.133.52556 | 459 | 6/30/2022 |
1.1.121.35854 | 474 | 6/26/2022 |
1.1.116.8772 | 440 | 6/24/2022 |
1.1.113.2032 | 440 | 6/23/2022 |
1.1.102.51394 | 458 | 6/15/2022 |
1.1.99.36719 | 450 | 6/14/2022 |
1.1.97.17326 | 465 | 6/13/2022 |
1.1.92.53000 | 456 | 6/8/2022 |
1.1.72.29765 | 456 | 5/31/2022 |
1.1.64.21380 | 457 | 5/26/2022 |
1.1.54.28879 | 462 | 5/23/2022 |
1.1.40 | 455 | 5/5/2022 |
1.1.3 | 489 | 4/15/2022 |
1.1.1 | 471 | 4/14/2022 |
1.0.300 | 471 | 3/31/2022 |
1.0.277-preview.126 | 119 | 3/25/2022 |
1.0.277-preview.125 | 114 | 3/25/2022 |
1.0.277-preview.116 | 100 | 3/22/2022 |
1.0.277-preview.115 | 101 | 3/21/2022 |
1.0.277-preview.112 | 106 | 3/19/2022 |
1.0.277-preview.110 | 113 | 3/18/2022 |
1.0.277-preview.105 | 113 | 3/15/2022 |
1.0.277-preview.99 | 120 | 3/10/2022 |
1.0.277-preview.98 | 112 | 3/8/2022 |
1.0.277-preview.89 | 112 | 2/27/2022 |
1.0.277-preview.87 | 106 | 2/26/2022 |
1.0.277-preview.77 | 114 | 2/18/2022 |
1.0.277-preview.75 | 109 | 2/16/2022 |
1.0.277-preview.73 | 120 | 2/12/2022 |
1.0.277-preview.70 | 113 | 2/10/2022 |
1.0.277-preview.65 | 106 | 2/9/2022 |
1.0.277-preview.53 | 127 | 1/31/2022 |
1.0.277-preview.41 | 122 | 1/28/2022 |
1.0.277-preview.32 | 132 | 1/27/2022 |
1.0.277-preview.30 | 126 | 1/27/2022 |
1.0.277-preview.17 | 130 | 1/24/2022 |
1.0.277-preview.15 | 115 | 1/21/2022 |
1.0.277-preview.13 | 119 | 1/21/2022 |
1.0.277-preview.1 | 132 | 1/11/2022 |
1.0.272 | 479 | 1/10/2022 |
1.0.259 | 333 | 12/9/2021 |
1.0.258 | 318 | 12/7/2021 |
1.0.218 | 196 | 10/18/2021 |
1.0.157 | 353 | 9/4/2021 |
1.0.155 | 330 | 8/31/2021 |
1.0.153 | 349 | 8/14/2021 |
1.0.151 | 370 | 8/6/2021 |
1.0.146 | 330 | 7/22/2021 |
1.0.136 | 405 | 7/17/2021 |
1.0.135 | 160 | 7/16/2021 |
1.0.134 | 167 | 7/15/2021 |
1.0.133 | 190 | 7/14/2021 |
1.0.130 | 160 | 7/6/2021 |
1.0.129 | 167 | 7/6/2021 |
1.0.127 | 177 | 7/5/2021 |
1.0.125 | 186 | 7/5/2021 |
1.0.122 | 205 | 6/30/2021 |
1.0.121 | 197 | 6/29/2021 |
1.0.119 | 221 | 6/28/2021 |
1.0.111 | 175 | 6/14/2021 |
1.0.105 | 272 | 5/29/2021 |
1.0.104 | 236 | 5/29/2021 |
1.0.97 | 169 | 5/28/2021 |
1.0.63 | 168 | 5/26/2021 |
1.0.34 | 159 | 5/24/2021 |