大家好!我想使用p30的arduino例程,我希望得到详细的描述,当一个物体比0.5米(最小范围)更近时,在arduino串口会输出什么,直到它接触到传感器。
我希望是输出是0或者没有任何东西,或者传感器停止发送脉冲,直到物体进入最小测量范围。
如果只是有一个错误提示对我现在正在负责的项目没有什么用,希望能得到满意的回答。
首先,p30会有最小检测距离是因为内部声纳反射需要一些时间才能消失(所以设备工作的时候会“响”)。在pingviewer软件上也能看到,p30附近的信号处于最大值,或者非常接近最大值。
你可以关闭自动模式,并使用set_range消息将scan_start设置在最小探测距离之外。请注意,使用手动模式也会关闭自动增益控制,所以你需要为你的应用确定一个合适的增益值和扫描范围(或者自己对它们进行相关的动态控制)。
"手动模式 “看起来是挺好的一个功能。如果我在手动模式下设置范围为500毫米。当物体距离传感器300毫米时,在Arduino串口上会显示出什么结果?
如果是不同的长度,比如200毫米和400毫米,结果一样吗?
请澄清一下。
还有一点不是很懂"1400 continuous start: Command to initiate continuous data stream of profile messages”。这是什么意思,在 "手动模式 "下,是否需要注意什么?
可能还是太近了,无法被检测到,所以可能会得到一些任意的距离估计,但是置信度为0
扫描长度是扫描开始后扫描范围的部分。
如果你对目标的距离有一个大致的估计,你可以把开始设置在它之前一点,并设置一个短的长度,这样你就可以在感兴趣的区域得到更精确的读数(例如,在一个已知有6.5到6.8米深的湖里测量深度,你可以把scan_start设置为6200毫米,scan_length为1000毫米,以此得到合理的高分辨率轮廓和距离估计)。
如果你想得到每次ping的完整资料,你可以请求资料信息。如果你想在有新的资料时持续收到资料信息,就可以使用continuous_start(取决于设定的ping_interval,或扫描范围和声速作为物理限制)。而不是每次都需要手动请求一个新的配置文件。像Ping Viewer可以利用这一点来避免多余的通信开销。
这与自动还是手动模式无关,而是与传感器是否决定自己的范围和增益以试图适应条件有关,或者你的代码是否手动指定这些。
如果你只是想获得简单的距离信息,那么continuous_start就没有意义了。