Tag Archives: labview

131217 LabVIEW for Arduino 機電整合業界講師課程@亞洲大學

11/26 開始每週二下午,是亞洲大學資工系的業界講師課程,大學部的同學們很認真地在學習以下三種課程:

1. LabVIEW for Arduino   (健行科大電機系也正在學這個

2. Processing + Android 互動設計

3. Processing + Kinect 體感開發

現在1. 已經上得差不多了,即將進入2. 如果都能順利完成課程的話,我想同學們會變得更厲害喲!

請參考 CAVE實驗室的 LabVIEW for Arduino 分部 以及 Processing / Android分部

還有10月底剛出版的 [LabVIEW for Arduino 控制與應用的完美結合]

來看看上課實況,安裝環境,調參數總是最麻煩。

2013-12-17 16.05.56

不過順利 run 起來的時候就很有成就感啦。使用圖形化的 LabVIEW 來控制 Arduino,很多現成的指令就更輕鬆了。另一方面,LabVIEW各種豐富的人機界面,能讓 Arduino 所取得的訊號有更好地呈現。

下圖就是將接在 Arduino 類比 A0 的可變電阻顯示在畫面上,可以看到現在量到電壓是 2.6V左右,這個指針很漂亮喲!

2013-12-17 16.06.34 2013-12-17 16.06.44

大家正在想三周後的專題展示要做什麼

2013-12-17 16.35.26

玩一下 RGB LED燈,DIY樂無窮

2013-12-17 17.35.49

寫程式就是一種與自己對話的過程,只有最適合,沒有最好的程式環境。況且現在網路發達,很容易就能找到不錯的網路教學資源(例如CAVE系列網站…),同學們好好加油吧。

 

 

20131203_174418

[看似]認真在解決大家問題的阿吉老師

20131203_162816

[LabVIEW] 使用鍵盤的 2 4 6 8 數字鍵來控制NXT機器人前進後退與左右轉

http://lab.cavedu.com/keyboard-nxt  <- 程式碼請由此下載

本範例使用鍵盤的 2 4 6 8 數字鍵來控制NXT機器人前進後退與左右轉,2 4 6 8 數字鍵可說是許多賽車或是射擊遊戲的預設控制鍵,操作起來相當直覺。
 
本範例的重點在於程式上方的 Connectivity指令取得鍵盤的狀態,使用 Array to Cluster 指令將 Aquire Input Data指令的 keys pressed 欄位拆出來之後,再使用 Ubundle by Name 指令將 cluster 拆成一個個整數純量,每一個按鍵都是由一個不同的整數所代表。接著將第一個 keys pressed [0] 這個整數連到 case structure,代表使用每次按下鍵盤按鍵所代表的數值來控制 case structure。
 
由於每一個鍵盤按鍵都是對應到一個整數值,所以您可以看到 case structure 的 case selector 變成了藍色,在此我們只要讓程式可以辨識到 2 4 6 8 數字鍵是否被按下即可 (當然也要設定機器人的動作),其他的按鍵都會被歸類在 [“0”, Default] 這個 case 中,並讓機器人停下來。
 
 請注意,Aquire Input Data指令的 keys pressed 欄位所丟出的是整數陣列 (integer array),根據您按下按鍵的順序將對應的整數值放入陣列中。
延伸閱讀 [CAVE實驗室 LabVIEW for Arduino分部],使用鍵盤、滑鼠與 XBOX搖桿來控制 Arduino LED閃爍!
 
所以 NUMPAD_6 就設定讓機器人右轉,NUMPAD_2 後退,NUMPAD_8 前進,其他按鍵都會讓機器人停下來。您可下載程式碼之後自行調整機器人的動作參數,或更改為其他的鍵盤按鍵。
 


LabVIEW for Arduino 書籍網站 上線囉

迎接即將出版的[LabVIEW for Arduino 控制與應用的完美結合],今天先來公佈書籍網站:book.cavedu.com/l4a

書中的程式碼已經可以下載囉。需要 LabVIEW 2009 以上版本再安裝LabVIEW for Arduino套件(安裝教學

螢幕快照 2013-10-15 下午9.29.05

作者:曾吉弘、吳維翰、盧玟攸、 謝宗翰、翁子麟、薛皓云

出版社:馥林文化

內容:

LabVIEW為一專業圖形化開發環境,在儀控與訊號量測上有完整的支援。Arduino為近年來熱門的電子互動裝置,任何人都能輕鬆上手。本書將LabVIEW整合於Arduino各式專題中,告訴您許多超有趣的應用,包含:

LED聲光秀、呈現並分析感測器訊號、控制蜂鳴器、馬達與LCD 顯示器等,以及

整合Xbox360遊戲手把與各樣輸入裝置、Xbee無線傳輸技術、物件辨識與追蹤與機器人等等有趣專題。
本書使用LabVIEW 2009以後版本,範例程式檔與更多最新資訊,請上 CAVE實驗室

目錄:
Ch0 如何使用本書
Ch1 LabVIEW基礎
Ch2 LabVIEW與Arduino入門
Ch3 燈光
Ch4 類比訊號量測與取樣
Ch5 顯示
Ch6 感測器
Ch7 致動器
Ch8 LCD液晶顯示模組
Ch9 結合電腦端的輸入裝置
Ch10 Xbee與Arduino應用 – 遠端恆溫平臺
Ch11 藍牙遙控機器人
Ch12 Arduino視覺追蹤平台
AppA 參考書目與網路資源
AppB 如何使用 Fritzing
AppC NI LabVIEW 影像軟體安裝說明
AppD 如何建立 SubVI 與個人選單

與大家一同分享我們2013 第一本著作(真是千呼萬喚呀!)

L4A_cover_1009(這個才是)-p3-01

[進階機器人課程] LabVIEW 圖控程式設計與機器人控制

課程名稱:LabVIEW 進階圖控程式設計與機器人控制

地點:CAVE 教育團隊

時間:本周五 10/4 開始 19:00~21:00

報名請洽 02 2306 2900 or service@cavedu.com

您知道樂高的程式環境,都是使用 LabVIEW 來開發的嗎?使用 LabVIEW 高階圖形化控制環境,可以讓學生培養更紮實的程式設計基礎,結合樂高、Arduino 以及其他硬體,也能吸收更多實務上的知識並加強解決問題的能力。更多 LabVIEW 結合機器人的應用,請到 CAVE實驗室 

2-28b 2013-09-18 16.25.04

130911 LabVIEW機器人創新與創作研習營@亞太創意技術學院

09/11   星期三風光明媚的下午, CAVE 來到苗栗頭份的亞太創意技術學院, 講 LabVIEW 控制 NXT機器人,  這是連續三周, 每週三下午的課程。

第一天先由 LabVIEW 基礎開始, 接著是從 LabVIEW 搭配 NXT機器人做為控制端與接收端, 不但可以直接看到NXT感測器與主機狀態的變化, 還可以從畫面上的按鈕或拉霸來控制馬達. 很方便呢!

有興趣的朋友請延伸閱讀 CAVE實驗室的 LabVIEW頁面 , 以及 LabVIEW for Arduino頁面

2013-09-11 12.41.29

 

Continue reading

[LabVIEW] Labview for Kinect Part4 統整

文:薛皓云

繼上篇[Labview for Kinect Part3 骨架資訊讀取]

這次要大家回顧之前的Block的名稱 及用法。

1.Kinect Initialise:

kinect的初始化,像是影像、深度及骨架等資訊會歸0,以及鏡頭會重新校正。

2.Kinect Config:

 

Kinekt的的設定,其實這block的設定不多,僅設定使用者要那些功能要開啟(影像、深度、骨架追蹤),kinect還有其他功能,如:聲音,LBV For Kinect就無法控制此功能,要自行編寫或是找尋其他玩家的block。

3.Kinect Read:

Kinect 感應器讀值:這邊要注意的地方是,設定上盡量使用"自動"才比較不會有讀取上的錯誤。

4.Kinect close:

Kinect 關閉:這Block會將使用中的kinect關閉,若沒放此block很容易導致kinect繼續運作而其他程式無法操作。

5.顯示:

(1)顯示骨架位置:Kinect的資料庫已經幫各位做好骨架追蹤,所以只要人到達一定距離後就會追蹤了,但要注意這block僅為「絕對座標」,也就是會依照人與Kinect距離、位置而有不同的值。

(2)顯示影像

(3)顯示深度

以上為LBV For Kinect

[LabVIEW] Labview for Kinect Part3 骨架資訊讀取

續上篇[[LabVIEW] Labview for Kinect Part2 影像讀取 ]

影像擷取成功,接下來就是KINECT的重點:骨架追蹤

從Kinect toolkit-> Read.vi,上篇的Read.vi選擇為Read-DepthandVideo

這次要讀取skeleton(骨架)的數值要將Read.vi選擇為Read-Skeleton


與上篇差不多,將骨架的追蹤數值顯示出

若想要單純其中一個部位可使用Joinr Coordinates即可顯示你要的部位喔!
 

[LabVIEW] Labview for Kinect Part2 影像讀取

續上篇安裝環境及驅動程式完成之後,開始撰寫第一個LBV for Kinect。

1.kinect initialize:kinect的初始化設定,本章僅使用預設值即可。

2.kinect configure:kinect的配置,本章僅使用預設值

3.Read:讀取kinect的資料,從kinect讀取影像或景深的資料

4、5.Display color/depth Data:顯示影像/景深,從這block可以清楚看見kinect所拍攝到的影像/景深

6.close kinect:關閉kinect

7.執行程式,此時會呼叫LBVVision,按下執行即可。

8.顯示影像,大功告成!

[LabVIEW] Labview for Kinect Part1 安裝

繼上次利用搖桿控制初音機器人,接下來有二個方向發展1:利用Kinect體感遙控初音 2.利用手機遙控初音。
這次來教大家使用KINECT,因為我要使用Arduino控制伺服馬達,但我不會使用C#或C結合arduino跟Kinect,所以我使用LabView for Arduino +LabView for Kinect,今天來教如何使用LabView for Kinect(以下簡稱LBV_Kinect)

1.安裝LBV_2012以後的版本
安裝2012以後的版本是因為要透過VI Package Manager 下載LBV For Arduino  及 LBV for Kinect

2.點選VI Package Manager

下載Kinect及Arduino的Tool(紅框)

3.開啟LBV
確認有無按裝OK,對Block Diagram按右鍵>選取VISION AND MOTION,看到Kinesthesia Toolkit for Microsoft Kinect就確認安裝完成

4.電腦在第一次接上kinect時,並不會自動安裝驅動程式,此時要至microsoft官網下載toolkit及SDK
按我連結
點選連結後,點擊紅框

將這二個下載並安裝,注意安裝過程及開啟時,建議不要接上KINECT以免發生錯誤

NI LabVIEW WEB

今天要介紹LABVIEW WEB(以下簡稱WEBLV)

雖然他有WEB3個字,但不用擔心,NI官方有提供單機版,可以將寫完程式上傳到網路上。

這是官方的範例程式,他利用NI提供的官方伺服器,精準算出標準時間。
下方的網址是利用範例程式教你如何寫WEBLV
http://zone.ni.com/reference/en-XX/help/373286A-01/uibuilder/wuib_gsg1/
http://zone.ni.com/reference/en-XX/help/373286A-01/uibuilder/wuib_gsg2/

130530 健行科大電機系 LabVIEW 機器人控制課程

健行科大電機系大三同學的 LabVIEW 機器人控制課程,系上有關 LabVIEW 的軟硬體投資了不少,很多一般人用不到的LabVIEW模組這邊都有呢,同學們要好好珍惜這個得來不易的機會唷。

「不論多難多複雜的程式,都要能用一句話講完」。只要這個邏輯是正確的,換到不同的程式平台也OK。反之就會落入「啊…   又要學新的開發環境」這種低潮無窮迴圈。所以CAVE 的教學主核心可說就是從這裡出發:培養對於事情的全方位觀點,把問題拉高到系統的等級來看,而不落入程式語法之中。

阿吉老師說明如何將三角函數與座標轉換概念,用LabVIEW呈現出來。重點是思路而非程式技巧

相同的概念即可應用手機的觸控點以及姿態來控制機器人,原理完全相通唷!


test

[LabVIEW]Parallel For Loop

甚麼是Parallel For Loop?

Parallel For Loop 是一個可以讓多顆 CPU 核心執行同一個 For Loop。例如說,如果在一台雙核心的電腦上寫了一個 100 個迴圈的 For Loop,那麼這個功能就可以在 CPU0 上執行 50 次,另 50 次則在 CPU1 上執行。這樣一來,我們便能善用我們的多核心電腦,程式執行的速度就也會跟著大大的提升!

Parallel For Loop 其實與之前的 For 迴圈是一樣的,唯一不同的地方,就在於它多了一個選項,讓您可以指定要使用幾顆 CPU 核心來執行這個迴圈。您可以選擇是否要打開此功能,如果要打開,您只需要在For 迴圈的邊緣點滑鼠右鍵,選擇 Configure Iteration Parallelism …,設定視窗出現後,您只需要把 Enable loop iteration parallelism 勾選起來就可以了。

 

設定完畢後,For迴圈的左上方就會出現一個新的接點"P",你只需要把你想要使用的CPU核心的數量接近去,你便可達到Parallel For Loop的功能。

如果想要使用
Parallel For Loop
的功能,那您當然必須先知道您的電腦上有幾顆 CPU 核心可以使用。如果要從 LabVIEW 程式裡讀取電腦系統上的資訊,您往往需要使用 Call Library Function Node,寫出較複雜的程式,來讀取 Windows API DLL,以得到此資訊。這就是為什麼 LabVIEW 2009 提供了一個新的 CPU Information API,幫助您能更迅速地得到電腦 CPU 的資訊。


# of logical processors
的輸出接點連接到
Parallel For Loop
上,您就可以指定此 For 迴圈使用的核心數量了。

[LabVIEW] NXT遙控賽車

延續上篇的[ 取得鍵盤以及滑鼠資訊],本篇要介紹如何使用鍵盤遙控NXT二輪差速車。
對Acquire Input Device指令產生一個array顯示所按的按鍵之後,再使用cluster及unbundle 指令將key pressed值取出來。
使用鍵盤上上、下、左、右四個按鍵 搭配 case structure 來控制馬達前進、左轉、右轉、後退及停止

下圖為前進、後退







下圖為左轉、右轉








 


下圖為停止

[LabVIEW / Arduino] 改寫經典的Blink閃爍程式

歡迎到CAVE實驗室的LabVIEW for Arduino分部來取得更多資源, 本範例的原始碼也是在這個頁面下載。

玩Arduino的朋友們, 當年一定都是從Blink這個程式開始的吧, 他會讓Arduino上的LED(pin13) 一秒暗一秒亮。 為了讓大家更熟悉LabVIEW for Arduino套件的使用方法, 我們先從改寫經典開始。

程式概念很簡單,就是宣告要對 Arduino Mega 2560 (您也可以使用Arduino Uno) 進行 USB通訊之後, 就進入一個無窮迴圈, 在迴圈中我們設定了pin13 為 OUTPUT, 因為要控制LED 閃爍。

接著我們透過迴圈索引 i (這是一個不斷遞增的正整數) 對2取餘數, 結果只有0 或 1. 這個0 或 1用來控制 case structure  在兩個 case 之間切換, 同時這個 0 或 1 也用來控制 Digital Write指令的 value 欄位。 這樣就能每秒將LED亮暗一次。

註: Set Digital Pin放在迴圈內或外, 不影響程式執行

用到的新指令有 Set Digital Pin, 相當於 Arduino的pinMode() 指令.

Digital Write指令, 相當於 Arduino的 digitalWrite() 指令.