LABVIEW+ARDUINO
在頻率源、開關等微波組件測試時,需要切換不同的頻點或者通道,在沒有自動測試系統時,通常的做法是使用撥碼開關來控制各個控制位的高低電平,從而實現頻點及通道的切換。而arduino可以模擬這些操作,再與LABVIEW相結合,可以在同一程序能實現切換頻點、通道等的操作,並根據測試需要將所需要的測試數據記錄在相應的表格內。
一、什麼是arduino
Arduino是一款便捷靈活、方便上手的開源電子原型平臺。包含硬體(各種型號的Arduino板)和軟體(Arduino IDE)。由一個歐洲開發團隊於2005年冬季開發。
它構建於開放原始碼simple I/O介面版,並且具有使用類似Java、C語言的Processing/Wiring開發環境。主要包含兩個的部分:硬體部分是可以用來做電路連接的Arduino電路板;另外一個則是Arduino IDE,你的計算機中的程序開發環境。你只要在IDE中編寫程序代碼,將程序上傳到Arduino電路板後,程序便會告訴Arduino電路板要做些什麼了。
Arduino能通過各種各樣的傳感器來感知環境,通過控制燈光、馬達和其他的裝置來反饋、影響環境。板子上的微控制器可以通過Arduino的程式語言來編寫程序,編譯成二進位文件,燒錄進微控制器。
Arduino本質上是一種電子工具,它可以被用來製作許多有趣的創意電子製作,比如電子時鐘、四軸飛行器、寵物餵食機、3D印表機、電子顯微鏡等。全世界的電子愛好者們還在不斷開發基於Arduino的創意電子製作。
二、Arduino種類
常用的Arduino有以下七種:
UNO R3最常見,而MEGA2560 R3則輸入輸出口最多,大家可根據需要自己選擇合適的版本。淘寶都可以買的到,價格從二三十到兩百不等。
三、Arduino編程
Arduino 語言是建立在 C/C++基礎上的,其實也就是基礎的 C 語言,Arduino 語言只不過把 AVR 單片機(微控制器)相關的一些寄存器參數設置等都函數化了,不用我們去了解他的底層,讓不太了解 AVR 單片機(微控制器)的朋友也能輕鬆上手。
以上是對程式設計師朋友說的,本人是上學期間學過一年的C語言,畢業之後就沒有涉及過,接觸arduino也僅僅是網上看到它可以控制很多東西,想自己玩玩,拿到之後才發現沒有那麼容易,編程時候的邏輯關係還是有點複雜的。
本來都準備放棄了,有次偶然的機會,在NI公司的網站上發現了有專門的LABVIEW工具包,於是便下載下來試試看,發現有了這個工具包之後也不需要再敲代碼,直接將一個個子程序圖標拖進去就可以。簡直可以說是「山窮水盡疑無路,柳暗花明又一村」
四、Arduino工具包安裝
Arduino和LabVIEW之間的互動設計主要有三種工具包可以選擇,將這些工具包和LabVIEW軟體結合起來,通過LabVIEW軟體就可以實現對Arduino控制板的控制或者與Arduino控制板交換數據,從而實現LabVIEW軟體與Arduino控制板之間的互動設計。
下面對這三種工具包進行分析:
首先,這三個工具包都需要相同的環境:LabVIEW軟體、VISA驅動、VI Package Manager (JKI VIPackage Manager Community Edition)軟體。
1、LabVIEW Interface for Arduino(LIFA) 是NI公司(美國國家儀器公司)為Arduino開發的接口工具包,這是一個入門級免費的工具包.
LabVIEW Interface for Arduino Toolkit(LIAT)這個軟體看後綴也就知道這也是NI公司開發的,屬於前者的高級版本。但是這個工具包不光支持的硬體版本少,僅支持Arduino UNO、Arduino2009、Mega2506而且庫函數的數量有限,傳感器類型單一,存在極大的局限性,當使用的傳感器不是官方函數庫中已有函數的傳感器,就無法使用LabVIEW對Arduino進行交互控制。
3、LabVIEW Hacker LINX Toolkit(LINX),這個工具包並非NI公司開發的,因而在VIPM上不一定能找到它。據網友講,Arduino有可能會威脅到labview的硬體,尤其是是老師們用labview教授Arduino硬體的時候。但是這個工具包可以直接燒錄程序到Arduino,並且程序塊更加集成、整潔,支持的硬體種類更多,提供的庫函數也超級豐富。
由於前兩者目前已經停止更新,建議使用時下載LINX。
安裝LINX時需要注意,必須先下載makehub工具包,否則LINX將無法安裝,具體安裝步驟如下:
安裝完成後,需要根據arduino版本的不同對其進行設置,步驟如下,本人使用的是MEGA2560 R3,因此以此版本為例。
設置完成點finish即可。
五、LABVIEW+ARDUINO程序。
下圖為LABVIEW+ARDUINO程序,其功能為按照輸入的數字點亮對應的發光二極體。程序圖如下:
圖中最左側是打開arduino,然後是一個while循環,循環內為一個arduino的N位寫入子程序,(我選擇從第2到7位I/O口),常量轉換為布爾數組之後即可將得到對應位的高低電平
例如:1為TFFFFF(2-7位),3為TTFFFF,4為FFTFFF,63為TTTTTT.再點擊停止後,將第2-7位I/O口全部置0,然後在關閉arduino的串口。以上程序正式結束。
以輸入1、3、4、63為例,運行結果如下: