使用Arduino检测对象

时间:2011-02-04 16:43:58

标签: arduino

有没有办法用Arduino板+某些传感器检测不同类型的物体/表面?

一个例子可能是木材/金属之间的区别,或者说外面的机器人可以检测到它是在草地,沙地还是停机坪上。

编辑: 为了其他想要这样做的人的利益,这里有一个链接到电子网站one https://electronics.stackexchange.com/questions/9751/detecting-the-type-of-ground/9771

2 个答案:

答案 0 :(得分:1)

我不知道有任何传感器能够检测到您提到的材料类型。 (因此我的评论建议你在robotics and electronics SE site上询问。)

也就是说,您应该能够通过使用简单的电导率传感器检测导电/非导电(金属/木材),这种传感器在接触金属时完成电路,但在接触像木材这样的绝缘体时则不会。一个更好的选择可能是capacitive sensor,就像在stud-finder设备中使用的那样。

要检测植被,沙子或人行道等表面类型,您可能需要采用一些创造性思维和传感器组合。

这是一个在很小程度上检测地形相对硬度的例子:如果这个装置安装在某种类型的移动车辆上,一个这样的传感器可能是一个连接到弹簧加载电枢的电位计。某种程度,拖延了地面。这个想法是电枢试图通过弹簧张力垂直向下,垂直于车辆行进。草,沙子和路面会导致电枢根据弹簧推压表面的能力而偏转不同的量。

为了将其更多地纳入编程领域,您必须编写一个算法来计算偏转角度(通过测量电位计上的电阻)并确定表面类型。电枢不会产生静态值(它会一直在移动),所以你必须计算平均值并可能计算行进距离。

考虑到这些表面具有其他可能在检测中具有价值的特性:光反射率,湿度水平,声学回声曲线......我将它作为练习留给您设计一个能够准确识别表面和材料的传感器阵列达到你想要的精确度。最终,您将不得不依赖于适应特定属性的传感器(以及一些编程来处理数据)。

答案 1 :(得分:1)

像人一样思考。

我们用所有感官来得出答案(有时候这是错误的答案)。根据其他环境影响,某些物质可能看起来是固体或液体,例如,如果你以600英里/小时的速度撞水,它似乎就像钢一样坚硬。

因此,您需要整理各种传感器的输入。有硬度传感器和应力计可用于测量表面硬度。 JYelton建议使用某种偏转规来发现表面的深度(草地,深桩地毯)。感知颜色和反射率,结合其他感官将做出其他决定。

当你这样想时,问问为什么你的设备需要知道某些事情以及它将如何对它们作出反应。然后,您将能够更好地满足这些需求。