在了解了触碰传感器的原理之后,来对它进行编程控制。下面编写一个当抓手机器人一直向前运动,直到碰到障碍物即停止运动的程序。示例代码如下图所示。
程序等待2s;
循环下面的程序,循环条件为触碰传感器的读数为0,即松开状态;
将63赋值给左电动机,作为其功率;
}
这是一个简单的利用触碰传感器状态作为循环条件控制电动机运动的程序。除了这个示例程序,还可以结合循环语句和判断语句给触碰传感器编写很多其他有趣的程序。例如可以尝试当按下触碰传感器时机器人停,松开时走,该过程可反复执行等。有时候也可以尝试用不同的程序去完成相同的任务。(www.daowen.com)
下面完成一个将抓手机器人改造为一个碰碰车的挑战。首先,为了防止机械臂的影响,将抓手机器人的机械臂拆除。其次,在抓手机器人底座的前端安装一个触碰传感器。最后,编写一个先让机器人一直直行的程序,当它碰到障碍物后,就后退3s,之后旋转90°,驶向其他方向。下图是参考代码。
现在可以将代码下载到改造好的抓手机器人中去测试一下。没有搭建抓手机器人的可以到虚拟世界的SENSING下接受Sentry Simulation Ⅱ挑战。这个挑战要求机器人围绕这个障碍物至少走两圈,机器人必须能够识别路径中的障碍物,并等待它移开。
上面为触碰传感器编写的程序同样适用于限位开关,但限位开关除了上面的用途,还可以将它安装在一个机械臂的底部,以避免机械臂超限运动,造成机器人和其他物品损坏。下面将以抓手机器人为例,考虑编写一个将限位开关安装在抓手机器人机械臂下方的程序。假设已经将抓手机器人恢复原状,并完成了限位开关的安装。
程序要实现当抓手机器人的机械臂下放时,如果触碰到限位开关,则终止电动机运动,这时遥控器按键发出的命令将对抓手机器人暂时失效,以起到对机械臂下方物体的保护作用,此时若向上抬机械臂,则允许抬起。注意,当机械臂向上抬起时,会有两种情况:一种情况是机械臂压住限位开关时向上抬起;另一种情况是没有压住限位开关时向上抬起。但不论哪种情况,都要求机械臂可以向上抬起。在编写这种遥控程序时,会出现两个约束条件:一个是遥控器按键是否被按下;另一个是限位开关是否被按下。这两个约束条件互相作用,影响对机械臂的编程控制。在处理有两个及以上约束条件的编程时,往往需要一些逻辑运算符(又称关系运算符),常见的有与、或、非等,它们在计算机编程语言中都有各自的符号表示。关于逻辑运算符的具体知识,请查阅知识拓展部分。下面将给出解决该问题的部分编程示例,如下图所示。
只需在之前的遥控机械臂程序中改变第二个if语句的条件即可。在这里用了逻辑关系运算符&&(与),它的运算规则是:只有当这两个条件都满足时,它的运算结果才是真(1),否则为假(0)。需要注意的是对传感器端口的配置,配置时指定相应的名称后,无论是触碰传感器还是限位开关,都选择touch类型。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。