nanoFramework.Iot.Device.QtrSensors 1.0.343

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

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

QTR传感器 - Pololu QTR反射传感器

这些传感器在小型机器人上很受欢迎,可以实现如路径追踪等场景。它们提供了一种校准、读取和提供高级函数的方法,以帮助实现路径追踪。

虽然此实现已通过反射传感器进行测试,但这也适用于任何类型的模拟传感器。原始设计中的传感器是按行排列的,但传感器的形状可以是任何形状。只需记住,如果没有将传感器排列好,读取位置函数将不相关。

文档

官方文档可以在这里找到。

QTR传感器

您会找到这些的不同实现。pololu的所有实现都是传感器对齐的。其他一些可能有不同的实现。当前实现仅适用于模拟传感器。它不仅适用于Pololu传感器,还适用于任何模拟传感器。它们必须具有1或2个公共发射器。

用法

您可以使用GPIO数组为单个传感器创建q个QtrAnalog传感器,以及数组为0个或1个或2个GPIO为发射器。

// In this case, we will use 1 emitter and 5 sensors
QtrAnalogic qtr = new(new int[] { 33, 14, 26, 4, 13 }, new int[] { 15 });

校准

建议在您计划使用的表面进行校准,不包含任何线条或扰动。如果您使用该场景,这将提高线路检测的准确性。

var calibOn = qtr.Calibrate(10, true);
var calibOff = qtr.Calibrate(10, false);

每个传感器、发射器和发射器值的采样

您可以调整每个传感器读取的次数或次数。读取值将是平均值。请注意,读取传感器需要时间,所以您读取的越多,所需的时间就越长。如果您使用机器人场景,尝试限制在它快速移动时的采样。

// This will read each sensor 5 times
qtr.SamplesPerSensor = 5;

您还可以调整传感器发射引脚的开关,并选择所有的、没有、偶数或奇数个。这种组合将允许您根据您的场景找到灵活的方法。您还可以选择不创建带有发射引脚的QTR传感器,并自行管理它们。

qtr.EmitterSelection = EmitterSelection.All;
qtr.EmitterValue = PinValue.High;

注意,这会影响到测量。校准可以进行两种情况的校准:发射器开启和关闭。

读取原始值

您可以使用ReadRaw函数来获取未经校准的原始值。这将给出未经任何校准的原始值。

// Raws is an array of double
var raws = qtr.ReadRaw();

读取比率值

如果您进行了校准,可以使用校准来获取数据的标准化读取结果。结果将在0和1.0之间。

var ratios = qtr.ReadRatio();

读取位置值

这在跟随线路的场景中很有用。您可以得到介于-1.0和+1.0之间的位置,其中0.0是中间位置,表示已检测到传感器中间。

// By default it will read black/dark lines out of a white/clear background
var pos = qtr.ReadPosition();

注意:传感器会保持最后的位置,所以如果您接近-1,且未检测到线路,它将继续给出-1。对于+1也是如此。任意地,-1用于您在构造函数中给出的第一个GPIO引脚编号,+1用于最后一个。

这是使用标准化和加权数据来提供这个值。

// This will read the position of a white/clear line on a black/dark background
var pos = qtr.ReadPosition(false);

当前实现

QTR传感器类型

  • 模拟QTR传感器
  • 数字QTR传感器
产品 兼容且有额外计算目标框架版本。
.NET Framework net is compatible. 
兼容目标框架(s)
包含目标框架(s)(在包中)
了解更多关于 目标框架.NET Standard 的信息。

NuGet包

此包不被任何NuGet包使用。

GitHub存储库

此包不被任何流行的GitHub存储库使用。

版本 下载 最后更新
1.0.343 95 6/14/2024
1.0.333 85 5/29/2024
1.0.321 73 5/15/2024
1.0.209 214 11/10/2023
1.0.102 137 5/26/2023
1.0.86 119 5/12/2023
1.0.70 144 5/3/2023
1.0.26 231 2/22/2023
1.0.1 263 1/24/2023