3.5 计算走过的距离
项目内容:计算机器人走过的距离。 相关模块:直行、转向、转角检测、显示。 难度等级:●●●○○
? 程序设计
在本例中,我们让机器人先走一段直线,接着走一段弧线,然后再走一段直线。最后,调用两个转角检测模块,分别检测左轮和右轮的转角,并显示出来,例程如图3-16所示。
图3-16 转角检测例程
? 参数设置
“转角检测”模块:打开“转角检测”模块的对话框,如图3-17所示。
46
图3-17 转角检测模块的参数设置对话框之一
在图3-17对话框中选择“左轮、编码器检测”,就会弹出如下对话框:
图3-18 转角检测模块的参数设置对话框之二
在其中选择“转角变量一”,确定。
用同样的方法,将第二个“转角检测”模块的参数设置为“右轮、编码器检测、转角变量二”。
“显示”模块:选择“引用变量”,在两行中分别显示“转角变量一”和“转角变量二”。
? 仿真运行
仿真运行时,显示轨迹,可以看到机器人走过一条曲线,最后在右上角的显示屏上显示出左右轮的转角数。
机器人的轮子转一圈,机器人的光电编码器接收到33个脉冲,转角计数为33。真实的能力风暴机器人轮子的直径d=64mm。您可以根据检测到的左右轮平均转角数,用如
47
下公式计算出机器人走过的平均距离:
平均转角数距离=??d33 您还可以在以上例程中添加一段程序,计算机器人走过的距离,并将计算结果显示出来。不过,用上述公式计算出的结果适用于真实的机器人,与仿真界面上的标尺不一定吻合。
小知识:光电编码器
光电编码器是靠发射与接收红外光来工作的,由码盘和光电编码模块组成。码盘安装在机器人的轮子上,随轮子一起转动。光电编码模块则装在轮子的支架上。码盘上共有66个辐条,黑白相间。光电编码模块同时具有发射与接收红外线的功能,参见图3-19。
无返回信号 有返回信号
图3-19 光电编码器的工作原理图
从图中可以看出:红外线照射在黑色辐条上时没有反射信号,因为红外光大部分已经被黑色辐条吸收;当红外线照射在白色辐条上时有反射信号,因为红外光在白色辐条上反射强烈。于是,当机器人运动时,光电编码器就能接收到脉冲信号。轮子每转一圈,共产生33个脉冲。光电编码器有计数功能,能累加接收到的脉冲数。
48
3.6 秒表
项目内容:让机器人在显示屏上显示时间,可以当作秒表来使用(图3-20)。
图3-20 显示时间
相关模块:系统时间、显示、永远循环。 难度等级:●○○○○
项目解析:在本书中很多项目可用于机器人比赛,比如走迷宫、灭火。进行机器人比赛,就需要计算所花的时间。VJC1.5仿真版提供了“系统时间”模块,能满足程序设计的需要。
3.7 风扇定时
项目内容:用机器人做成一个电风扇,来回摆动着吹。并且有电风扇的定时功能,吹一段时间就停下来。
相关模块:转向、启动电机、 停止电机、系统时间、条件循环。 难度等级:●●○○○
? 程序设计
要让风扇定时,则须调用“系统时间”模块。在程序中,控制风扇运行的时间可以用条件循环来实现。程序一开始,首先启动扩展电机,然后进入条件循环,条件表达式为:
时间变量一 < 10.0000 条件循环的内容为:左转、右转、检测系统时间,并将它在显示屏上显示出来。一旦检测到系统时间超过10秒钟,就跳出条件循环,停止扩展电机,程序结束。参见图3-21。
? 参数设置
“启动电机”模块:选择“扩展电机”,而将左右电机的功率均设置为零。 “条件循环”模块:条件表达式为
时间变量一 < 10.0000
49
“系统时间”模块:变量选择“时间变量一”。 “停止电机”模块:停止扩展电机。
? 仿真运行
点击“仿真”快捷按钮,进入仿真环境主界面,点击“运行”键,将虚拟机器人放到运行区就可以了。运行时可以看到右上角显示屏上有时间显示。
图3-21 风扇定时例程
50
前 言 .................................................................................................................................................. 4 第1章 预备知识 .................................................................................................................................. 5 1.1
虚拟机器人的结构与功能 ................................................................................................... 6
身体结构 ....................................................................................................................... 6 感觉器官 ....................................................................................................................... 6 编程语言 ....................................................................................................................... 8 为机器人编写程序 ....................................................................................................... 9 创建环境 ....................................................................................................................... 9 仿真运行 ....................................................................................................................... 9 安装 ............................................................................................................................. 10 启动 ............................................................................................................................. 10
1.1.1 1.1.2 1.1.3 1.2 1.2.1 1.2.2 1.2.3 1.3 1.3.1 1.3.2 1.4
VJC1.5仿真版能做什么 ...................................................................................................... 9
光盘的安装与启动 ............................................................................................................. 10
如何使用“帮助”电子文档 ............................................................................................. 11
第2章 初试身手 ................................................................................................................................ 14 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20
歌曲 ..................................................................................................................................... 15 边唱边跳 ............................................................................................................................. 18 走正方形 ............................................................................................................................. 19 走六边形 ............................................................................................................................. 19 走五角星 ............................................................................................................................. 20 走圆形 ................................................................................................................................. 24 奥运五环 ............................................................................................................................. 25 进门比赛 ............................................................................................................................. 26 一笔画 ................................................................................................................................. 27 求和 ..................................................................................................................................... 27 四则混合运算 ..................................................................................................................... 29 整型数与浮点数 ................................................................................................................. 29 霓虹灯 ................................................................................................................................. 30 汽车 ..................................................................................................................................... 31 迎宾机器人 ......................................................................................................................... 31 回廊 ..................................................................................................................................... 31 动态字符 ............................................................................................................................. 32 波浪 ..................................................................................................................................... 33 落地扇 ................................................................................................................................. 33 等比求和 ............................................................................................................................. 34
第3章 稳步前进 ................................................................................................................................ 35
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19
打招呼 ................................................................................................................................. 36 叫人起床 ............................................................................................................................. 42 彩色地毯 ............................................................................................................................. 45 百米赛跑 ............................................................................................................................. 45 计算走过的距离 ................................................................................................................. 46 秒表 ..................................................................................................................................... 49 风扇定时 ............................................................................................................................. 49 找房门 ................................................................................................................................. 51 醉汉 ..................................................................................................................................... 55 自由行走 ............................................................................................................................. 56 趋光的飞蛾 ......................................................................................................................... 57 鼹鼠 ..................................................................................................................................... 59 沿线走 ................................................................................................................................. 60 越障跑 ................................................................................................................................. 64 太阳能电池 ......................................................................................................................... 64 电子琴 ................................................................................................................................. 65 穿越隧道 ............................................................................................................................. 65 舞台 ..................................................................................................................................... 66 哈雷彗星 ............................................................................................................................. 66
第4章 挑战自我 ................................................................................................................................ 67 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14
填字游戏 ............................................................................................................................. 68 台球 ..................................................................................................................................... 70 寻宝 ..................................................................................................................................... 73 篝火晚会 ............................................................................................................................. 74 弹球游戏 ............................................................................................................................. 77 随机走 ................................................................................................................................. 78 沿墙走 ................................................................................................................................. 79 点歌台 ................................................................................................................................. 82 回音壁 ................................................................................................................................. 82 查找最大值 ......................................................................................................................... 83 排序 ..................................................................................................................................... 84 最大公约数 ......................................................................................................................... 85 跳房子游戏 ......................................................................................................................... 89 找地雷 ................................................................................................................................. 90
第5章 我能赢 .................................................................................................................................... 91
2
5.1 5.2 5.3 5.4 5.5
走迷宫 ................................................................................................................................. 92 游北京 ................................................................................................................................. 93 长跑比赛 ............................................................................................................................. 94 救援 ..................................................................................................................................... 95 灭火比赛 ............................................................................................................................. 96
附 录 .................................................................................................................................................. 99 附录A. 附录B. 附录C. 附录D.
子 程 序 ...................................................................................................................... 99 如何设置机器人型号 ............................................................................................... 103 不同型号的虚拟机器人碰撞传感器差异 ............................................................... 104 真实的能力风暴机器人功能一览表 ....................................................................... 104
3
前 言
本书介绍了机器人的初步知识,包括机器人的身体结构、感觉系统和思维方式。与一般教科书不同的是:所有这些知识是在一系列的机器人项目中逐步展开的。读者在做机器人项目的过程中,将自主建构机器人的知识体系。建构机器人知识体系的过程是新颖有趣的,给人的印象也会是深刻的。
本书还详细讲解了VJC编程语言。VJC编程语言又称为机器人C语言,是一种易学易用的编程语言。读完该书,再去学标准的C语言程序设计,就易如反掌了。
近年来,建构主义的教育理念得到了广泛的认可。大家知道,要在学习知识的过程中应用建构主义的方法,是很需要一番努力的,因为用于建构的素材和情境并非总是那么唾手可得的。本书介绍的智能机器人,由于它的技术先进性、学科综合性、自主体验性、趣味性和不断更新性 ,可以称得上是实现建构主义教育理念的一个优秀平台。通过做项目来建构机器人的知识体系,可以抛开繁琐的理论书籍,在学中用,又在用中学,一切都将显得那么轻松和自然。
本书的读者可以是大中小学的青少年,也可以是任何年龄的机器人爱好者。中小学的科技老师也可以用它做教材。
4
第1章 预备知识
在本章中,我们对能力风暴智能机器人作一个简单介绍,让读者初步了解机器人的结构、传感器和编程语言。本章还讲述了光盘的安装使用方法,并给出了VJC1.5仿真版软件中“帮助”电子文档的详细目录。在读完本章内容之后,相信读者就能方便地使用VJC1.5仿真版了。
5
于是我们可以将图3-6的程序等价地写成如下形式(图3-10):
图3-10 打招呼例程之二
可见一个多功能模块相当于一个单功能模块和一个条件判断模块的组合。
除了“红外测障”之外,传感器模块库中的其它模块都具有两种功能,既可以作为单功能模块,又可以作为多功能模块,详见帮助电子文档――传感器模块。
41
3.2 叫人起床
项目内容:夜晚天黑的时候,机器人静止不动。一旦天亮了,机器人就动起来,并发出声音、眼睛发光,持续一段时间才停下来。
相关模块:亮度检测、发音、转向、条件循环。 难度等级:●●○○○
? 程序设计
首先设计一个亮度检测小程序,第一个“亮度检测”模块参数设置为方式“左”,变量选择“亮度变量一”,第二个“亮度检测”模块参数设置为方式“右”,变量选择“亮度变量二”。“显示”模块两行显示信息分别为“亮度变量一、亮度变量二”。延时等待0.1秒(图3-11)。
图3-11 亮度检测
将以上程序仿真运行。在运行场地上添加光源,光源半径设为180,渐变值30。然后将机器人放在光圈中和光圈外(图3-12),观察一下机器人左右眼检测到的亮度值。
42
图3-12 亮度检测界面
为了达到叫人起床的目的,需要检测环境光的亮度。假设天黑的时候,环境光的亮度大于200,而天亮的时候,环境光的亮度小于200。当天黑的时候,机器人就一直反复检测环境光的亮度。一旦检测到环境光的亮度小于200,表明天亮了,机器人就开始动作,转动身体、发音、眼睛放光。在程序中,机器人检测环境光的亮度的过程可以用条件循环来实现(图3-13)。
图3-13 叫人起床例程
43
? 参数设置
“亮度检测”模块:亮度检测模块可以分别检测左眼亮度、右眼亮度、平均亮度、以及左右眼亮度之差(图3-14)。
图3-14 亮度检测模块的对话框
在本例中,我们选择的是“平均”方式。变量选择“亮度变量一”,即将检测到的亮度值保存在“亮度变量一”中。在程序执行的时候,每检测一次,就会将前次的亮度值覆盖,所以“亮度变量一”中保存的总是最近一次检测到的亮度值。
“条件循环”模块:条件表达式设置为
亮度变量一 ? 200 于是当环境光的亮度大于200的时候,条件表达式成立,表明天还黑着,机器人就继续检测。当亮度小于200的时候,表明天亮了,此时条件表达式不再满足,条件循环中止,机器人就转而去执行条件循环后面的指令。
由于程序开始时默认“亮度变量一”的初始值等于零,我们在进入条件循环之前先调用一次亮度检测模块,以获取环境光的当前值,并将其赋给“亮度变量一”,可以避免程序错误地跳过条件循环。观察程序的JC代码,可以更清楚地看到这一点。在流程图编辑界面中,点击工具栏上的“JC代码”快捷按钮
其余模块:略。
,即可看到当前程序的JC代码。
? 仿真运行
在机器人运行场地中添加光源,设置光源半径为180,渐变值为30。先将机器人放在黑暗的地方,然后再将机器人放在光圈中。观察是否能达到叫人起床的效果。
44
3.3 彩色地毯
项目内容:机器人在彩色地毯上行走,遇到不同的颜色能发出不同的声音。 相关模块:地面检测、直行、转向、发音、永远循环、条件判断。 难度等级:●●○○○
创建环境――彩色地毯。参见帮助电子文档/环境编辑/图带和地毯。
项目解析:“地面检测”模块用于对地面的灰度进行检测,检测到的值为0~255之间的整型数,数值越大,地面颜色越深;数值越小,地面颜色越浅。在正式编程之前,先编写一个地面灰度检测小程序(参见图3-22),检测一下地毯不同部分的灰度。然后再构思本项目的解决方案。
3.4 百米赛跑
项目内容:开始时,机器人站在跑道的起点处等待起跑。一旦听到发令枪响,就立刻沿着跑道向终点冲过去。在跑的过程中机器人不能越出跑道。
图3-15 百米赛跑场地
相关模块:地面检测、声音检测、条件循环、直行。 难度等级:●●○○○
项目解析:在很多比赛中要求声控启动,当机器人听到声音后才能运动。这个项目主要演示在场地中添加声源,具体方法可参见“帮助”电子文档/环境编辑/声源。仿真运行时,先把机器人放在跑道的起点处,然后添加声源。
45
2.14 汽车
项目内容:用机器人做一个汽车。前进、后退、转弯、划弧线、停止、亮车灯等动作任意组合。车灯可用机器人的眼睛代替。
相关模块:直行、转向、启动电机、延时等待、停止电机、眼睛。 难度等级:●●○○○
2.15 迎宾机器人
项目内容:设计一个迎宾机器人,除了身体会动作,还会唱歌、显示欢迎信息、眼睛发光。
相关模块:直行、转向、眼睛、显示、发音、永远循环。 难度等级:●●○○○
2.16 回廊
项目内容:用障碍物和彩色图带设计一个弯曲的走廊,让机器人从走廊中走过去。创建环境的方法参见“帮助”电子文档――环境编辑。
相关模块:直行、转向。 难度等级:●●○○○
项目解析:要顺利走出回廊,需反复调节“直行”和“转向”模块的参数。以后我们学习了机器人的红外传感器和碰撞传感器,就可用更好的方法完成这个项目。
31
2.17 动态字符
项目内容:机器人显示字符“ABCD”,并且字符从左向右运动。
图2-21 仿真界面中的显示屏
相关模块:显示、延时等待、永远循环。 难度等级:●○○○○
项目解析:在本例中,可以这样来设计程序:用13个显示模块,分别将“ABCD”显示在不同部位,如图2-21/22所示。其中,前一个“显示”模块与后一个“显示”模块之间插一个“延时等待”模块,延时等待的时间取0.2秒钟。当程序运行的时候,就会产生动态的效果。
图2-22 动态字符的设计方法
32
A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D
2.18 波浪
项目内容:用字符“*”做成波浪的形状,并且看起来波浪在不停地起伏。 相关模块:显示、延时等待、永远循环。
2.19 落地扇
项目内容:用机器人做一个电风扇,来回摆动着吹。 难度等级:●○○○○
项目解析:设置这个项目主要为了知道风扇的使用方法。 相关知识:机器人的风扇
能力风暴智能机器人本身没有风扇,风扇可以自己安装,如图2-23所示。 在VJC1.5仿真版环境中,风扇通常由扩展电机驱动,在程序中调用“启动电机”模块进行控制。进行参数设置时,在对话框中选中“扩展电机”即可(图2-23)。
图2-23 选择“扩展电机”驱动风扇
33
2.20 等比求和
项目内容:计算4+4×3+4×32+??+4×37,并显示计算结果。 相关模块:计算、多次循环、显示。 难度等级:●●○○○
项目解析:通过本项目进一步掌握“多次循环”模块使用方法。为求取项目中等比数列的值可用采用下面介绍的公式进行计算,也可将计算式改写成易编程实现的形式。建议读者设计多种方法完成该项目。
小知识:等比数列是形如
a, ad,ad2,ad3,ad4,ad5,ad6??
的序列,其中是a等比数列的首项,d是等比数列的公比。由于等比数列有明显的规律,故对等比数列的前n项进行求和是很简便的。如d等于1,则Sn=na。如d不等于1,令
Sn=a+ad+ad2+??+adn-2+adn-1
等式两边同乘以公比d,得到
dSn=ad+ad2+ad3+??+adn-1+adn
再用上一式减去下一式,得到:
Sn-dSn=a-adn
即可得到
a(1?dn)Sn=
1?d
34
第3章 稳步前进
在本章中,读者将接触到智能机器人的感觉系统。智能机器人的感觉是由传感器实现的。能力风暴智能机器人装备的传感器有红外传感器、光敏传感器、碰撞传感器、声音传感器、光电编码器、地面灰度传感器等6种。读者通过做本章的机器人项目,就能熟悉机器人的传感器工作原理。
35
3.1 打招呼
项目内容:用圆形障碍物当作人,机器人每当走到“人”跟前的时候,都会叫一声,打个招呼,然后侧身走开。
相关模块:红外测障、直行、转向。
创建环境――在机器人运行场地中,添加几个圆形障碍物(图3-1)。
图3-1 打招呼场地
难度等级:●●●○○
? 程序设计
机器人探测障碍物,用的是红外传感器。VJC1.5仿真版中,机器人红外传感器的探测半径为0~30,可以根据需要在此范围内调整(参见帮助电子文档――红外传感器设置)。
编程时,可以让机器人一边走一边进行红外检测。如果检测到有障碍物,就发音,意为看到人了,打个招呼。然后转向,继续走。机器人可以探测到前、左、右三个方向的障碍物。如果检测到障碍物在前方,就右转;障碍物在左方,就右转;障碍物在右方,就左转;否则,就前进。参见图3-6。
36
? 参数设置
前进模块:速度80,时间0.1秒。
“红外测障”模块:变量选择“红外变量一”。 三个“条件判断”模块的条件表达式为
红外变量一 == 前 红外变量一 == 左 红外变量一 == 右 设置“条件判断”模块参数的时候,首先打开参数设置对话框(图3-2)。
图3-2 “条件判断”模块的对话框
在对话框中点击“整型变量一”,随之会弹出变量百宝箱(图3-3)。
图3-3 变量百宝箱
37
在变量百宝箱中点击“红外”图标,红外变量一、红外变量二、红外变量三就会出现在变量百宝箱中(图3-4)。
图3-4 红外变量
点击选中红外变量一,确认,红外变量一就会出现在条件判断模块的参数设置对话框中,
图3-5 条件判断表达式
此时就可以设置以上列表中的条件判断表达式了(图3-5)。
由例程(图3-6)可以看出,在前、左、右方都没有障碍物的情况下,循环的周期几乎就由“前进”模块的时间参数所决定。每循环一次,程序发出一次红外测障的指令,机器人的红外测障系统就开启一次。故循环的周期越短,机器人的反应就越灵敏;循环的周期越长,机器人的反应就越迟钝。在仿真版中,建议循环周期取为0.1秒或0.05秒。
38
图3-6 打招呼例程之一
? 仿真运行
仿真运行的时候,在机器人运行场地中创建一个房间,里面放一些圆形障碍物。让机器人在房间里活动。也可以加载“单房间场地”,然后进入环境。
? 单功能模块与多功能模块
红外测障模块除了有检测障碍物的功能,还有条件判断的功能。右击模块,打开参数设置对话框,可以看到中间有“检测完成后,进行条件判断”的字样(图3-7)。
在这排文字上点击一下,就会出现如图3-8所示的对话框,在其中可以设置条件表达式。
39
图3-7 红外测障模块的参数设置对话框之一
图3-8 红外测障模块的参数设置对话框之二
设置完成后,点击“确定”按钮,“红外测障”模块的形状就由平行四边形变成了菱形(图3-9)。平行四边形模块称为单功能模块,而菱形模块则称为多功能模块,因为它具有红外检测与条件判断两种功能。
图3-9 单功能模块转变为多功能模块
40