高级的机器人应该具有视觉。
机器人的视觉系统可以很简单,仅满足粗略的‘看见’的愿望。也可以很复杂,以便满足某些特殊的需求。
功能简单的基本视觉系统仅能观察光线是否存在。通过大量应用光通/断电探测器,所组成的更先进的视觉系统除了完成这一基本任务以外,还能对光的相对强度译码,甚至能够辨认出物体种类和形状。
尽管用来制造机器人“眼睛”的硬件相当简单。但如何应用“眼睛”
产生的视觉信息却很复杂。除了安装光电探测器芯片以外,视觉系统还必须连接到计算机上才能起作用。因此,实践中可能要对本设计做一些修改,以便与某些计算机的微处理器数据总线,或者并行打印机端口相匹配。
简单的‘视觉’传感器
多种简单的电子元件都可以用作机器人的“眼睛”。其中包含以下各种:
1.光敏电阻:最典型的是硫化镉(CdS)元件,也就是常说的光电管。一个CdS元件工作特性就像一个光敏电阻器:元件电阻的改变取决于照射它的光的强度。当没有光照射时,光敏电阻的阻值很大,可高达100千欧姆甚至1兆欧姆。光照能够使阻值减少,而且通常影响很大,一般能够减少几百或上千欧姆。CdS元件很容易连接到其它电子设备上,其缺点是光敏电阻的反应慢。当光闪烁的速度达到每秒2C或30次时,就难以识别。实际上这一特性有时也很有用,因为它意味着CdS元件基本上不受交流光源闪烁的影响。
2.光电晶体管:形状与去掉金属或塑料上盖的一般的晶体管非常相似。一个玻璃或塑料的盖子保护着内层的精密晶体管。和CdS元件不同,光电晶体管反应很灵敏,并且每秒钟能够辨认数万次的光电闪烁。光电晶体管的输出是非线性的,也就是说,光电晶体管的输出变化与照射它的光线多少不成比例。用过强的光照射光电晶体管很容易使它‘堵塞’。此时,即使有更多的光照射时,光电晶体管的输出也觉察不到任何的变化。
3.光敏二极管:它们是比光电晶体管更为简单的二极管型。和光敏晶体管一样,同样用一个玻璃或塑料的盖子来保护内部的半导体材料;它们反应同样灵敏,并且受到过多光照射的时候它们也会‘堵塞’。大多数光敏二极管最普通的特性是:即使完全暴露在明亮的光线下,其输出也相当低。
这就意味着光敏二极管的输出通常要接一个小放大器才能起作用。
光敏电阻、光电晶体管和光敏二极管通过大致相同的方式与其它电子设备联接:在光电器件和正电压之间或光电器件与地之间连接一个电阻器。
光电器件和电阻器之间的点即是输出点,如下图所示。按照这种设置,上面三种光电器件输出的是变化的电压值。连接方式决定了传感器上的光照增加时电压输出是增多还是减少。
光敏器件在光谱响应方面有差异,在包括可见光波段和电磁光谱的近红外线范围内最为敏感。CdS元件对光谱的反应和人的眼睛很相近,都是对绿光或黄一绿光区域的敏感度最高(如下图示)。光电晶体管和光敏二极管则都对红外(线)和近红外(线)区域的光谱敏感度最高。此外,一些光电晶体管和光敏二极管配有光学滤波器来减少对可见光谱的敏感度。这种滤光器使传感器对红外(线)和近红外(线)变得更敏感。
单元件光传感器
让机器人感受到光的存在仅需要一个光敏元件。光敏元件是一个可变的电阻器,它的工作方式像不带转动轴的电位器。可以通过增加或减少光来改变它的电阻。连接光敏元件的方式如下图所示。需要注意的是:如前所解释的一样,用一个电阻器和光敏电阻串联在一起,输出点在电阻器和光敏电阻之间。这样能够将光敏电阻的输出由电阻转换为电压。因为电压在电路中使用起来更方便。
下图中电阻器给定值是3.3kΩ但实验中可对它进行调整。
通过换为更高或更低的值来改变光敏元件的灵敏度。实验时,可将一个1kΩ电阻器和一个5k电位器串联在一起,(放在3.3kΩ位置)。并尽量使光敏元件接滑动端。在地和输出端之间连接一个电压表可测试光敏元件的输出。
现在。假设你有一个好的光一电压传感器,需要思考的是如何将这种极简单的电路与机器人连接。一种方法是将传感器的输出接到一个比较器的输入端。(LM339四比较器集成电路是一种很好的选择,当然,也可以使用其他比较器)当比较器的输入电压超出或低于某一特定值时它的输出会改变状态。
如下图所示的电路中(元件表参见下表),比较器被锁定。以便放大器同相输入端起基准电压的作用。校准电位器,设置翻转点。首先将滑动点放在中点,然后根据翻转点的需要或高或低地校准。光敏电阻的输出和比较器的反相输入端相连接。
当此管脚的电压在翻转点的应。首先。设置翻转点使电路输出为“高”。用闪光灯聚焦一束光线在光敏电阻上,并观察比较器输出状态的改变。另一种应用是用光敏电阻做周期光探测器。设置电位器在某一位置,使得只有光作用在光敏电阻表面时比较器才改变状态。
多元件光传感器
人眼有上百万的微型光接收器。因此,这些接收器使我们能够分辨各种形状,事实上“看见”要远胜于检测光线强度。下图给出了人类视力一个不精细的但非常有用的实现方式(元件参见下表)。八个光敏电阻连接到一个16通道的多路A/D转换器{ADC)上。这种AID转换器还可以另外接八个光敏电阻,可以接受每一个光敏电阻的输出电压并逐一地转换成数字信号。A/D转换器输出的八位二进制数代表256种亮度水平。
AID转换器按行、列顺序锁存每个光敏电阻的输出,建议使用的电路如上图和下图所示。一台计算机取得A/D转换器记录的每一光敏电阻的数据,并将它们形成一个图像模型,就可以了解物体的大致形状。
如单元件视觉一样。每个光敏电阻和一个2.2kΩ电阻器串联。当然可以用更高或更低的阻值来代替初始值,以增加或减少光敏电阻的灵敏度。为了得到最理想的结果.所有的光敏电阻应该相同。同时要用崭新的高精度的组件。这些元件用于电路之前,需先用万用表和一个精密控制的光源来测试其特性。分别在全黑的条件和在特定距离上用光照射。测试光敏电阻的阻值。舍弃那些照射时阻值下降小于5%到10%的光敏电阻。
要注意出现在管脚⑦的短脉冲,即转换结束(EOC)信号。这个管脚的信号表示输出线的数据有效。
如果你使用电脑或微处理器,那么可以将这个管脚连接到微处理器的一根中断线上。使用中断方式,能够让电脑在等待模数转换器发出转换信号期间做其它事情。要想了解如何使用计算机和微控制器的中断口的基本信息,请参阅相关资料。
也可以不使用EOC管脚和中断系统而实现数据输入功能。不用此管脚的电路也很容易实现,但必须使用一个时间延迟电路或延迟程序来做到这一点。只需简单地等待足够长的时间使转换完成(最长需要115微秒),然后读取数据即可。即使一次延迟125微秒,读取整个元件阵列的数据的时间也不会超过200毫秒。