本章所包含的内容:
n 触动传感器
n 光电传感器
n 角度传感器
n 温度传感器
n 传感器的使用方法与技巧
n 其他传感器
4.1简介
马达通过齿轮和滑轮传动,可以让你搭建的机器人动起来,他们就如同是移动机器人腿和手臂的肌肉。同时,你还可以使用传感器来装备你的机器人,它们就如同是机器人的眼睛、耳朵和手指。
机器人套装中包含两种传感器:触动传感器(两种)和光电传感器。在本章中,我们主要是描述它们的特性,对于其它的传感器你可以单独购买,如:角度传感器和温度传感器。每一个设备都有其特定的作用,你将会因为它们的功能强大和所能涉及的范围之广而感到惊讶。当然也包括这种情况,可以用一种传感器仿效另一种传感器,以用来代替不能使用的传感器。利用RCX上的红外光电,使用一些小技巧,你可以把把你的光电传感器变成一个雷达。
在阅读本章的过程中,我们希望你能把机器人套装放在身边,这样你可以跟随我们的例子亲自动手去做。为了保持其完整性,我们还会讲一些机器人套装的扩展套装和技术套装的内容。若你现在还没有这些也不要担心,这不会影响到你搭建体积较大的机器人。
4.2触动传感器
触动传感器(图4.1)是乐高传感器大家庭中最简单、最直观的一种。它的工作方式非常像是你家门铃上的按钮:当它被按下时,电路接通,电流就会通过,RCX就能够检测到这个数据流,你的程序就会读取触动传感器的当前状态:开或者关。
图4.1 触动传感器
如果你已经开始使用机器人套装,阅读了Constructopedia,并搭建了一些模型,你可能对传感器的一般用途比较熟悉,如缓冲器。缓冲器是与周围环境相互作用的一种简单方式,当你的机器人遇到障碍物时,可以用它们来进行检测,并由此而改变运动状态。
典型的缓冲器是一个重量较轻的可移动装置,事实上,当它碰到障碍物时会把冲击力传递给触动传感器并使之关闭。你也可以发明出很多种缓冲器,但它们的外形应该能够反映机器人的外形,而且还能反映出环境中障碍物的外形。如图4.2中所示一个非常简单的缓冲器,可以很容易发现墙壁,假如房间里有像椅子一样等复杂障碍物,它的效果就不好了。在这种情况下,我们建议你通过实验来进行。为机器人设计一个缓冲器,在房间的周围离地板适当高度的地方移动它,检查它是否能够发现所有可能的碰撞点。如果你的缓冲结构较大,当它用最佳部位撞击到障碍物并按下触动传感器时,不要以为这就是正确的。图例4.2是一个不太好的缓冲器,因为当碰撞发生时,它几乎不能用横轴的边缘来关闭触动传感器,说它是一个不好的缓冲器是因为它把整个碰撞产生的力直线传输给了传感器,也就是说,在机器人身上安装一个非常稳固的支架对传感器的安装是非常有必要的。
图4.2简单的缓冲器
根据经验,应该尝试不同的碰撞来看看缓冲器在各个位置是否能很好的工作。你可以编写一个无限循环的小程序,当传感器被按下时,发出一声蜂鸣声用来测试你的缓冲器。
谈起缓冲器,人们往往会想到当遇到障碍物时开关会被按下。这样说似乎有点绝对,在发生碰撞的时候同样可以松开开关。看一下图4.3,橡胶皮筋可以使积木轻压着传感器,当缓冲器的前面部分接触到物体时,开关就会被释放。
图4.3 平常压下的缓冲器
实际上,向你推荐这种缓冲器有这样几个重要的原因:
l 冲击力不可能直接传递给传感器,传感器与标准的乐高积木相比更容易受损坏,因此应避免不必要的撞击。
l 橡皮圈可以吸收撞击力,这对你的传感器和机器人来说都会起到保护作用,当你的机器人速度非常快,或者重量大,或者反应比较慢,或者具备其中的一个因素时,这种保护作用显得尤其重要。
缓冲器是一个非常重要的装置,而且触动传感器的应用也非常广泛。当你想告之RCX一个事件发生时,你可以使用按钮一样人为的把它按下去。你能想象出类似的情况吗?事实上,有很多。比方说,你可以按下铵钮告诉RCX”现在读取光电传感器的值”,从而进行读取校准(我们将在以后的部分进行讨论)。
另一个常用的作用就是把触动传感器作为一个位置控制器来用。如图4.4,机器人向前看时(图4.4b)就关闭了头部(图4.4a)的触动传感器。通过编程可以在水平面上实时的控制头部的旋转(向左或向右),当传感器被按下时,机器人的头部就能转回到正确的位置,值的注意的是