Arduino和LabVIEW+LINX的互动应用

2014-09-06 10:50俞新农俞健雄
单片机与嵌入式系统应用 2014年11期
关键词:工具包固件图形化

俞新农,俞健雄

(江苏林海动力机械集团公司技术中心 泰州市质检所, 泰州 225300)



Arduino和LabVIEW+LINX的互动应用

俞新农,俞健雄

(江苏林海动力机械集团公司技术中心 泰州市质检所, 泰州 225300)

上位机使用LabVIEW软件,下位机使用Arduino控制板,借助于LabVIEW Hacker LINX工具包,可以很方便地使用LabVIEW软件与Arduino控制板实现交互设计。把这个工具包和LabVIEW软件结合起来,通过LabVIEW软件就可以实现对Arduino控制板的控制或者与Arduino控制板交换数据,并且Arduino控制板只需写入固件(Firmware),不需要用户编应用程序。由于LINX只需要对LabVIEW图形化编程,而无需Arduino编程,甚至不需要底层硬件知识,因此适合了解LabVIEW编程而不懂Arduino编程的使用者。

Arduino;LabVIEW;LabVIEW Hacker;LINX

引 言

Arduino是一块基于开放源代码的USB接口Simple I/O接口板(包括12通道以上的数字GPIO,4通道以上的PWM输出,6~16通道10位 ADC输入通道),具有使用类似Java、C语言的IDE集成开发环境。

LabVIEW(Laboratory Virtual Instrumentation Engineering Workbench,实验室虚拟仪器工程平台)是由美国国家仪器公司开发的图形化程序编译平台,发明者为杰夫·考度斯基(Jeff Kodosky),程序最初于1986年在苹果电脑上发表。目前可支持Windows、UNIX、Linux、Mac OS等操作系统。由于LabVIEW特殊的图形程序简单易懂的开发接口,缩短了开发原型的时间且方便日后的软件维护,因此逐渐受到系统开发及研究人员的喜爱。

LabVIEW Hacker LINX Toolkit是https://www.labviewhacker.com论坛为Arduino开发的接口工具包。借助于这个工具包,可以很方便地使用LabVIEW软件与Arduino控制板实现交互设计。把这个工具包和LabVIEW软件结合起来,通过LabVIEW软件就可以实现对Arduino控制板的控制或者与Arduino控制板交换数据,并且Arduino控制板只要写入固件(Firmware)而不需要用户编写应用程序。

1 LVH LINX特点

LINX最大的优点在于,内置有数百个库提供给开发者使用。当Arduino与LabVIEW连接之后,就可以使用LabVIEW中数千个内置的库来开发新的程序算法从而控制Arduino硬件,而且构建UI(人机交互界面)也非常容易,适合于初入门的新手使用。同时,LINX支持Arduino控制板通过USB、串口、网络(有线或无线)、蓝牙或XBee等接口的形式与电脑上的LabVIEW进行连接。

图2 下位机烧录固件(Firmware)程序

目前,LINX支持LabVIEW2011及更高版本,提供的函数库中传感器有加速度、实时时钟、热敏电阻、光敏电阻、8段数码管、RGB发光管和超声波测距等。在LabVIEW中使用打开、读写、关闭等库函数,就可以实现对Arduino控制板的数字、模拟、脉宽调制PWM、I2C、SPI信号的读取与控制。只需要将固件(Firmware)对应的Arduino程序烧写进Arduino控制板,然后使用LabVIEW编写上位机软件,即可实现Arduino与LabVIEW的连接。LINX不仅支持Arduino Uno、MEGA 1280、MEGA 2560、Leonardo、Due、Yun、Nano、Pro、Pro Mini和Fio控制板,还支持NI公司的myRIO-1900、myRIO-1950控制板和Digilant公司的chipKIT Uno32、uc32、Max32、WF32控制板。该LINX已经正式取代LIFA(LabVIEW Interface For Arduino),但还不能开发Arduino控制板的中断等,存在一定的局限性。

2 开发平台的安装

2.1 上位机软件安装

要想利用LINX函数库来实现LabVIEW软件与Arduino控制板的交互,上位机需要安装3个软件:

① 安装2011及以上版本的LabVIEW软件。

② 安装与LabVIEW软件配套的VISA插件。LabVIEW软件和VISA插件可以在NI网站上下载,本文使用LabVIEW 2012和VISA 5.12。

③ 安装VI Package Manager软件,下载地址为http://jki.net/vipm。

下面主要讲解如何安装LVH LINX插件。首先,需要安装VI Package Manager软件,安装完成之后,启动VI Package Manager软件,在窗口界面中找到LVH LINX,单击 Install &Upgrade Packages 按钮,如图1所示。

图1 安装LVH LINX插件

下一步单击 Continue按钮,再下一步单击Yes按钮,选择I accept these license Agreement(s) Install Packages。等待软件下载完成,最后单击Finish按钮。

在图1窗口界面中选中LVH Toolbox,单击 Install &Upgrade Packages 按钮,用同样的方法安装LVH Toolbox。

2.2 下位机软件安装

完成LVH LINX和LVH Toolbox工具包的安装之后,就可以使用USB电缆将Arduino 与LabVIEW进行连接,然后将固件(Firmware)程序烧录进下位机Arduino控制板中。在计算机上打开LabVIEW2012软件,烧录过程如图2所示。

选择“工具(T)”→LabVIEW Hacker→LINX→LINX Firmware Wizard…。有一块Ardiuno Uno 控制板,USB转串口,单击Next按钮,如图3所示。

图3 给Ardiuno Uno控制板烧录固件(Firmware)程序

在控制面板-设备管理器中,可以查到Ardiuno Uno串口号为COM4。下一步选择相应的串口号,单击Next按钮。下一步再单击Next按钮,等待烧录完成,单击Finish 按钮。

3 应用实例

3.1 设计应用程序

该实例用户能在上位机上控制Arduino Uno控制板上的数字量输出口,如控制连在输出口的LED灯亮或灭;同时能在上位机上读取Arduino Uno控制板上模拟量输入口的数据,并实时显示波形图。打开LabVIEW 2012软件,新建VI。输入图形化程序见图4,前面板如图5所示。

图4 实例的图形化程序

图4中标有LINX的5个函数为LVH LINX库函数,其余为LabVIEW控件或函数。

① 初始化,打开与Arduino Uno控制板的连接,用USB转串口方式,也可以用TCP/IP网络方式连接(Arduino Uno需要连网卡)。

② 控制Arduino Uno控制板数字量输出口输出函数。

③ 读取Arduino Uno控制板上模拟量输入口输入函数。

④ 关闭与Arduino Uno控制板的连接。

⑤ 计算while循环的频率。

⑥ 处理发生的错误。

3.2 运行程序

在程序运行前,先要选定串口号为COM4,数字量输出口为13,模拟量输入口为0。运行程序后,单击“LED按键”就能看见Arduino Uno板输出13口上的LED灯亮或灭;同时实时显示模拟量输入0口电压波形图,效果如图5 所示。

图5 实例的前面板

结 语

[1] LVH LINX[EB/OL].[2014-04-27]. http://www.labviewhacker.com/doku.php?id=libraries:linx:linx.

俞新农(高级工程师、国务院特殊津贴中青年专家),从事工业自动化、嵌入式应用系统研究;俞健雄(硕士研究生),从事生物化学生物分子学、微生物检测等研究。

(责任编辑:芦潇静 收修改稿日期:2014-06-09)

Interactive Application Based on Arduino and LabVIEW+LINX

Yu Xinnong, Yu Jianxiong

(Product Quality Supervising and Inspecting Institute of Taizhou City,R&D of Jiangsu Linhai Power Machinery Group Corp.,Taizhou 225300,China)

When host computer uses LabVIEW and lower computer uses Arduino control plate, it is quite easy to make use of LabVIEW and Arduino control plate to realize the interactive design by LabVIEW Hacker LINX toolkit. Combining the toolkit and LabVIEW, control of Arduino control plate or data exchange with Arduino control plate can be implemented via LabVIEW so long as Arduino is written in Firmware. Because nothing but LabVIEW graphical programming is needed by LINX,LINX is suitable for the users who know about LabVIEW programming and do not understand Arduino programming.

Arduino;LabVIEW;LabVIEW Hacker;LINX

TP368

A

猜你喜欢
工具包固件图形化
慢性病健康工具包研究进展
谷歌云与Digital Asset合作推出区块链工具包
LKJ自动化测试系统图形化技术研究
基于SHA1的SCADA系统PLC固件完整性验证方法
运用MATLAB软件求解高中数学中的线性和非线性规划问题
基于UEFI固件的攻击验证技术研究*
基于固件的远程身份认证
提取ROM固件中的APP
建议为基层站点配备软硬件“工具包”
图形化地区电网无功优化软件开发与应用