写点什么

LabVIEW 和 Arduino 的巧妙结合(基础篇—1)

  • 2022 年 5 月 27 日
  • 本文字数:1753 字

    阅读完需:约 6 分钟

LabVIEW和Arduino的巧妙结合(基础篇—1)

本篇博文将开启第四个 LabVIEW 系列专栏,也是目前确定的最后一个关于 LabVIEW 技术的专栏:LabVIEW 和单片机。在前三个专栏分享介绍了:

1、基础篇:LabVIEW开发技巧

2、工控篇:LabVIEW仪器控制

3、视觉篇:LabVIEW图像处理和机器视觉

本专栏使用的单片机为:Arduino(本系列专栏使用 Arduino UNO 控制器),主要原因在于,Arduino 简单易上手,老少皆宜,受众面广泛,使用 Arduino 作为下位机,LabVIEW 作为上位机,独立开发者可以快捷开发出一套软硬件联控的演示系统。

​1、安装 LabVIEW Interface for Arduino Toolkit 工具包

LabVIEW 中有专业的接口工具包实现和 Arduino 进行联控:LabVIEW Interface for Arduino Toolkit。

LabVIEW Interface for Arduino Toolkit 是 NI 公司(美国国家仪器公司)为 Arduino 开发的接口工具包,借助于这个工具包,可以很方便地使用 LabVIEW 软件与 Arduino 控制器实现联合开发。把这个工具包和 LabVIEW 软件结合起来,通过 LabVIEW 软件就可以实现对 Arduino 控制器的控制或者与 Arduino 控制器交换数据。

LabVIEW Interface for Arduino Toolkit 最大的优点在于内置有数十个 NI 公司开发的库,提供给开发者使用,当 Arduino 与 LabVIEW 连接之后,就可以使用 LabVIEW 中数十个内置的库来开发新的程序算法来控制 Arduino 硬件,而且构建 UlI(人机交互界面)也非常容易,适合于新手使用。同时,LabVIEW Interface for Arduino 支持 Arduino 控制器通过 USB、串口、蓝牙或 XBee 等接口的形式与计算机的 LabVIEW 进行连接。

LabVIEW Interface for Arduino Toolkit 工具包的安装非常简单,在 VI Package Manager,搜索 LabVIEW Interface for Arduino 就可以进行安装,如下所示:

​当 LabVIEW 安装 LabVIEW Interface for Arduino 工具包之后,在前面板和程序框图中的函数栏目中就会出现 Arduino 控件和操作函数库。

Arduino 控件包含模拟 IO、数字 I/O、Pin Mode、Board Type 和连接方式等,如下图所示:

操作函数库包含有 Arduino INIT、Arduino CLOSE、Low Level、Sensors、Examples 等,如下图所示。其中,Arduino INIT 和 Arduino CLOSE 是每个程序必备的,即与 Arduino 控制器建立连接,完成对 Arduino 预先设定的操作之后,断开与 Arduino 控制器的连接,释放 Arduino 控制器的串口资源。

​程序面板函数库

另外,Low Level 为 Arduino 初级应用,Sensors 为经过封装的传感器函数库,Examples 包含有大量的应用示例。由于 Sensors 和 Example 是将 Low Level 函数封装构建成的函数库,所以使用较为方便,但是其兼容扩展性不如 Low Level 好。

2、LabVIEW Interface for Arduino Toolkit 工具包的使用

本小节主要讲解 Arduino lNIT、Arduino CLOSE、Low Level 以及 Sensors 中部分函数库的使用。

2.1、Arduino INIT 函数节点

Arduino INIT 函数节点如下图所示:

输入参数有 VISA resource、波特率、Arduino 板的类型、连接方式(USB/Serial),输出参数为 Arduino 资源号,提供给后续函数对 Arduino 进行操作。它的功能是连接 Arduino 控制器,以使得 Arduino 板进入受 LabVIEW 控制的状态。除了 VISA 之外,其他的输入参数可以不给定,即使用默认参数,波特率 115200,Arduino Uno 板,USB/Serial 连接方式,每个包 15 个字节。

2.2、Arduino CLOSE 函数节点

Arduino CLOSE 函数节点如下图所示:

​输入参数为 Arduino 资源号,只有错误输出。其功能是断开 Arduino 与 LabVIEW 的连接,释放 Arduino 控制器的串口资源。

2.3、Low Level 函数库

Low Level 函数库包含:模拟输入、数字 IO 配置、数字输入、数字输出、PWM 输出(模拟输出)、Tone、I2C、SPI、模拟采样功能,如下图所示:

​其中,模拟输入、数字输出、数字输出和 PWM 输出分为管脚和端口两种,端口操作适用于需要多个 IO 管脚进行操作的情况。

2.4、Sensors 函数库

Sensors 函数库中包含:热敏电阻、光敏电阻、RGB、数码管、红外、舵机、步进电机和液晶显示等功能,如下图所示:

3、烧录 Arduino 固件

将 Arduino 作为下位机时,需要烧录 LIFA_Base.ino,可在安装工具包路径下找到,例如该文件在我的电脑位于:

D:\National Instruments\LabVIEW 2020\vi.lib\LabVIEW Interface for Arduino\Firmware\LIFA_Base
复制代码


​使用 Arduino IDE 打开该文件,编译并下载到 Arduino 单片机中,完成固件烧录。



使用LINX替代LIFA进行Arduino和Labview的互动实验-Arduino中文社区 - Powered by Discuz!

使用面向Arduino的LabVIEW接口报5003错误:发生超时 - NI

发布于: 刚刚阅读数: 3
用户头像

【研究方向】物联网、嵌入式、AI、Python 2018.02.09 加入

嵌入式工程师,创客爱好者,公众号:美男子玩编程,全网粉丝10万+,软著专利10余项。 CSDN博客专家、微软MVP、华为云云享专家、阿里云专家博主、知乎认证科学技术领域答主。

评论

发布
暂无评论
LabVIEW和Arduino的巧妙结合(基础篇—1)_单片机_不脱发的程序猿_InfoQ写作社区