糊涂塔克学习笔记02 Arduino+Labview(上)

最近在学习用上位机控制Arduino,之前也看到论坛里有朋友讨论这个话题,主要有两种方法,一种是Processing,一种是Labview。



(虽然有大大吐槽Labview控制Arduino有点大材小用,不过我用下来的确很好用,和大家分享一下)



Labview控制Arduino有2种方法都可以尝试,先来说比较简单的一种——Labview Interface for Arduino。这个是Labview官方为Arduino开发的一个界面,这个界面的优点:


  1. 容易上手,官方提供了很多已经编好的函数,你只需要知道Labview的基本编程语言(G语言)就可以轻松编写程序;
  2. 不需要写Arduino端的程序,只需要在Labview端编好程序就可以用了;



    当然他也有一些小缺点:


  3. 官方提供的函数毕竟还是有限,目前能控制的传感器有:热敏电阻,光敏电阻,8段数码管,RGB发光管,舵机等等
  4. 因为Arduino端不需要编写程序(其实是需要把一个官方函数对应的程序全部烧进Arduino,这个我后面会说)所以如果用到的传感器没有官方函数,就没法搞了。其实就是没有太多的可扩展性。



    那现在我们来看看怎么安装这个Labview Interface for Arduino。

    (参考的官方教程:https://decibel.ni.com/content/docs/DOC-15971)



    一、准备
  5. 需要一块Arduino Uno开发板或者Arduino 2560开发板,这个是这个开发界面默认的开发板。

ArduinoUno_r2_front450px_1.jpg

2012-6-20 10:31 上传
(46.7 KB)

ArduinoMegaFront_1.jpg

2012-6-20 10:31 上传
(50.57 KB)




  1. 安装Labview,最新版的Labview 2011 可以去NI的官方网站上下载 http://www.ni.com/trylabview/ 你能下载到的是一个30天的试用版,当然如果想永久使用的话~~自己想办法,我是不会告诉你网上有破解补丁的。


  2. 你安装好Labview后需要安装一个叫Visa的Labview插件,这个插件的功能是管理串口,Labview与Arduino之间的通讯全靠这个插件完成。

    Windows Download

    Linux Download

    Mac Download


  3. VISA安装好后,我们开始安装Labview Interface for Arduino, 安装这个需要用到另外一个软件叫 JKI VI Package Manager (VIPM) Community Edition (free)



    (1) 我们去这个网站VIPM Download 点击:

捕获.PNG

2012-6-20 10:37 上传
(5.93 KB)





(2) 把这个软件下载下来,安装好后启动VIPM

捕获1.PNG

2012-6-20 10:39 上传
(220.16 KB)





(3) 在窗口界面中找到Labview Interface for Arduino

捕获2.PNG

2012-6-20 10:42 上传
(99.11 KB)





(4) 点击 Install &Upgrade Packages 按钮

捕获3.PNG

2012-6-20 10:43 上传
(97.85 KB)





(5) 点击 Continue 然后等一会儿等他下载完

捕获4.PNG

2012-6-20 10:44 上传
(117.71 KB)





(6) 点击 Finish

捕获5.PNG

2012-6-20 10:45 上传
(95.36 KB)




  1. 现在我们把该安装的东西都安装好了,我们进行Arduino UNO板和PC的连接



    (1) 去Arduino官网下一个最新的IDE(最好是1.0版本以上的,里面有UNO的USB串口驱动)http://arduino.cc/en/Main/Software



    (2) 把IDE解压到 C:\Program Files.



    (3) 把你的Arduino UNO 板用USB连接线连上PC



    (4) Windows会尝试着去识别UNO,但Windows这么弱的系统当然是识别不出来的(Mac和Linux就可以),这就需要我们手动去加载驱动程序。

捕获7.PNG

2012-6-20 11:00 上传
(77.38 KB)





(5) 点击更新驱动程序

捕获8.PNG

2012-6-20 11:05 上传
(45.97 KB)





(6) 选择浏览计算机以查找驱动程序软件

捕获9.PNG

2012-6-20 11:07 上传
(53.57 KB)





(7) 选择路径为: C:\Program Files\arduino_1.xx\drivers

捕获10.PNG

2012-6-20 11:08 上传
(60.31 KB)





(8) 点击下一步



(9) 点击关闭

捕获11.PNG

2012-6-20 11:09 上传
(40.5 KB)





(10) 现在你就可以在你的设备管理器里的端口(COM和LPT)里找到你的UNO了

捕获12.PNG

2012-6-20 11:10 上传
(92.92 KB)




  1. 很好,我们现在成功安装好了UNO,我们可以开始把Labview写的官方Arduino程序烧进UNO里了

    (这个程序里有Labview Interface for Arduino里的函数所需要用到的所有Arduino指令,不过这也使Arduino只能完成那些Labview函数的功能,干不了别的)



    文件的地址:......\LabVIEW 2011\vi.lib\LabVIEW Interface for Arduino\Firmware\LVIFA_Base\LVIFA_Base.pde



    恭喜你,前期的准备工作终于完成了!!





    二、让我们来实际做一个例程


  2. 让我们打开Labview 2011

捕获13.PNG

2012-6-20 11:26 上传
(274.49 KB)





对于第一次接触Labview的人(比如2个星期前的我)可以先看一下软件自带的Labview入门指南,还有就是查找范例里自带的大量例程,这能帮助你快速起步(别去图书馆借什么Labview的书,那个效率太低了)


  1. 现在我们就来用热敏电阻和Arduino做一个简单的温度计,用Labview来显示读取的温度,点击主界面上的 VI

捕获13.PNG

2012-6-20 11:30 上传
(275.22 KB)




  1. 这个时候我们就看到了Labview的界面,界面由两部分组成——前面板和程序框图。前面板是以后仪器的主界面,程序框图是你编程的地方,旁边还有3个工具栏分别是——工具、函数和控件

主界面.jpg

2012-6-20 11:46 上传
(167.32 KB)





稍微需要解释一下的是程序框图里主要用到的事各种函数,前面板里主要用到的各种控件(比如数值输入,按钮,图表)


  1. 选中程序框图,我们开始编一个小程序,Arduino先要做的一件事是初始化,我们在函数工具箱里找到Arduino-->Init这个函数

捕获18.PNG

2012-6-20 11:51 上传
(124.19 KB)





点击一下,然后把他拖到程序框图里

捕获19.PNG

2012-6-20 11:54 上传
(138.81 KB)




  1. 初始化之后我们需要用一个函数来读取热敏电阻的温度值,在函数工具箱里找到Arduino-->Sensors-->Thermistor Read

捕获20.PNG

2012-6-20 11:59 上传
(126.82 KB)





同样把这个函数拖到程序框图里


  1. 最后我们需要一个函数作为结束,在函数工具箱里找到Arduino-->Close这个函数

捕获21.PNG

2012-6-20 12:05 上传
(120.82 KB)





把他拖到程序框图里


  1. 一般在Labview里还需要一个报错的函数,这个函数在编程-->对话框与用户界面-->简易错误处理器,我们把他拖过去。

捕获22.PNG

2012-6-20 12:09 上传
(131.02 KB)




  1. 很好,我们选择好主要的函数后我们需要给程序加一个结构,在Arduino里我们的主程序都是在一个void loop的函数下的,这个函数其实就是一个循环,所以我们现在要给程序框图里加一个While循环结构,这个结构可以在函数工具箱里 编程-->结构-->While 循环 找到。我们用While循环把Thermistor Read这个函数框起来,让他不断去读热敏电阻的值。

捕获23.PNG

2012-6-20 12:14 上传
(128.51 KB)




  1. 这样子主要的函数和程序结构就建立好了,接下来我们要给函数加入输入输出控件,Labview的帮助菜单下有一个显示即时帮助是初学者的好帮手,我们可以直接用这个去看这个函数到底功能是什么,需要什么输入输出控件。我们把他打钩,然后点击程序框图里的Thermistor Read就可以知道这个函数的详细信息。

捕获24.PNG

2012-6-20 12:20 上传
(175.81 KB)





根据这个帮助的提示,我们开始给这个函数加入输入控件

(1) 模拟输入的Pin口(我们选01号模拟输入口)

(2) 串联了一个多大的电阻(我们选择10000欧姆的电阻)



以及输出控件

(1) 输出温度



以及常量

(1) Vcc电压(5V)



加参数的方法是,先在主工具箱里选择进行连线

未命名.JPG

2012-6-20 13:42 上传
(7.61 KB)





然后把鼠标移到Thermistor Read 函数上会发现他左右上下多出来很多各种颜色的点点,找到其中蓝色的点,把鼠标放上去,程序会自动提示这个接口的意义

未命名2.JPG

2012-6-20 13:43 上传
(10.23 KB)





然后点鼠标右键,拉出下拉菜单,选择创建-->输入控件

未命名3.JPG

2012-6-20 13:44 上传
(23.38 KB)





这样程序就会加入一个对应接口的输入控件,如图

未命名4.JPG

2012-6-20 13:45 上传
(11.24 KB)





同样的方法,我们可以根据这个函数的描述,把各个输入控件,输出控件和常量加入进去



把控件全部加入好之后是这个样子的:

未命名5.JPG

2012-6-20 13:10 上传
(22.26 KB)





10.加入完控件后编程就进入尾声了,最后我们需要做的只是把 Arduino Resource(粉色) 和 error(土黄色) 这两条线连起来,我们的程序就编完了。

未命名6.JPG

2012-6-20 13:18 上传
(28.75 KB)




  1. 程序编完后,我们回到前面板,在前面板里我们看到Labview自动帮我们加了2个输入框(输入模拟Pin口和电阻值)和一个显示口(显示温度)

未命名7.JPG

2012-6-20 13:20 上传
(95.78 KB)




  1. 美术好的朋友可以对前面板做一下美化,让这个界面更好看一些

未命名8.JPG

2012-6-20 13:22 上传
(40.16 KB)




  1. 最后我们根据硬件图,把电路搭起来

未命名9.JPG

2012-6-20 13:23 上传
(31.75 KB)




  1. 搭好后点击前面板左上方的运行按钮,你的小仪器就开始工作了~~

未命名8.JPG

2012-6-20 13:25 上传
(40.02 KB)





本章小结:这次的学习笔记参考了网上的很多资料,把他们整理在了一起,差不多是从一开始什么都不知道到最后能编一个小仪器所需要的资料都在里面了,有什么不明白的请在回帖里提问,可能我还有什么没有写清楚的地方。这次教的这个例程在官方的案例库里面有,叫Arduino Thermist Read 如果有什么问题也可以直接去看那个案例。最后这个只是Arduino与Labview通信的一个方法,还有一个方法扩展性更好一些,我过两天再来写,谢谢大家
via - 极客工坊

标签: Arduino教程