LabVIEW和Arduino的巧妙結(jié)合(基礎(chǔ)篇—1)
本篇博文將開啟第四個LabVIEW系列專欄,也是目前確定的最后一個關(guān)于LabVIEW技術(shù)的專欄:LabVIEW和單片機(jī)。在前三個專欄分享介紹了:
1、基礎(chǔ)篇:LabVIEW開發(fā)技巧;
2、工控篇:LabVIEW儀器控制;
3、視覺篇:LabVIEW圖像處理和機(jī)器視覺。
本專欄使用的單片機(jī)為:Arduino(本系列專欄使用Arduino UNO控制器),主要原因在于,Arduino簡單易上手,老少皆宜,受眾面廣泛,使用Arduino作為下位機(jī),LabVIEW作為上位機(jī),獨(dú)立開發(fā)者可以快捷開發(fā)出一套軟硬件聯(lián)控的演示系統(tǒng)。
同時,我也推薦各位先學(xué)習(xí)一下之前發(fā)布的Arduino基礎(chǔ)知識:和12歲小同志搞創(chuàng)客開發(fā),了解Arduino開發(fā)工具和基礎(chǔ)開發(fā)知識。
1
安裝LabVIEW Interface for Arduino Toolkit工具包
LabVIEW中有專業(yè)的接口工具包實現(xiàn)和Arduino進(jìn)行聯(lián)控:LabVIEW Interface for Arduino Toolkit。
LabVIEW Interface for Arduino Toolkit是NI公司(美國國家儀器公司)為Arduino開發(fā)的接口工具包,借助于這個工具包,可以很方便地使用LabVIEW軟件與Arduino控制器實現(xiàn)聯(lián)合開發(fā)。把這個工具包和LabVIEW軟件結(jié)合起來,通過LabVIEW軟件就可以實現(xiàn)對Arduino控制器的控制或者與Arduino控制器交換數(shù)據(jù)。
LabVIEW Interface for Arduino Toolkit最大的優(yōu)點(diǎn)在于內(nèi)置有數(shù)十個NI公司開發(fā)的庫,提供給開發(fā)者使用,當(dāng)Arduino與LabVIEW連接之后,就可以使用LabVIEW中數(shù)十個內(nèi)置的庫來開發(fā)新的程序算法來控制Arduino硬件,而且構(gòu)建UlI(人機(jī)交互界面)也非常容易,適合于新手使用。同時,LabVIEW Interface for Arduino支持Arduino控制器通過USB、串口、藍(lán)牙或XBee等接口的形式與計算機(jī)的LabVIEW進(jìn)行連接。
LabVIEW Interface for Arduino Toolkit工具包的安裝非常簡單,在VI Package Manager,搜索LabVIEW Interface for Arduino就可以進(jìn)行安裝,如下所示:
當(dāng)LabVIEW安裝LabVIEW Interface for Arduino工具包之后,在前面板和程序框圖中的函數(shù)欄目中就會出現(xiàn)Arduino控件和操作函數(shù)庫。
Arduino控件包含模擬IO、數(shù)字I/O、Pin Mode、Board Type和連接方式等,如下圖所示:
前面板控件庫
操作函數(shù)庫包含有Arduino INIT、Arduino CLOSE、Low Level、Sensors、Examples等,如下圖所示。其中,Arduino INIT和Arduino CLOSE是每個程序必備的,即與Arduino控制器建立連接,完成對Arduino預(yù)先設(shè)定的操作之后,斷開與Arduino控制器的連接,釋放Arduino控制器的串口資源。
程序面板函數(shù)庫
另外,Low Level為Arduino初級應(yīng)用,Sensors為經(jīng)過封裝的傳感器函數(shù)庫,Examples包含有大量的應(yīng)用示例。由于Sensors和Example是將Low Level函數(shù)封裝構(gòu)建成的函數(shù)庫,所以使用較為方便,但是其兼容擴(kuò)展性不如Low Level好。
2
LabVIEW Interface for Arduino Toolkit工具包的使用
本小節(jié)主要講解Arduino lNIT、Arduino CLOSE、Low Level以及Sensors中部分函數(shù)庫的使用。
2.1、Arduino INIT函數(shù)節(jié)點(diǎn)
Arduino INIT函數(shù)節(jié)點(diǎn)如下圖所示:
輸入?yún)?shù)有VISA resource、波特率、Arduino板的類型、連接方式(USB/Serial),輸出參數(shù)為Arduino資源號,提供給后續(xù)函數(shù)對Arduino進(jìn)行操作。它的功能是連接Arduino控制器,以使得Arduino板進(jìn)入受LabVIEW控制的狀態(tài)。除了VISA之外,其他的輸入?yún)?shù)可以不給定,即使用默認(rèn)參數(shù),波特率115200,Arduino Uno板,USB/Serial連接方式,每個包15個字節(jié)。
2.2、Arduino CLOSE函數(shù)節(jié)點(diǎn)
Arduino CLOSE函數(shù)節(jié)點(diǎn)如下圖所示:
輸入?yún)?shù)為Arduino資源號,只有錯誤輸出。其功能是斷開Arduino與LabVIEW的連接,釋放Arduino控制器的串口資源。
2.3、Low Level函數(shù)庫
Low Level函數(shù)庫包含:模擬輸入、數(shù)字IO配置、數(shù)字輸入、數(shù)字輸出、PWM輸出(模擬輸出)、Tone、I2C、SPI、模擬采樣功能,如下圖所示:
其中,模擬輸入、數(shù)字輸出、數(shù)字輸出和PWM輸出分為管腳和端口兩種,端口操作適用于需要多個IO管腳進(jìn)行操作的情況。
2.4、Sensors函數(shù)庫
Sensors函數(shù)庫中包含:熱敏電阻、光敏電阻、RGB、數(shù)碼管、紅外、舵機(jī)、步進(jìn)電機(jī)和液晶顯示等功能,如下圖所示:
3
燒錄Arduino固件
將Arduino作為下位機(jī)時,需要燒錄LIFA_Base.ino,可在安裝工具包路徑下找到,例如該文件在我的電腦位于:
D:National InstrumentsLabVIEW 2020vi.libLabVIEW Interface for ArduinoFirmwareLIFA_Base
使用Arduino IDE打開該文件,編譯并下載到Arduino單片機(jī)中,完成固件燒錄。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。
助聽器原理相關(guān)文章:助聽器原理