2013年9月23日 星期一

在LabVIEW之中連結Arduino

在單獨使用Arduino的板子一陣子之後,
想說來練習一下用LabVIEW來連接Arduino,把Arduino當作低階的DAQ卡來使用。
所以就上網找了一些參考資料:

題外話:
玩了一陣子之後,發覺網路上的神人實在是太多了
我這種機械底子的人跟本看不到這些寫程式神人的車尾燈……

言歸正傳,參考資料裡其實寫得很清楚了,該如何弄了:

第一,你本來就要有LabVIEW的程式(2009以上) + VISA模組 (這非預設的)
第二,你要有Arduino 的 IDE程式與板子
第三,安裝JKI VI Package Manager (VIPM),這是要給LabVIEW下載Arduino的模組
第四,用VIPM下載LabVIEW Interface for Arduino
第五,Arduino上需要另外安裝一個檔案才能與LabVIEW做序列溝通。
    在<您的LabIVEW安裝資料夾>\vi.lib\LabVIEW Interface for Arduino\Firmware\LVIFA_Base中,
    找LVIFA_Base.ino這個檔案,透過Arduino IDE load到你的Arduino板子上。
第六,最後打開LabVIIW看到下圖,就代表成功了。

不過在開始使用前,要先去裝置管理員或LabVIEW的Max裡看看設備是否都連上線了。
還有LVIFA_Base.ino是否已經load進去了。

首先先來寫一個範例,架構主要分成三個部分:
(1) Initial:定義port、Serial begin、Board type等等初使條件
(2) While Loop:原本程式中void setup ()與void loop ()都在這裡寫
(3) Close:結束loop時,還要再關掉通訊

心得:
1. 有這個東西真的很方便,就可以直接寫LabVIEW做Arduino的及時通訊
    而我也打算用LabVIEW對上次的製作的機械手臂做控制。
2. 基本這個套件的底層還是用VISA在寫的,把Arduino當作通訊序列的裝置在溝通。
    但這樣底層的溝通就容易發生未知的情況,尤其是Data Flow與Command Flow之間的轉換。
3. LabVIEW能夠支授的子程式不多,例如超音波Arduino就有現成有人寫好的Ultrosonic.h
    但LabVIEW只有少少的幾樣,如Servo motor、Stepper motor幾樣常用的。
    對於快速開發將會耗太多時間在自己寫子VI上。
           
以上供各位參考

3 則留言:

  1. 不好意思請問一下 如果有上面這功能 如果想要在ARDUINO 然後用這個LED當作訊號 來當作ARDUINO硬體方面該做的事情 要怎麼樣撰寫呢??

    回覆刪除
  2. 可使用LabVIEW Interface for arduino 內建範例參考使用。

    回覆刪除
  3. 你好 想請問一下,上面文章中"透過Arduino IDE load到你的Arduino板子上"的步驟要怎麼完成?

    回覆刪除