我们的第一个程序:在我们的NXT控制器显示屏上显示“HelloWorld!”
首先我们要准备一台安装有LabVIEWeducation版本的计算机和一部NXT控制器。
之所以选择BlankVITargetedtoNXT是因为我们给机器人编写的程序要运行在
如果编程界面中没有显示“Function”面板,可以在“View”下拉菜单中,选择
其中还有更多的子模块,可以逐层点击直到最底层,在这里我们只是调用显示函数
之后我们要增加一个延时显示的功能,让文字显示 5 秒,选择功能面板中的 Wait
第一次使用 LVEE 软件,为了确保固件版本一致,一般要对 NXT 刷新固件:
首先打开 NXT 控制器;然后打开计算机端 LVEE 软件,在“Tools”下拉菜单
点击对话框中的“Update Firmware...”按钮后,弹出新的窗口,在新窗口中点
击“Update”按钮,软件会自动下载固件到 NXT 中,固件下载完毕后会在窗口的
为了运行这个程序,我们需要连接我们的 NXT 积木块至电脑,可以使用 USB,
也可以使用蓝牙。连接上之后,我们右击窗口左下方写着“NXT Target: Unspecified”
如果之前没有连接过这个 NXT,点击 Find NXT,按照里面的提示进行操作。现在
在编程界面下,默认的图标一般为方块大图标,在编程过程中占据较大版面,比如:
版面了,我们可以点击此图标右键,勾除“View As Icon”选项即可显示为小图标“
另外,可以通过对软件的设置,彻底解决此问题。在“Tools”下拉菜单中选择“Opions...”,
马路上奔驰着各类车辆,有小轿车、商务车、巴士等,我们要做一个双轮驱动的汽车,
这是一个简单的双马达 NXT 小车,自行搭建即可,之后的课程会基于此机器人平
我们想让机器人向后移动,所以我们必须选择 Motor Control 函数。如图 3-1 所示,我们可
我们将 Motor Control 函数放在程序框图上应当和图 3-2 所示一样。
我们的练习是要使机器人向后移动,所以我们点击 Fwd 旁边的下拉菜单,可以看到有 Motor
现在我们要指定这个马达连接至 NXT 的哪个端口。如图 3-5 所示,右击函数的 Output Port
通过点击 All Ports 旁边的下拉菜单可以选择马达实际连接的端口。
我们也要为机器人的移动速度创建一个常量。通过 Power 接线端可以创建这个常量,创建
创建常量时,数字被高亮,我们可以输入任何我们想要的速度。这里我们用 75 就好。
注意:如果这里的速度常量是负数,即使没有选择 Reverse,也就是说选择的 Forward,马
有一点不要忘了,因为有两个马达,所以我们要再创建一个 Motor Control 函数,与刚创建
的相同。一个驱动右轮,另一个驱动左轮。我们只需要复制刚才创建的 Motor Reverse 函数,
然后改变这个马达要连接的端口就可以了。这里我们选择 Port B。代码应该如图 3-8 所示。
为了运行这个程序,我们需要连接我们的 NXT 积木块至电脑,可以使用 USB,也可以使用
蓝牙。连接上之后,我们右击窗口左下方写着“NXT Target: Unspecified”的橘黄色框,然
如果之前没有连接过这个 NXT,点击 Find NXT,按照里面的提示进行操作。现在我们可以
定义各个参数,我们可以调节 Steering 的数值,来决定机器人旋转的方向和转弯大
在程序框图上,我们为控制车轮的两个马达分别创建马达控制函数。接着我们指定两个马达
因为练习是要使用旋钮来控制马达的速度,我们右键点击前面板,然后选择 Numeric 选板下
的 Knob 控件。Knob 控件放置到前面板后,把鼠标放在控件上,这时会出现 4 个边框控制
因为这个旋钮用来控制马达的速度,所以需要改变旋钮的刻度。旋钮上的默认刻度是 0 到
10,但马达的速度可以在 0 到 100 之间变化。要改变旋钮上的刻度,我们只需要简单的双击
双击刻度的最大值之后,数值被高亮,接着我们就可以编辑我们想要的最大值了。我们需要
把它改成 100,可以看到,改成 100 之后,其余刻度也跟着自动改变,如图 3 所示。
练习是要用旋钮控制马达的速度,所以我们把这个 Knob 接线端连线到两个马达控制函数的
我们可以给 Knob 控件换一个更合适的标签,比如“Motor Speed Control”。双击程序框图上
再看下练习的要求,可以看到,我们需要“实时”控制马达的速度。我们需要考虑什么是“实
时”控制。只需要设定一个值?还是说当我们改变 Knob 控件的值时,速度也跟着改变?事
实上,“实时”控制意味着马达的速度要随着 Knob 控件输出值的改变而改变。为了达到这
个效果,我们创建一个循环。接下来,让我们创建一个包含代码的 While 循环。
因为要使马达控制函数反复的运行,所以我们用 While 循环,如图 8 所示。记住,While 循
我们想让 While 循环中的代码一直反复的执行,所以这个循环应该是个无限循环。为了实现
这个效果,我们要把一个布尔常量连接到条件接线端。为了创建布尔常量,我们右击程序框
图,选择 Boolean 子选板,然后点击 False Constant。现在连接布尔常量至条件接线. 无限循环
现在我们可以运行这个程序了。如果我们使用 Run 按钮或者 Deploy 按钮来运行这个程序,
它将被传送到 NXT,但并不会保持与 PC 的连接。为了能实时更新马达的速度,我们需要用
准点到达:在地面上设计一条三角形的路线,要求不借助任何传感器,仅通过编程控制
k8凯发官网
我们需要启动 LabVIEW,构建一个与 NTX 目标关联的空白 VI。
第一件要考虑的事情是我们需要不断重复地执行代码,因此需要一个 While 循环。创建一个
我们需要机器人完成两项重要的功能:移动电机和在接触传感器被按下后停止。首先从电机
控制着手,放置两个电机控制函数并选择适当的端口。代码应该看起来和图 1 一样。
练习要求我们让机器人以随机速度移动。为了选择随机速度,我们需要使用随机数发生函数
在随机数发生器里,我们需要指定输出随机数的范围。我们知道这个函数将被用来生成电机
的速度,以及电机控制函数支持输入的速度范围为 0 到 100。因此生成的随机数范围也必须
是 0 到 100。为了选择随机数发生器输出的最大值,我们可以右击这个函数节点的最大值
( Max Value )端子,创建一个常量。我们可以看到它默认是 0 到 100 的范围,因此无需作改
下一步我们应该对随机数发生器的输出进行连线,将其连接至电机控制函数的 Power 端子。
最后我们需要做的事情是从接触传感器上读数。为了得到传感器函数,我们右击程序框图,
选择 NXT I/O 子选板,点击传感器(Sensor)。我们可以点击多态选择器显示列有所有传感
接触传感器函数输出一个布尔值,当传感器被按下时它输出为真,当传感器没有被按下时它
输出为假。题目要求当接触传感器被按下时停止应用程序,因此我们需要使用接触传感器返
回的值结束 while 循环。为了实现此功能,我们将传感器函数的输出与 while 循环的条件终
止端相连。这个是合理的,因为当接触传感器被按下时,它将输出真值,等价于向条件终止
运行程序前,我们需要连接 NXT 到 PC 上,然后点击运行(Run)按钮。
根据实际搭建情况对结构提出改进和修改意见,病进一步增加机器人的功能,修改
修补先前练习的代码----使 NXT 机器人以随机速度向前移动直到接触传感器被压下
我们也可以像这个单元的第一课里所学的那样,添加一个时间延迟。利用等待函数添加了一
现在我们就可以利用 NXT 端子去确保我们的程序按照我们想要的顺序执行。我们可以利用
NXT 端子将两个电机连在一起,然后连到我们的时间延迟。从时间延迟连到接触触动传感
这个时候,我们也应该在 while 循环的外面添加电机制动函数,以便于程序一退出 while 循