浏览这篇文章前,最好先看前面写的三篇关于Labview For NXT和NXT遥控的博客文章,它们分别网址为:
Labview for 乐高NXT机器人的入门
http://blog.ednchina.com/zhang0309/1902490/message.aspx
基于Labview软件的个人电脑遥控乐高NXT机器人的方法
http://blog.ednchina.com/zhang0309/1955049/message.aspx
用乐高NXT控制器来遥控NXT小车(用NXT-G编程)
http://blog.ednchina.com/zhang0309/1969171/message.aspx
你的个人电脑中的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格式文件,大家解压后,可以直接用。
文章评论(0条评论)
登录后参与讨论