- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
LabVIEW与乐高NXT机器人的入门
图1 Labview启动画面
点击画面中的Blank VI Targeted to NXT,出现Labview前面板,前面板是程序的人机交互界面,不是编程界面,编程界面开始是看不到的,如何让它显示出来?前面板如图2.
图2 Labview前面板
点击前面板菜单栏的“窗口”,出现下拉菜单,点击“显示程序框图”,随之出现的界面,如图4,就是编程界面。
如果你已经拥有了labview软件,加装了乐高NXT 组件,就可以尝试少用NXT-G和Robolab,而多用Labview为乐高NXT编程,毕竟 NXT-G和Robolab不是主流软件,它们只能针对乐高机器人产品编程,可以说是labview软件的“副产品”,而Lavbiew ,它可是全能运动员,我曾经用它给51单片机,Arduino控制器、PLC、智能模块,采集卡等编程,非常好用。下面的图片是labview for NXT的主页。
图3 labview for NXT主页
上面的图片显示的网页原来是英文的,我贴的图片咋显示的文字是中文简体那?哈哈,我安装了谷歌浏览器,google可以把英文翻译成中文,翻译不够准确,但是可以辅助我们看英文资料。还有个小窍门,就是你把鼠标的光标移动到翻译出来的中文段落时,英文原文就以小窗口的形式显示出来,哈,这样就可以中英文对照了,用自己的英文功底纠正下,google翻译不顺畅的地方。
Labview 中文评估板,可以用30天,下载地址:
http://ftp.ni.com/evaluation/labview/ekit/other/downloader/LV2009_CHI_downloader.exe
乐高NXT组件的下载网页:http://zone.ni.com/devzone/cda/tut/p/id/4435
注意labview 7.1 到8.6的NXT组件是一种,labview 2009和2010是另一种组件,要了解自己的labview的版本是什么?我的labview版本是labview 2009, 所以我下载的组件是
LabVIEW Module for LEGO MINDSTORMS NXT
今后我会不断有些labview for NXT的编程例子可供下载,所以低于Labview 2009版本的软件打不开上传的例子。
看看labview的编程界面与NXT-G软件界面有何不同。我贴的Labview的编程界面背景是lego的桌面,要分清哪些图面是软件界面。 [p]
图4 Labview前面板和框图程序
点击上图的菜单栏中的“文件”,出现下拉菜单,选择其中的“终端至NXT”并点击,Labview框图程序界面的左下角发生变化,看看左下角,我加注的黑框 。
图 5 Labview框图程序
在程序编程界面的任意处点击鼠标右键,会出现函数库,选择“NXT I/O”,又会出现“NXT I/O”子函数库,我用“蓝色”圈加注的是“电机Motor”多态模块,用“红色”圈加注的是“传感器Sensor”多态模块。这篇文章讲解的程序只用到了这两个模块,点击模块,即可把模块拖到到编程界面的合适位置,再点击一下,就把模块放置下来了。
点击软件菜单栏里的“帮助”,出现下拉菜单,在下拉菜单中,选择“NXT Module Help”点击,就会有我们需要的“软件使用指南”,是英文的,可惜,但这是最全面的入门资料,Labview for NXT的资料可不好找啊。
有个办法,你可以用google翻译网页:http://translate.google.com/#en|zh-CN|
把“软件使用指南”的英文段落一段段贴到源语言栏里,点击翻译,就可以看中文了。
这篇文章介绍的例子很简单,任务是在NXT控制器的输入口4连接超声波传感器,在输出口A连接伺服电机一台。当超声波传感器检测障碍物距离小于20厘米,则电机转,否则电机停止。
实验图片:
实验的labview程序如下图所示:
点击上图的条件选择结构的“真”或“假”切换按钮,选择结构“假”时的程序如下图:
按照同样的编程思路,我用NXT-G也编写了程序:
看看,完成这个小任务,两种软件编制出的程序有何不同,起码有一点不同,很容易看出,Labview程序的各模块参数可以直接在模块的输入端子上设置,例如电机“前转”,功率是75, 这个参数75直接连在电机模块的输入端子上,而NXT-G软件的参数,要点击模块,软件界面下方会出现参数设置栏,在这个参数设置栏里设置电机的参数,最后在NXT-G图形化程序上,并不能看到各个模块的所有参数具体值,而Laview for NXT却可以看到程序的全貌。 [p]
讲讲Labview程序中多态模块的切换方法和参数设置方法。
上图“传感器”多态模块,点击模块下拉按钮,出现下拉列表,选择“Read Ultrasonic”,这样“传感器”多态模块就变成了“超声波传感器Ultrasonic sensor”模块了。
在模块的周围有些输入或输出端子,你用鼠标在端子上停留一小会,就会出现这个端子的用处提示。然后点击右键,出现快捷菜单,如下图:
点击“创建”→“常数”,就会出现一个列表选项,并且它已经连接到了那个端子,上图用“红色”圈加注的列表选项用来选择超声波传感器连接在NXT控制器的哪个输入端口?点击列表选项的下拉按钮,我把端口号设置为4。
再比如电机模块的功率参数,也是用这种方法,点击“创建”→“常数”,出现的电机功率常数是默认的“75”,双击一下“75”,可以修改功率值为0~100的任意值。
程序的下载步骤一:
鼠标右击程序框图界面左下角的“NXT终端”,出现快捷菜单,选择“查找NXT”。
程序的下载步骤二:
上图是程序下载方式设置窗口,我的NXT控制器既连接了USB下载线,又有蓝牙适配器,如果你在USB插槽上插入NXT认可的蓝牙适配器,还看不到蓝牙Bluetooth,就按窗口中的“Scan”按键。我选择了蓝牙下载程序的方式,并点击了“Connect”,随之看到窗口Status栏中显示“Connected”,说明蓝牙连接成功!然后“Close”关闭窗口。对了,整个程序下载过程,你的NXT控制器要开机啊。
程序的下载步骤三:
点击我用“红色”圈加注的“程序运行”图标,于是从程序编译、下载和运行,可以一起完成,现在程序已经到了NXT控制器,而且已经处于运行状态了,立即试试实验效果,不错!