宜昌老张

用乐高NXT控制器来遥控NXT小车(用Labview For NXT编程)

0
阅读(6202)

浏览这篇文章前,最好先看前面写的三篇关于Labview For NXT和NXT遥控的博客文章,它们分别网址为:

Labview for 乐高NXT机器人的入门

 http://blog.chinaaet.com/detail/23361.html

基于Labview软件的个人电脑遥控乐高NXT机器人的方法


http://blog.chinaaet.com/detail/23932.html

用乐高NXT控制器来遥控NXT小车(用NXT-G编程)


http://blog.chinaaet.com/detail/23935.html

你的个人电脑中的Labview软件与NXT控制器打交道有两种模式,一种是在线模式,另一种是离线模式。这篇文章的编程用的是离线模式,关于在线模式与离线模式的区别,看看上面第二篇文章。

“用乐高NXT控制器来遥控NXT小车”这篇文章的题目,就自然想到如何应用Labview的NXT通信控制模块的问题。下图给出了如何在Labview框图程序界面“放置”NXT通信控制模块的方法。


双击上图,可以放大图片,这样看的清楚些,下面给出的图,大家看不清,也双击。

上图中橙色的圈,我框住的模块就是“Mail”NXT通讯控制模块。在Labview框图程序界面的空白处“右击”鼠标,会出现“Function”函数库,再选择“NXT I/O”子函数库,找到“Mail”多态模块。

Labview For NXT编程主要用的就是“Function”函数库中的模块,它的大多数模块都是多态模块,例如“Motor”电机模块、“Sensor”传感器模块和 “Wait”等待模块等,什么是多态模块,就是多态模块里有若干个相关任务选项,然后选择其中一个任务选项作为当前任务,点击上图中我用橙色箭头标注的 “Mail”模块下方的下拉菜单按钮,于是出现下图所示画面。


大 家可以看到,上图用Labview编制的NXT遥控程序,“Mail”多态模块,选择的是什么任务选项?可以看到是:“Send to Client”发送到从机NXT控制器→“String”字符串数据类型→“Connection 1”连接号1,“Mail”模块的具体任务确定后,看上图,一个字符串“forward”输入到“Mail”模块中,这样就把“forward”通过邮箱 “Mailbox 1”和“Connection 1”发送到了NXT受控小车,同时通过“Mail”模块后面的“Display”显示模块,把“forward”显示在遥控器的第4行。

有 两个触动传感器用于NXT遥控器。“左触动”连接到主NXT控制器的输入端口1,“右触动”连接到输入端口4。这个Labview程序用到了两个“条件结 构”来判断两个触动的状态,如果两个触动都按下,则通过连接信道1和邮箱号1把主机NXT1的文本信息“forward”发到从机NXT2,小车前行;左 触动按下,而右触动松开,则向从机NXT2发送文本信息是“left”,小车左转;左触动松开,而右触动按下,则向从机NXT2发送文本信息是 “right”,小车右转;两个触动都松开,则发送文本信息是“stop”,小车停止。

Labview软件编写的遥控程序:


NXT-G软件编写的遥控程序:


Labview软件编写的受控NXT小车程序:


上 图的“Mail”模块选择的任务选项是:“Read NXT Mailbox”读NXT邮箱信息 →“String”字符串类型。受控的条件结构是多选择结构,有四个条件选项,“forward”、“left”、“right”和“stop”,上图显 示的是“right”选项的程序画面,可以看到“right”选项执行的命令是Motor电机向右偏转,偏转程度是-40,最大偏转程度是-100,功率 为30。

NXT-G软件编写的受控NXT小车程序:


这 篇文章我把遥控和受控程序,分别用Labview For NXT软件和NXT-G软件编写的程序进行了比照,并不是想表达两种软件编写的程序有何不同,而是要说明两种软件给NXT控制器编程,它们的编程样式和编 程习惯是相似的,大家有了NXT-G软件的编程经验,再来用Labview软件为NXT编程是很容易上手的。Labview软件公司和乐高公司一直保持着 密切的合作关系,NXT-G本身就是Labview公司给乐高NXT机器人套件量身定制的,可以说Labview软件是NXT-G软件父亲,儿子可以做的 事,当然父亲做更是小菜一碟!

这个遥控实验的labview程序,打包成RAR格式文件,大家解压后,可以直接用。

8175809918659.rar