基于Labview用于微软XBOX电玩手柄遥控乐高机器人

发布者:书香门第最新更新时间:2017-05-25 来源: eefocus关键字:Labview  微软XBOX  电玩手柄  遥控乐高机器人 手机看文章 扫描二维码
随时随地手机看文章

   XBOX 360是世界最大的电脑软件公司微软所开发的第二代家用视频游戏软硬件系统,其中的电玩手柄是一种USB接口的人机输入设备,而Labview软件里有读取人机输入设备数据的功能组件,所以可以方便地读取手柄数据到Labview软件里进行处理。

    XBOX手柄上有2个X、Y轴向摇杆,它的每个轴向摇杆能控制各自的X轴和Y轴坐标,当操作轴向摇杆时,由LabVIEW的输入数据采集模块(LabVIEW的程序模块称为VI)模数转换产生的轴向坐标数据也发生相应变化。电玩手柄把轴向摇杆的坐标分为65536个刻度,摇杆的一个轴的正负方向刚好各是32768个刻度。操纵输入设备,可以产生从-32768到32768连续变化的数字,这种设备习惯上称为模拟量设备,或者说这种摇杆称为模拟摇杆。XBOX手柄上表面有两个显而易见的X、Y轴向摇杆,另外还有2个模拟量推杆在手柄的前端面上,它可以控制Z轴的正负坐标。XBOX手柄一共可以控制5个轴向坐标,一个模拟摇杆控制X、Y两个轴,两个摇杆就控制4个轴,2个模拟量推杆控制1个轴,一共5个轴。

    值得注意的是:XBOX电玩手柄上表面的两个摇杆,若不摇动它,而是按下它,两个摇杆就变成了两个数位按键。所谓数位按键,就是按下按键,产生的值为“true”,松开按键,则值为“false”,手柄上还有其它8个数位按键。除了数位按键,还有一个POV视角单元,包括4个方向按键,按下这4个按键,会分别产生0、90、180、270数字。

    看图1所示电玩手柄,可以看到2个X、Y轴向摇杆,2个Z轴推杆,10个数位按键和4个方向按键。

图1 微软XBOX 360电玩手柄的输入部件指示图

要把操纵微软XBOX手柄的摇杆、推杆和按键所产生的信息以数字的形式读到PC机的LabVIEW软件中进行处理,需用到4个VI,它们是“查询输入设备”VI、“初始化操纵杆”VI、“输入设备采集”VI和“关闭输入设备”VI。如何找到这些VI,首先打开“框图程序”界面,在界面工作页面空白处,点击鼠标右键,出现“函数”库面板,接着点击“互连接口”图标,在随之出现的“互连接口”面板里,再点击“输入设备控制”图标,就出现了“输入设备控制”子面板,在这个子面板中可以找到这4个与手柄数据采集相关的VI。如图2。

图2 四个与电玩手柄数据采集相关的LabVIEW软件VI

下面是XBOX手柄的LabVIEW数据采集程序。

图3 XBOX手柄的LabVIEW数据采集程序

    图3所示LabVIEW程序中应用了一个平铺式顺序结构,它具有两个帧,每个帧分别包含一个while循环结构。平铺式顺序结构的帧按照从左至右的顺序执行。第一个帧里的while循环采用了一个“查询输入设备”VI,查询出目前正在使用的手柄输入设备索引号,如果电脑上插入了鼠标和键盘,那么再连接电玩手柄,电玩手柄的设备索引号就为2。

    在顺序结构的第二帧里,把查询出的索引号数字填入“初始化操纵杆”VI的设备索引端子,然后就可以通过while结构里的“输入设备采集”VI,获得手柄的5个轴的坐标,10个数位按键的布尔值和4个方向按键的角度值,并以簇数据类型显示在前面板上。在前面板上按下“STOP”按键,结束while循环,执行“关闭输入设备”VI。

图4 XBOX电玩手柄的LabVIEW前面板

    图4是XBOX手柄的LabVIEW数据采集程序前面板,用于人机交流。从前面板看到,只有把设备索引切换到2时,手柄的信息才能看到,模拟摇杆和推杆的轴总数是5,按键总数是10,视角POV单元数是1,设备名称是Controller。把手柄的左摇杆向Y轴正上方推到极限位置,按下“B”数位按键,同时再按下POV单元的右向按键,在前面板实时显示的手柄输入信息是:左摇杆Y axis值为-32768,button 2按键值为true,POV方向值为90(在图4用圆圈进行了标注)。

    LabVIEW软件采集到XBOX电玩手柄的操控数据,然后对这些数据进行提取和代数运算,产生的控制数据通过蓝牙无线通信传递给NXT机器人上的控制器,驱动NXT电机,使机器人执行指定动作。

 

2  XBOX手柄遥控乐高NXT机器人的LabVIEW程序设计

完整程序请下载(labview2010版):

XBOX_NXTcar.zip

    本文通过机械手小车抓取球形物体的任务,来介绍通过LabVIEW程序,XBOX手柄遥控NXT机器人的方法。该任务是:用手指向前或者向后拨动左摇杆,小车会前进或后退,若左摇杆向前拨动的同时,按下“B”按键,小车右向行驶,按下“X”按键,小车左向行驶。当小车上的机械手接近球形物体时,按下右摇杆按钮,机械手抓取物体,然后遥控小车把物体搬运到其它指定位置,再按下左摇杆按钮,机械手松开物体,完成任务。

实验实景图如下:

图5 实验全景图

完成上述任务的LabVIEW程序如下图所示:

图6  XBOX手柄遥控乐高NXT机器人程序

     程序中用到三个有关NXT机器人的VI,首先是“Specify NXT”VI,该VI指定了NXT控制器的名称以及Labview与NXT机器人的通讯方式。“Steering On”VI用于控制小车两驱动轮上的NXT电机,这两个NXT电机连线在NXT控制器B、C电机端子上。通过赋值给“Steering On”VI的“Power”端口,决定小车的行驶速度,赋值给“Steering”端口,决定小车转向的程度。“PolyMotor”VI用于驱动单个电机,这个电机连线在控制器的A端子上,控制机械手抓取或松开物体。

     上图程序中“输入设备采集”VI采用“按名称解除簇捆绑”函数把左摇杆“Y axis”模拟数据从“轴向信息”簇里提取出来。由于XBOX手柄的模拟摇杆将轴向分成65536个刻度,所以摇杆的正负向刚好是32768个刻度,除以327.68之后就可对应电机功率值的范围为-100~100,又由于小车如果速度太快,不方便遥控它来定位其机械手到球形物体,于是“Y axis”数据还需再除以3,以较小的功率值范围提供给“Steering On”VI的“Power”端口。(本文所说的功率值是针对NXT电机的功率程度值,100表示小车正方向满功率行使,0表示小车停止。-100表示小车负方向满功率行使。)

     从“按键信息”簇里提取四个按键信息,“button 2”指示的是“B”按键,“button 3”指示的是“X”按键,“button9”指示的是左摇杆按键,“button10”指示的是右摇杆按键。通过一个条件选择结构来判断,当按下“B”按键,就把数值60赋给“Steering On”VI的“Steering”端口,小车右向行驶,当按下“X”按键,赋值-60,小车左向行驶,若两按键松开,赋值0,小车直行。程序中另一个条件判断结构,用来选择给 “PolyMotor”VI的端口赋值不同的参数,当按下右摇杆按键,A端子的电机驱动机械手抓取物体,当按下左摇杆按键,则机械手松开物体。

    整个程序包裹在一个循环结构里面,每100ms时间,程序循环执行一次,直到按下软件菜单里的“中止执行”图标,程序强行结束。

LabVIEW与NXT控制器有两种执行模式,一种是在线模式,另一种是离线模式。在线模式下,程序逻辑在PC机上运行,并通过USB或蓝牙发控制命令给NXT控制器,控制器仅是命令的执行者,程序并没有下载到控制器里。而离线模式下,需要下载程序到NXT控制器,然后在控制器里运行程序,不需要PC机干预。

    程序界面的左下角有个“在线模式与离线模式切换”选项,右击选项,出现快捷菜单,从中选择在线模式或离线模式。选择“主应用程序实例” 选项,则处于在线模式,选择“NXT [Bluetooth]”,则处于离线模式。

    不管是在线模式和离线模式,必须首先建立起LabVIEW软件与NXT控制器的通信连接。插入蓝牙适配器到PC机USB插槽,windows XP操作系统的右下边任务栏会出现蓝牙图标,点击这个图标,出现windows自带的蓝牙程序窗口,通过该程序添加蓝牙设备,然后选择下图的“查找NXT…”选项,建立起LabVIEW软件与NXT控制器的通信连接。

图7 蓝牙通信建立和在线控制模式的选择

    由于NXT控制器的运算速度和内存空间有限,LabVIEW的许多VI并不支持离线模式,所以XBOX手柄通过LabVIEW软件遥控NXT机器人是采取在线控制模式。

 

    乐高NXT机器人套件是由丹麦乐高公司和美国麻省理工学院的媒体实验室以及国家仪器公司(NI)等共同开发的一种可编程机器人积木套件。自1998年上市以来,便受到国外教育和科研机构的广泛关注, 乐高NXT套件已经被全球25000个以上的机构采用,应用于教学、科研和工业产品原型开发。这个套件将模型搭建与机器人编程有效地结合,使用户可以设计和制造自己的机器人,套件自带的软件是NXT-G软件,它是以国家仪器公司的LabVIEW软件为核心架构的,NXT-G软件界面简单易懂,但要进行复杂功能的程序开发,还需采用更高阶的开发平台,如NI公司的LabVIEW或微软的MSRDS。NI公司已在2009年推出LabVIEW的LEGO MINDSTORMS NXT组件,用户现在可以在LabVIEW软件平台上,开发及实现功能更强及更完整的NXT机器人程序。本文就是借助安装了LEGO MINDSTORMS NXT组件的LabVIEW软件,实现了微软XBOX电玩手柄遥控NXT机器人。


关键字:Labview  微软XBOX  电玩手柄  遥控乐高机器人 引用地址:基于Labview用于微软XBOX电玩手柄遥控乐高机器人

上一篇:用LabVIEW前面板遥控乐高NXT机械手车
下一篇:LabVIEW之破解VI密码

推荐阅读最新更新时间:2024-03-30 23:33

LabVIEW中测试测量数据的存储(6)
接着介绍LabVIEW中的另外两种文件格式。首先是Bytestream。 这个文件格式说穿了就是二进制文件。就两个VI,分别是读和写。基本支持LabVIEW中的任何类型的数据。只要你在LabVIEW中能造出的数据,都可以用这种文件格式存储。可以猜测,其实这两个VI做的事情也比较简单,直接把LabVIEW在内存中的这部分数据写到文件中就行了,当然这样做的话,效率也比较高,因为没什么运算的步骤。但是也有部分缺点,比如直接把数据写到文件中也不见得好,真正的问题是如何管理这些数据。例如,读文件的时候也需要知道究竟这些文件存储了什么类型的数据,究竟存储在文件的什么位置等等。 总的来说,如果用户追求纯
[测试测量]
基于LabVIEW与单片机串口的数据采集系统
1LabVIEW部分设计 1.1VISA简介 LabVIEW提供了功能强大的VISA库。VISA(Virtual Instrument Software Architecture)——虚拟仪器软件规范,是用于仪器编程的标准I/O函数库及其相关规范的总称。VISA库驻留于计算机系统中,完成计算机与仪器之间的连接,用以实现对仪器的程序控制,其实质是用于虚拟仪器系统的标准的API。VISA本身不具备编程能力,它是一个高层API,通过调用底层驱动程序来实现对仪器的编程,其层次如图1所示。VISA是采用VPP标准的I/O接口软件,其软件结构包含三部分,如图2所示。 与其他现存的I/O接口软件相比,VISA的I/O控制功能具有如下几个特
[测试测量]
基于<font color='red'>LabVIEW</font>与单片机串口的数据采集系统
LabVIEW环境下基于虚拟仪器技术的应变测量
  0 虚拟仪器技术与LabVIEW   虚拟仪器技术是利用高性能的模块化硬件,结合高效灵活的软件完成各种测试、测量和自动化的应用。虚拟仪器技术具有性能高,扩展性强,开发时间少及出色的集成能力等优势。基于虚拟仪器技术可以开发适应不同应用场合的虚拟仪器测试方案,更好地组建自动化程度较高,数据处理分析能力较强的测试系统口。Lab- VIEW是一个具有革命性的图形化开发环境,内置信号采集、测量分析与数据显示功能,摒弃了传统开发工具的复杂性,在提供强大功能的同时,还保证了系统的灵活性;LabVIEW将广泛的数据采集、分析与显示功能集中在同一个环境中,可以在自己的平台上无缝地集成一套完整的应用方案Ⅲ。正因为具有如此巨大的优点,使它成为建立
[模拟电子]
基于LabVIEW的电子式互感器校验系统设计
1.前言 随着数字化变电站和智能电网建设步伐的加快,电子式互感器得到了迅速的发展。 电子式互感器包括电子式电流互感器和电子式电压互感器两种。为了保证电子式互感器的准确度,确保系统安全、稳定,需要对互感器进行校验。电子式互感器校验系统用来对电子式互感器的比差和角差进行校验。 与传统互感器相比,电子式互感器在测量原理、结构和输出信号的方式上发生了根本的变化,其校验原理和方法与传统互感器校验原理和方法完全不同,因此传统互感器的校验方法不能应用到电子式互感器的校验中。 LabVIEW 是一种图形化的编程语言(G语言),区别于传统的文本式的编程语言,它将各种功能封装成函数模块,能够快速建立系统的图形用户界面,具有开发效率高,开发周期
[电源管理]
基于<font color='red'>LabVIEW</font>的电子式互感器校验系统设计
基于LabVIEW的汽车燃油泵性能测试检测系统
摘要 针对汽车电动燃油泵手工检测操作不便,数据精度、效率低等问题,以某款汽车燃油泵为研究对象,研制一种基于LabVIEW环境和数据采集卡的汽车电动燃油泵性能测试系统。该系统通过NI—USB 6210数据采集卡采集燃油压力、燃油流量、油泵工作电压和工作电流等参数,以LabVIEW编制的上位机界面实现控制参数的设定、油泵性能评价、数据显示、存储、历史记录查询等功能。实验结果表明,该系统的测试时问较传统检测方法缩短了90%以上,燃油泵性能的测试精度和检测效率均有大幅提高。 电动燃油泵是汽车发动机燃油供给系统中的关键部件,其作用是提供足够的燃油压力和流量,满足发动机各种工况对燃油的要求。燃油泵性能的好坏直接影响发动机的工作性能,因而必须
[测试测量]
基于<font color='red'>LabVIEW</font>的汽车燃油泵性能测试检测系统
基于LabVIEW的相关滤波器的设计
  1 引言   在目前的测试领域中,越来越广泛地利用相关检测的方法进行滤波。利用相关滤波可以方便地从复杂的待测信号(包括有用信号、直流偏置、随机噪声和谐波频率成分等)中分离出某一特定频率的信号。在数字技术迅速发展以后,相关滤波也经常利用A/D板对信号采样后,在计算机中实现,成为数字滤波的一种形式。本文设计了一种实现相关滤波的方法,这是相关分析在测试技术中的一个典型应用。图l所示为相关滤波器的典型框图。   Labview是美国国家仪器公司推出的一种基于“图形”方式的集成化程序开发环境,是目前国际上惟一的编译型图形化编程语言。在以PC机为基础的测量和工控软件中,Labview的市场普及率仅次于C++/C语言。Labview开发环
[测试测量]
使用NI LabVIEW令“20岁”的机器人恢复活力
Author(s): Jonas Neubert - Imperial College London Industry: Research Products: CompactRIO, FPGA Module, Real-Time Module The Challenge: 为已经丢失控制器的20岁工业机器人替换新的控制器,并对其进行扩展,使之具有现代机器人控制软件中的典型功能。创建可通过直观图形化用户界面(GUI)操作的、适于本科生实验课程的系统。 The Solution: 使用NI CompactRIO控制器作为机器人驱动器和编码器与LabVIEW 8.5软件、 比例-积分-微分(PID)工具箱、3D图像渲染和
[测试测量]
使用NI <font color='red'>LabVIEW</font>令“20岁”的<font color='red'>机器人</font>恢复活力
LabVIEW 8.2中的几何操作
  本节将着重介绍LabVIEW 8.2中的几何操作。几何操作节点位于函数选板的 数学 几何 ,如图所示。   如图 几何子选板   如表详细列出了几何子选板中函数和VI节点的图标、接 线端 、名称和功能。   如表 几何子选板节点   几何操作中的转换类型的值及对应类型如表所示。   如表 转换类型的值及对应类型
[测试测量]
<font color='red'>LabVIEW</font> 8.2中的几何操作
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved