能不能让机器人不接触就可以感知到障碍物的所在 呢?本节课摩登7就来令机器人具备一个新的能力:远距离探测障碍物。这项能力是使用 一种叫作红外避障传感器的模块实现的。这种传感器是一个数字开关传感器,它还有个 学名叫“反射式红外传感器”,如图10-1所示。它的原理和摩登7已经掌握的地面灰度检测 传感器非常类似,也是由一个光线发射装置和一个光线接收装置组成的。所不一样的是, 它的光线发射方向是朝向运动的方向而不是地面,而且发射装置发出的光是红外光而不是可见光。
安装了这种传感器后,在传感器正对的方向有障碍物时,它发出的红外线就会被障碍 物反射回来被接收装置所感知。于是,机器人上的主控制器就可以检测到障碍物的存在。 至于这时机器人是应该停下或是绕开障碍物还是转身返回就要看摩登7的智能程序是如何 设计的了。
这种传感器会返回一个数字开关状态,用起来再简单不过。但它也有很明显的缺点, 只靠它机器人是很难得知障碍物的准确距离的。虽然,通过用螺丝刀调节传感器上的可 调电阻(图10-1),摩登7能够大致改变传感器的感知距离(一般是20cm 左右)。但是在实 际使用中的很多因素都会对这个距离产生影响,比如,如果物体的表面是比较光滑的,就 会像镜子一样将红外线往另一个方向反射出去,这时虽然小机器人离障碍物很近了,但是 也不能接收到比较强的反射信号;物体的颜色深浅当然也是一个决定性的因素;还有,如 果环境中有其他的光线源,比如阳光的直射,也会对接收到的信号造成影响。
因此,如果需要机器人准确地探测障碍物的距离,就要用更“高J”的传感器了。比 如,应用仿生学原理,模仿蝙蝠的声呐探测能力的超声波传感器,还有更加复杂的激光雷 达传感器,甚至是模仿人类视觉的双目摄像头等。
并排安装4个地面灰度传感器,用杜邦连接线把它们按顺序分别 连接到主控板的A0~A3 端口,其中最左端的传感器连接A0口,最右端的连接A3口,只要是最左或最右端的传感器检测到了 黑线,就代表机器人遇到了路口
在使用 pinMode 命令为端口规定方向时肯定要用到它的编号,然后再用 digitalRead 之类的命令操纵端口时也要用到同一个编号,用analogRead 命令读到了传感器当前的值
机器人传感器的位置在靠近黑线的左侧或者正好在黑线上;digitalRead 、digitalWrite 、analogRead 、analogWrite、 pinMode 、delay。它们构成了Arduino 中最为重要、最为常用的功能
微触开关也只有“开”和“闭” 两种不同的状态,把它连接到主控制器,用程序就能很准确地检测到它的开闭变化了,只要用 digitalRead 命令就可以很 方便地读取微触开关的值了,这个命令的用法
将机器人、扩展板和小灯模块连接好,将右转向灯连接D5 号口,左转向灯连接D3号口;编写程序,让转向灯亮灭的语句,左转向灯熄灭,同时机器人向右转弯
机器人的主控制器可以用这些插针和各种传感器或执行器共同工作,用灰色的RJ11 线连接各种传感器 和执行器,而不用担心线路连错或连反,连接时如果听到“咔嚓”就代表连接成功
常见的一种机器人驱动方式—双轮差速驱动,左轮和右轮以同样的速率向前转动,机器人向正前方前进;左轮和右轮 以同样的速率向后转动,转弯半径的大小取决于左右两个轮子的转动速度之差
机器龟有一个PWM驱动的活动 底盘,底盘上搭载了一个可旋转的传感器平台,机器人头部设置了一个距离传感 器,底盘下装有4个边缘传感器
制作静片使用的材料是端子芯和黄铜管,把一根有弹性的金属丝套在铜管里做开关的动 片,碰到物体后,金属丝和铜管内壁接触,电路导通,以用电阻引脚弯个圆圈做成静片
电机的布局建议稍微靠后,给两条前腿留出多 一点活动空间。因为前面制作的CPG 是主-从神经元结构,前腿带着后腿走,前腿的动作幅度大于后腿。这样的设计可以使机器人跨越路面上的一些小障碍
神经网络中最关键的元件是电阻R3,R3的阻值过小,左、 右两侧机体就无法协调运转,机器人就好像喝醉了一样。实际R3的阻值可以选取 1~10MΩ
,74HC240,4个,光敏二极管,2个,0.22μF无极电容,6个,微型电机,2个,1MΩ电阻,6个,1.5MΩ电阻,2个,PC电源端子(母,拆芯),2位,小型压线端子(拆芯),2位,3mm黄铜管(可选),1小段,RCA插头尾簧,1个