-
―――――――――――――――――――――――――――――
修改记录
2009/4/18
由
flexit
ime
增加翻译内容
完成原文
10
到
12
页的最初翻译。
2009/4/17
由
flexitime
增加翻译内容
完成原文
8
到
9
页的最初翻译。
2009/4/16
flexitime
创建本文档
完成原文
5
到
7
页的最初翻译。
―――――――――――――――――――――――――――
Programming Lego Robots
using NBC
(Version 1.0, June 11, 2007)
Requires NBC 1.0.1.b30 or greater
I
.
写你的第一个程序
在这一章里面,我
将会向你展示如何写出一个最简单程序,我们打算安排机器人向前移动
4
秒,然后向后移动
4
秒,
最后
停下来,没有其它令人瞩目的地方,
但它会向你介绍编程的基
本
概念,
同时它会向你展示这是多么的简单。
在我们写程序之前,
我们首先需要一个机器人。
搭建机器人
我们将使用
“
Tribot
”
机器人来
贯穿整个教程,它的搭建指南在你的
NXT
套件当中。如果你<
/p>
不熟悉
LEGO
的机器人。我建议你按照
Lego
的教程来制作它。同时使你开始知道
< br>NxT
能
干些什么。你的机器人应该像这个样子
[
P5
图片]
(注意:
你可能已经将感兴器及收集
杆安装上去了,
如果是你应该暂时先将它们移除掉。
因
为当连接它们时会有一些的例子是不能正常工作的)
启动
Bricx Command Center
我们将使用
Bricx Command Center
来写程序,通过双击就可以启动它。
(我假设你已经安装
了
Bricx Command Center
,如
果没有,请从网页上下载并安装)程序会询问你,机器人在那
里,打开你的机器人,并点
击
OK
,程序会自动的找到机器人,现在你就会看到用户介面出
现在你的面前。
[
P6
图片]
用户介面看起来像一个标准的文本编辑器,
有普通的菜单,
p>
有打开,
保存,
打印等等的按钮。
这里也有一些特殊的菜单,
如编译、
下载程序到
机器人和从机器人中收集信息。
你现在可以
怱略这些。我们打算
写一个新的程序,因此点击
New
File
按钮来创建一个新的空窗口。
写程序
现在输入下面的程序:
thread main
OnFwd(OUT_B,100)
OnFwd(OUT_C,100)
wait 4000
OnRev(OUT_BC,100)
wait 4000
Off(OUT_BC)
exit
endt
这些东西开始看起来有点复杂。
因此
让我们一起来分析它。
NBC
的程序都是由线程
(
threads
)
来组成,
我们的程序就含一个线程,名字叫做
main
,每个一程序都必
须含有一个叫
main
的
线程,
它是由机器人来调用的,
你会在第五章中学到更多有关线程的知识。<
/p>
一个线程是由一
堆的命令所组成的,通常也叫做语句
(?)
,每个语句占用一行,因此一个线程(原文用
task
,
估计是从
NXC
中抄过来的)看起来通常会像这样:
thread main
statement1
statement2
endt
让我们逐行来看程序
OnFwd(OUT_B,100)
这个语句是告诉机器人启动
B
输出口,
连接在标记为
B
输出口的电机会向前移动
(转动?)
,
100
是指速度的百分比值,在这里它会以最大的速度移动。
OnFwd(OUT_C,100)
< br>同样的语句,不过现在我们启动的是电机
C
,经过这两条
语句后,两个电机都将运行。而机
器人也会向前移动。
wait 4000
现在是时候让
它停下来一会儿。
这个语句告诉我们会停
4
秒,
给出的参数是以毫秒为单位的。
(
1/1000
秒)
,因此你能非常精确的告诉程序要等待
的时间长度。在这
4
秒中,程序什么都
不干,而机器人将继续向前移动。
OnRev(OUT_BC,100)
机器人现在已经走得够
远的了,
因此我们告诉它往相反的方向走,
这就是向后走。
p>
注意,我
们能够使用
OUT_BC
作为参数来同时设置两个电机。我们当然也能将前面两个语句通过这
种方
式合并。我们也能使用
OnFwd(OUT_BC,-100
).
来实现。
wait 4000
再次等待
4
p>
秒。
Off(OUT_BC)
最后,我们关闭两个电机。
exit
这个语句告诉
NXT
这个线程结束了,不过这个不是必须出现在线程结尾的,只是推荐这样
做。注意,它经常出现在线程的别的地方。
这就是整个程序,
它会驱动两个电机向前
4
秒,然后向后
4
秒,最后关闭它。
你可能会注意到
输入程序时的颜色,
它们自动出现,
编辑器通常会用颜色及样式
高亮显示特
定的语法。
运行程序
一旦你写好了程序,程序就
需要编译(这是将它改变成机器人能认识和执行的代码)
,和使
用
USB
或蓝牙发送到设备上(叫“
d
ownloading”
程序)
。在做这些之前,你需要命名你
的程
序,你保存它到你的硬盘上就行了。当你保存时,一定要保证文件的扩展名是“
p>
nbc
”
,告诉
B
ricx Command Center
这是一个
NBC
p>
的程序。
[
P8
图片
上]
<
/p>
保存完文件后,
你可以编译和简单的点击下载按钮下载它。
假设你在录入程序时没有犯任何
的错误,它就会正确地被编译和下载<
/p>
(如果你的程序中有错误,你会得到一些通知,看下面
的图)
p>
现在你能够运行程序,
按这样做:
在
NXT
中选择
“
So
ftware Files
”
,
查找<
/p>
“
1-simple
”
< br>,
再使用橙色的键来运行它。另一种方法是,你可以通过
Bricx
Command
Center
< br>来运行它,
在你的窗口中点击绿色的运行按钮
(看上面的
图片)
。
机器人能按你预期工作吗?如果没有,
电缆可能连接得不正确。
程序中的错误
当你录入程序时,
p>
会有一些合理的情况使你犯下错误,
编译器会注意到这些错语,
p>
并会在窗
体的下方报告这些错误,就是以下的图片所示。
[
P8
图片
下]
它会
自动选择第一个错误(我们打错了电机的名字)
,当有不止一个错误的时候,你可以点<
/p>
击这些错误的信息去找到错误的地方,
注意,
第一个错误经常会引起其它地方的错误,
因此
你最好只改正
最前面的一些错误然后再编译一次。
****
通常也要注意的是语法高亮在很多情况下会帮助避免错语,例如在我们输入的
最后一
句。
Of
应该是
Off
才对,因为编辑器不认识这个命令,所以它没有高亮,因此你们可以在<
/p>
你编译程序之前发现到它们,
这里还有一些错误是编译器不能找到
的,
如果我们输入
OUT_B
的话,它
是不会被发现的,因为那个电机是存在的(尽管我们没有在机器人中使用它)
,如
果你的机器个展现出非预期的动作时,这大概可能大概是你的程序中那个地方错了
-
-
-
-
-
-
-
-
-
上一篇:河南中考英语新题型短文填空9篇(自由填空)含答案
下一篇:经典的泰戈尔英语诗歌欣赏