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
<PackageReference Include="nanoFramework.Iot.Device.QtrSensors" Version="1.0.343" />
paket add nanoFramework.Iot.Device.QtrSensors --version 1.0.343
#r "nuget: nanoFramework.Iot.Device.QtrSensors, 1.0.343"
// 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. |
-
- nanoFramework.CoreLibrary (>= 1.15.5)
- nanoFramework.Runtime.Events (>= 1.11.18)
- nanoFramework.System.Device.Adc (>= 1.1.11)
- nanoFramework.System.Device.Gpio (>= 1.1.41)
NuGet包
此包不被任何NuGet包使用。
GitHub存储库
此包不被任何流行的GitHub存储库使用。