对于曾经依靠密集劳动力走向世界的“中国制造”,机器人正成为转型升级的新助力之一。在珠三角,家电业率先“机器换人”,电子信息产业紧紧跟上,汽车、纺织服装等行业也蓄势待发,一个个“无人工厂”取代了曾经工人们挥汗如雨的车间厂房。
那么你可知道,机器人是依靠什么感官来感知世界,与我们互动的?它们有“眼睛”、“鼻子”、“耳朵”吗?本文为大家盘点几种机器人常用的传感器及其功能。
用于避障的传感器
避障可以说是各种机器人最基本的功能,不然机器人一走动就碰到花花草草就不好了。机器人并不一定要通过视觉感知自己前方是否有障碍物,它们也可以通过触觉或像蝙蝠那样通过声波感知。因此,检测机器人前方是否存在障碍物的传感器,可以分为接触式和非接触式的。
最典型的接触式测障传感器便是碰撞开关(图1)。碰撞开关的工作原理非常简单,完全依靠内部的机械结构来完成电路的导通和中断。当碰撞开关的外部探测臂受到碰撞,探测臂受力下压,带动碰撞开关内部的簧片拨动,从而电路的导通状态发生改变(图2)。
图1 碰撞开关
图2 碰撞开关的工作状态图
在机器人上的用法多数是将探测臂加长,扩大探测范围和灵敏度。当机器人撞到前面的障碍物,碰撞开关的信号端便可返回一个高电平,控制芯片由此可以知道小车面前存在着障碍物。
碰撞开关的优点是价格便宜,一般每只零售仅几块钱,使用简单,使用范围广,对环境条件没有什么限制。但碰撞开关也有个最明显的缺点,就是必须在发生碰撞后才能检测到障碍,这在某些机器人比赛中是相当失分的,在某些实际的应用中实用性也会大大降低,而且使用时间较长后,开关容易发生机械疲劳,无法继续正常工作。
非接触式测障开关一般的工作原理与声纳和雷达相似,发射声波或某种射线,遇到障碍物,声波或射线被反射回来,并被传感器接收,这时传感器就认为发现了障碍物。我们最常用的便是发射和接收红外线的传感器(图3,图4)。
图3 红外发射管
图4 红外接收管
红外测障传感器成本较低(当然比碰撞开关还是要高一点),电路简单,检测范围大。如果在电路中加上一个电位器,就可以随时调节传感器的检测范围。这种检测方式为非接触式,控制起来更加方便、灵活。但这种测障方式也有缺点,多个红外传感器之间容易互相干扰,因此在传感器的布局上需要多花心思,安装位置也要尽可能地避免红外信号的碰撞。
用于测距的传感器
机器人光知道哪个方向有障碍物并不够,还必须知道障碍物距离自己具体有多远,才好判断下一步的行动。这时我们就需要测距传感器。
测距传感器大多为非接触式的,目前在个人机器人制作领域用得比较多的是红外和超声波测距传感器两种。
提到红外测距传感器,就不能不提夏普的GP2D12红外测距传感器(图5)。GP2D12几乎可以说是机器人爱好者的必备传感器,在我们平时常看到的一些个人机器人作品中,绝大多数都可以看到它的身影。
无图无真相,相信很多朋友看到GP2D12的实物图都会禁不住感叹:“哦,原来是它呀!”是不是很眼熟?说实话,除了在个人机器人上,我还真没在其他的地方见过这个东西。
图5 夏普GP2D12 红外测距传感器
这种传感器的优点是体积小,测量准确,电源电压与输出信号都较常规,一般单片机系统都可直接使用,缺点是成本较高,购买途径较少。
超声波测距传感器(图6)也是一种很常见的测距传感器,依靠超声波的发射与反射接收中的时间差来判断距离,这和动物界的蝙蝠是一样的,算是仿生学的一项应用。
图6 超声波测距传感器
超声波测距传感器规格很多,测试距离也从远到近都有,价格相差也较大,一般机器人爱好者使用的是测量范围在几厘米到几米的。
超声波测距的优点在于测量范围较大且不使用光学信号,所以被测物体的颜色对于测量结果没有影响,但其成本较高。由于它依靠声速测距,所以对于一些影响声速的因素较敏感,比如温度、风速等,而且最大允许角度较小。
用于亮度判断的传感器
很多朋友制作的机器人都需要判断环境光的亮度,这时就需要亮度传感器。最常用的便是光敏电阻(图7)。光敏电阻是一种随着照射在上面的可见光强度变化而阻值发生相应变化的电阻,可以根据其阻值的变化判断出光强。
图7 光敏电阻
光敏电阻的使用也非常简单,只要将它当作普通电阻接入电路,根据电流变化便可得出电阻值的变化,进而判断出光强的变化。对于机器人制作,光敏电阻是一种成本低廉、可靠性好、测量准确的元件。
用于测量速度的传感器
机器人自身的行走速度对于判断机器人运动状态和机器人所在位置非常重要,这里我们主要讨论一下对机器人小车运动速度的测量。
车型机器人依靠电机驱动轮子来运动,因此测量机器人小车的速度可以归结为测量驱动电机的转速。那么怎么测量电机的转速呢?测量电机转速有很多种方法,比较适合个人机器人爱好者的是采用光电编码器。光电编码器也有很多种,在个人机器人上比较常见的有两种,一种为反射式,一种为透射式。
反射式的基本结构是在电机的旋转轴上加一个圆形的黑白相间码盘,很多都是粘在轮子上的(图8),离码盘很近的地方固定一个红外发射/接收一体模块,利用黑白色对红外线的吸收率不同来进行判断。红外线照射到黑色部分时,大部分被吸收,而无反射信号;红外线照射到白色部分时,大部分红外线被反射回来,而产生强烈的反射信号。当码盘随电机旋转时,红外接收端的输出信号便是一个由旋转速度决定频率的方波,进而我们便可知道此时电机的旋转速度。
图8 码盘外形图
透射式检测原理与反射式相似。唯一的不同是它没有图9中黑白相间的码盘,而是在光栅圆盘上开了一圈小孔,红外线或可见光的发射端与检测端分别位于光栅圆盘的两侧(图9),同样利用光栅圆盘旋转后产生的脉冲信号来检测电机的旋转速度。
图9 光栅盘式光电编码器原理图
从本质上来说,两种传感器都属于光电传感器,这类传感器价格便宜、结构可靠、检测结果准确,不过对于安装位置要求较高。
检测电机转速,除了光电传感器之外,还有一些利用磁效应原理的传感器,汽车上经常使用这种传感器。
用于检测地面灰度的传感器
很多人最开始做的机器人的基本功能就是循线,白色的地板上贴着一条黑线,让机器人沿着地面的黑线前进。很多机器人高手都是从制作类似的作品成长起来的。因此,有必要介绍一下检测地面灰度的常用传感器。
可见光地面灰度检测器,就是使用一个发光装置与一个光敏电阻搭配,装在机器人底部离地面较近的一个位置上。发光装置发射可见光,照射到不同颜色上面后,反射光的强度会有一定的差异,根据光敏电阻的返回值便可知道机器人下方的地面颜色(图10)。
图10 一种利用发光二极管作为发光装置的地面灰度检测器
笔者最初制作地面灰度检测器的时候,是通过小灯泡来发光,可是效果不理想。后来换了个摩托车上的6V灯泡,效果好多了,就是耗电量太大。再后来买了个灰度传感器,耗电量下来了,检测效果也还可以,但是还是会有漏测的现象,而且容易受到环境光的干扰,于是我就使用了一种非可见光的检测方式——红外线地面灰度检测。
前面介绍光电编码器时提到过,反射式光电编码器的码盘由黑白相间的条纹组成,利用黑白颜色对红外线的吸收程度不同来检测码盘的旋转。其实如果引申一下,把机器人循线的场地看成一个大码盘,其实也是黑白相间,这样每当机器人越过一条白线,就相当于光电编码器上的码盘转动了一个最小角度,光电编码器输出的高、低电平便会变化一次。这种检测方式比较准确,很少出现漏检的情形,抗干扰能力也比较强,唯一的劣势就是对传感器本身的离地间隙要求较高,高一点或矮一点都不行。因此,对机器人的工作环境要求较高,不平的地面肯定是不行的。
这两种地面灰度检测方式成本都比较低廉,具体采用哪一种,根据自己的确切应用来决定就可以了。
其他
微电子领域的发展日新月异,每天都有各种各样的新传感器问世,很多以前高不可攀的传感器如今也变成了几块钱甚至几毛钱一个,因此经常去电子市场转转,关注一下最新的传感器信息是必要的。