引言
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进行连接。
目前,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公司的myRIO1900、myRIO1950控制板和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所示。
图2 下位机烧录固件(Firmware)
选择“工具(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 实例的前面板
结语
采用本文介绍的方法构建的虚拟仪器,已成功应用于发动机、摩托车以及微生物实验检测中。LabVIEW软件原装的接口卡至少几千元,而Arduino Uno开源板不到40元。只要选择适合的传感器,设计应用系统就会非常方便而且高效,值得在测控行业中推广。