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