最近在學習用上位機控制Arduino,之前也看到論壇裡有朋友討論這個話題,主要有兩種方法,一種是Processing,一種是Labview。
(雖然有大大吐槽Labview控制Arduino有點大材小用,不過我用下來的確很好用,和大家分享一下)
Labview控制Arduino有2種方法都可以嘗試,先來說比較簡單的一種——Labview Interface for Arduino。這個是Labview官方為Arduino開發的一個界面,這個界面的優點:
1. 容易上手,官方提供了很多已經編好的函數,你只需要知道Labview的基本程式語言(G語言)就可以輕鬆編寫程序;
2. 不需要寫Arduino端的程序,只需要在Labview端編好程序就可以用了;
當然他也有一些小缺點:
1. 官方提供的函數畢竟還是有限,目前能控制的傳感器有:熱敏電阻,光敏電阻,8段數碼管,RGB發光管,舵機等等
2. 因為Arduino端不需要編寫程序(其實是需要把一個官方函數對應的程序全部燒進Arduino,這個我後面會說)所以如果用到的傳感器沒有官方函數,就沒法搞了。其實就是沒有太多的可擴展性。
那現在我們來看看怎麼安裝這個Labview Interface for Arduino。
(參考的官方教程:https://decibel.ni.com/content/docs/DOC-15971)
一、準備
1. 需要一塊Arduino Uno開發板或者Arduino 2560開發板,這個是這個開發界面默認的開發板。
2. 安裝Labview,Labview 2011 可以去NI的官方網站上下載 http://www.ni.com/trylabview/ 你能下載到的是一個30天的試用版,當然如果想永久使用的話~~自己想辦法,我是不會告訴你網上有破解補丁的。
3. 你安裝好Labview後需要安裝一個叫Visa的Labview插件,這個插件的功能是管理串口,Labview與Arduino之間的通訊全靠這個插件完成。
Windows Download
http://download.ni.com/support/softlib/visa/NI-VISA/5.1.2/win/visa512full.exe
Linux Download
http://joule.ni.com/nidu/cds/view/p/id/2040/lang/en
Mac Download
http://joule.ni.com/nidu/cds/view/p/id/2039/lang/en
4. VISA安裝好後,我們開始安裝Labview Interface for Arduino, 安裝這個需要用到另外一個軟體叫 JKI VI Package Manager (VIPM) Community Edition (free)
(1) 我們去這個網站http://jki.net/vipm 點擊:
(2) 把這個軟體下載下來,安裝好後啟動VIPM
(3) 在窗口界面中找到Labview Interface for Arduino
(4) 點擊 Install &Upgrade Packages 按鈕
(5) 點擊 Continue 然後等一會兒等他下載完
5. 現在我們把該安裝的東西都安裝好了,我們進行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就可以),這就需要我們手動去加載驅動程序。
(5) 點擊更新驅動程序
(6) 選擇瀏覽計算機以查找驅動程序軟體
(7) 選擇路徑為: C:\Program Files\arduino_1.xx\drivers
(8) 點擊下一步
(9) 點擊關閉
(10) 現在你就可以在你的設備管理器裡的埠(COM和LPT)裡找到你的UNO了
6. 很好,我們現在成功安裝好了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
恭喜你,前期的準備工作終於完成了!!
二、讓我們來實際做一個例程
1. 讓我們打開Labview 2011
對於第一次接觸Labview的人(比如2個星期前的我)可以先看一下軟體自帶的Labview入門指南,還有就是查找範例裡自帶的大量例程,這能幫助你快速起步(別去圖書館借什麼Labview的書,那個效率太低了)
2. 現在我們就來用熱敏電阻和Arduino做一個簡單的溫度計,用Labview來顯示讀取的溫度,點擊主界面上的 VI
3. 這個時候我們就看到了Labview的界面,界面由兩部分組成——前面板和程序框圖。前面板是以後儀器的主界面,程序框圖是你編程的地方,旁邊還有3個工具欄分別是——工具、函數和控制項
稍微需要解釋一下的是程序框圖裡主要用到的事各種函數,前面板裡主要用到的各種控制項(比如數值輸入,按鈕,圖表)
4. 選中程序框圖,我們開始編一個小程序,Arduino先要做的一件事是初始化,我們在函數工具箱裡找到Arduino-->Init這個函數
點擊一下,然後把他拖到程序框圖裡
5. 初始化之後我們需要用一個函數來讀取熱敏電阻的溫度值,在函數工具箱裡找到Arduino-->Sensors-->Thermistor Read
同樣把這個函數拖到程序框圖裡
6. 最後我們需要一個函數作為結束,在函數工具箱裡找到Arduino-->Close這個函數
把他拖到程序框圖裡
7. 一般在Labview裡還需要一個報錯的函數,這個函數在編程-->對話框與用戶界面-->簡易錯誤處理器,我們把他拖過去。
8. 很好,我們選擇好主要的函數後我們需要給程序加一個結構,在Arduino裡我們的主程序都是在一個void loop的函數下的,這個函數其實就是一個循環,所以我們現在要給程序框圖裡加一個While循環結構,這個結構可以在函數工具箱裡 編程-->結構-->While 循環 找到。我們用While循環把Thermistor Read這個函數框起來,讓他不斷去讀熱敏電阻的值。
9. 這樣子主要的函數和程序結構就建立好了,接下來我們要給函數加入輸入輸出控制項,Labview的幫助菜單下有一個顯示即時幫助是初學者的好幫手,我們可以直接用這個去看這個函數到底功能是什麼,需要什麼輸入輸出控制項。我們把他打鉤,然後點擊程序框圖裡的Thermistor Read就可以知道這個函數的詳細信息。
根據這個幫助的提示,我們開始給這個函數加入輸入控制項
(1) 模擬輸入的Pin口(我們選01號模擬輸入口)
(2) 串聯了一個多大的電阻(我們選擇10000歐姆的電阻)
以及輸出控制項
(1) 輸出溫度
以及常量
(1) Vcc電壓(5V)
加參數的方法是,先在主工具箱裡選擇進行連線
然後把滑鼠移到Thermistor Read 函數上會發現他左右上下多出來很多各種顏色的點點,找到其中藍色的點,把滑鼠放上去,程序會自動提示這個接口的意義
然後點滑鼠右鍵,拉出下拉菜單,選擇創建-->輸入控制項
這樣程序就會加入一個對應接口的輸入控制項,如圖
同樣的方法,我們可以根據這個函數的描述,把各個輸入控制項,輸出控制項和常量加入進去
把控制項全部加入好之後是這個樣子的:
10.加入完控制項後編程就進入尾聲了,最後我們需要做的只是把 Arduino Resource(粉色) 和 error(土黃色) 這兩條線連起來,我們的程序就編完了。
11. 程序編完後,我們回到前面板,在前面板裡我們看到Labview自動幫我們加了2個輸入框(輸入模擬Pin口和電阻值)和一個顯示口(顯示溫度)
12. 美術好的朋友可以對前面板做一下美化,讓這個界面更好看一些
13. 最後我們根據硬體圖,把電路搭起來
14. 搭好後點擊前面板左上方的運行按鈕,你的小儀器就開始工作了~~
小結:這次的學習筆記參考了網上的很多資料,把他們整理在了一起,差不多是從一開始什麼都不知道到最後能編一個小儀器所需要的資料都在裡面了,有什麼不明白的請在回帖裡提問,可能我還有什麼沒有寫清楚的地方。這次教的這個例程在官方的案例庫裡面有,叫Arduino Thermist Read 如果有什麼問題也可以直接去看那個案例。
如果喜歡觀看類似科技新奇事物,以及了解創客圈最新資訊,或者您對Arduino有所耳聞,可以關注我們微信公眾號,一定會帶給您最新的資訊,最實用的教程,以及創客最新的玩意。
微信公眾號:liudaosixway
也可以加入我們Arduino技術支持qq群:329657595