要進行和Arduino的連線,首先安裝LabVIEW(建議2012之後的版本)然後安裝NI-VISA,我的系統是VISTA,能使用的最新版本VISA是15.5版 (btw,2012和VISTA SP2可以支援的最新版488.2 driver是15.5)
再來是讓電腦可以認得Arduino,如果是買”便宜版”的Arduino,有可能插上去無法辨識。因為它用的是CH340系列晶片,要自己下載driver,檔名為CH341SER.EXE。
經由LabVIEW控制Arduino的三種途徑如下:
前兩種都是把LabVIEW的控制韌體燒進Arduino再經由LabVIEW寫的程式和韌體溝通,也就是說必須把原本裡面的韌體洗掉。若是新的專案,可以不用一有程式變更就要重燒韌體,開發和debug比較方便。但考量到泛用性以及原本的韌體已經開發完成的狀況,經由serial port溝通會是較好的選擇。
LIFA和LINX這兩個模組都是經由JKI VI package manager (aka VIPM)下載安裝,這個管理程式基本上在安裝LabVIEW時必須一併安裝,因為它不友善舊電腦,官網只有放最新版。安裝好後LIFA會放在Arduino分類,LINX會放在Makerhub分類。
基本上LIFA目前NI官方已不再維護,並以LINX取代,但這邊還是紀錄一下如何建構開發環境及會遇到的問題解法。
LIFA開發環境建立,首先開啟Arduino IDE,沒有的話去Arduino.cc下載。開啟草稿檔LIFA_Base.ino,位置在C:\Program Files\National Instruments\LabVIEW 20xx\vi.lib\LabVIEW Interface for Arduino\Firmware\LIFA_Base,然後編譯並上傳到Arduino。
編譯上傳時如果發生報錯(IDE橘字)的問題,原因是使用的IDE版本太新,要降版到1.8.9以下(VISTA可用的最新版本)。
在LabVIEW執行程式時若發生了5003錯誤,那就是使用了版本比1.8.3新的IDE,LabVIEW和Arduino必須要計算checksum但是因為沒有設定初始值,所以LIFA這邊會出現逾時錯誤。要改LAbVIEWInterface頁第740行(附近) unsigned char checksum; 手動改成unsigned char checksum = 0;
另外還有5005錯誤,原因是初始化時用了自動偵測,必須要手動指定COM port,及Baudrate=115200才能正確連線。
LINX的開發環境建立比較友善,安裝好之後在menu bar選Tools/Makerhub/LINX/LINX Firmware wizard開啟上傳精靈,如圖選好板子種類後按照視窗中的指示即可上傳韌體。完成後可以到Find Example找到範例。
最後是serial port控制的方法,必須在Arduino程式碼裡面加上連接指令及定義讀入及送出的變量,即可和電腦做溝通。