2012年11月19日 星期一

ADT Bundle for Windows

今天換了一台 Windows 8 Ultrabook, 想說把 Android 的開發環境也順便裝一裝,於是上 Android Developers 網站逛了一下,結果意外發現一個好東西: ADT Bundle for Windows。這個包裹 (Bundle) 把 Android SDK 重要的元件與 Eclipse IDE 以及 ADT Plugin 都包好了,裏面有這些東西:

  • Eclipse 與 ADT plugin
  • Android SDK Tools
  • Android Platform-tools
  • 最新版 Android platform
  • 最新版 Android 映像檔

也就是說,開發 Android App 所需的軟體和工具,全部都包在這個 Bundle 裏了,這麼一來,開發環境的安裝程序就簡化了,開發者事先只需裝個 JDK 即可,可以省下不少時間,不得不說 Google 真的是很貼心啊。

ADT Bundle for Windows 的安裝步驟非常簡單(請先把 JDK 裝起來):

Step 1: 連到這裏,如下圖,點 Download the SDK 下載 ADT Bundle,點了之後,會有 32-bit 和 64-bit 兩種版本可供選擇:

image

Step 2: 解開壓縮檔,你會看到 eclipse 和 sdk 兩個資料夾,點進去 eclipse 資料夾然後執行 eclipse.exe:

image

Eclipse IDE 就會啟動,接著你就可以開始開發 Android App 了。

image

2012年11月16日 星期五

Device Discoverer for Android

Device Discoverer is an Android utility for Microchip PIC devices. With this app, you can discover Ethernet and WiFi enabled PIC devices on a local network. Here is a screenshot of this app:

Screenshot_2012-11-16-10-52-37 qrcode

How does this works? Well, the Device Discoverer broadcasts on UDP port 30303 using the "announce protocol", so in order to use it, you have to turn on the "announce service" for your PIC devices/boards.

You could also discover PIC devices using Microchip Ethernet Discoverer, which is included in Microchip Libraries for Applications.

image

2012年11月13日 星期二

Arduino 1.5 Beta Software

上個月 Arduino Blog 張貼了 Arduino 1.5 beta 的 release 消息。Arduino 1.5 主要是增加 Due 的支援,可以編譯 Due 的 32 位元 Atmel SAM3X ARM processor 的程式,也就是說目前 Arduino Software 已支援 AVR 和 Atmel ARM 兩種 microcontrollers。該文還提到,將來 Arduino Software 可能會支援更多種 microcontroller。除了增加 Due 的支援,Arduino 1.5 Software 介面也做了一些調整,咱們來看一下有哪些變化。你可以在底下的連結中取得 Arduino 1.5 beta:

http://arduino.cc/en/Main/SoftwareDue

板子選單 (Board Menu) 簡化

第一個不一樣的地方是板子選單 (Tools > Board) 簡化了。以前選單展開後會看到很多板子,現在變少了,以 "Arduino Duemilanove or Diecimila" 為例,這兩款板子有 ATmega328 和 ATmega168 兩種版本。

image
▲ 方框標示處是新增的 Due 板子

如上圖,當你選擇時 "Arduino Duemilanove or Diecimila" 時,選單 Tools > Processor 會 enable,而且會出現 ATmega328 和 ATmega168 兩種處理器供你選擇:

image

Library 的安裝變簡單了

Arduino 1.5 另一個特色是 Library 的安裝變簡單了,以往我們要安裝 library,必須把 library 下載並解開放到特定的資料夾 (亦即 Sketchbook 的 libraries 資料夾,或是 arduino-xxxx\libraryies 資料夾),現在選單裏多了一個 "Add Library" 選項可以簡化安裝程序。

底下以 MeetAndroid library 為例說明 library 的安裝步驟:

Step 1: 點擊選單的 Sketch > Import Library > Add Library 選項:

image

Step 2: 選擇 MeetAndroid_4.zip 壓縮檔。如果你已經把壓縮檔解開了,在這個步驟選擇資料夾也行:

image

Step 3: 這時候 Arduino Software 會自動安裝 library,順利的話,狀態列上會顯示 library 新增成功的訊息:

image

Step 4: 安裝完成之後,就可以點選 Sketch > Import Library 開始使用 library:

image

同時在 File > examples 選單下,也會看到 Library 提供的 examples:

image

以往裝好 library 之後得重新啟動 Arduino Software 才能生效,現在不用重新啟動就可以使用,確實方便多了。不過,個人認為還有值得改善之處,因為現在要裝 library 還得自己到處搜尋,辛苦下載,而且有時候還不知道哪個版本才是最新版本,相當麻煩,如果將來有套件管理工具,可以讓找  library 的工作更方便,而且叫 Arduino Software 自己直接從線上下載 library 回來安裝,甚至是自動更新 library 的版本,那樣應該會更棒!

參考資料

2012年11月10日 星期六

Android Data Dashboard for LabVIEW

Data Dashboard for LabVIEW 是 National Intruments 所開發的 App,適用於 iPhone、iPad、Android 等行動裝置,透過這個 App 我們可以用智慧型手機與平板電腦快速地呈現量測資料,如果電腦端的 LabVIEW 應用程式發佈了網路共用變數,你就可以用智慧型手機與平板電腦在任何地方呈現這些資料。

post-6320-0-80847200-1323966320_thumb

Data Dashboard 可以在 iOS app store 取得,有 iPadiPhone 的版本,而且也支援 Android,可以在 Google Play 商店上下載。底下是 Data Dashboard for Android 的畫面截圖。Data Dashboard 可以讀取 Android 裝置的硬體感測器,包括陀螺儀 (Gyroscope) 、三軸加速度計 (Accelerometer) 與電子羅盤 (Compass) 並且以直覺的方式呈現:

image image

除了智慧型裝置本身的硬體感測器外,Data Dashboard 最主的目的是可以呈現網路共用變數的資料,底下我將簡單說明如何用 Data Dashboard 來連線並呈現網路共用變數的資料。我假設你已經知道如何用 LabVIEW 建立網路共用網變數,而且也知道如何為網路共用變數設定防火牆

假設我們已經建立了一個叫作 Temperature 的網路共用變數 (你可以參考這篇建立共用變數),並假設它的完整路徑如下:

\\192.168.2.106\NSV_Demo\Temperature

我們可以用 Distributed System Manager 確認電腦上有哪些共用變數可用:

image

這是測試程式的 Front Panel 與 Block Diagram:

image image

底下是用 Data Dashboard 來連線並呈現網路共用變數的操作步驟:

Step 1: 首先,先到 Google Play 下載 Data Dashboard。打開 App 後,會看到如下畫面,點選畫面中間的 Add:

image

Step 2: 點選 Connect to shared variable:

image

Step 3: 輸入 Server Name,本例使用 192.168.2.106:

image

Step 4: 點選 NSV_Demo:

image

Step 5: 由於 NSV_Demo 應用程式只有一個 Temperature 網路共用變數,所以接下來的畫面只會看到 Temperature 變數,點選 Temperature:

image

Step 6: 選擇資料的呈現方式,目前有三種可以選擇,一個是文字顯示,一個是儀表顯示,另一個是以曲線圖顯示,我們先用文字顯示:

image

Step 7: 完成設定後,會看到如下的畫面:

image

Step 8: 最後只要啟動電腦端的 LabVIEW 應用程式 (如下圖左),並按下右上角的 Run,Data Dashboard 上就會呈現網路共用變數的資料了:

image   image

Step 9: 我們也可以用儀表或曲線圖來顯示資料,如下右圖,我改用儀表來顯示 Temperture 網路共用變數的內容。左圖則是儀表數值範圍的設定頁面,預設範圍是 0 到 10,我把它改成 0 到 100 以顯示 Temperature 的內容:

image  image

Data Dashboard for Android 好像有手機和平板電腦的版本之分,手機畫面比較小,一次只能顯示一個資料,平板電腦畫面較大,Data Dashboard 平板電腦的版本似乎可以在一個畫面上顯示多個資料。

參考資料

2012年11月9日 星期五

為 Network Shared Variables 設定 Windows Firewall

前一篇,我提到如果要從遠端電腦存取 LabVIEW 的網路共用變數,必須設定 Windows Firewall 以允許連線通過防火牆。我在 National Intruments 網站上找到這篇文件,上面說,為了讓遠端電腦存取網路共用變數,必須打開下列這些 Ports:

UDP: 2343, 6000-6010

TCP: 2343, 59110 與往上的 ports (每個 application 開一個 port)

Well, 文件上沒說要開 TCP port 2343,不過,我猜可能是文件的遺漏,因為概據實測的結果,我發現一定要開 TCP port 2343 才行。

在 Windows 7 上,Windows Firewall 開 port 的操作步驟為:

Step 1: 點選「控制台 > Windows 防火牆」,打開 Windows 防火牆後,點選左手邊的「進階設定」:

image

Step 2: 在底下視窗中,先點一下左手邊的「輸入規則」,再點右手邊的「新增規則」,然後按下一步:

image

Step 3: 選擇「連接埠」,然後點下一步:

image

Step 4: 選擇通訊協定,以開 TCP port 2343 為例,這裏選擇 TCP,然後在「特定本機連接埠」欄位中輸入 2343。這是開一個 port 的方法,假如想一次開多個 ports,例如 UDP 6000 到 6010,那麼就選擇 UDP,然後輸入 6000-6010。

image

Step 5: 選擇「允許連線」,然後點下一步:

image

Step 6: 這個視窗用預設值就好,直接點下一步:

image

Step 7: 輸入規則的名稱,可以任意取名,例如我用 TCP 2343:

image

最後按下完成結束設定。如下圖所示,這時候在輸入規則視窗中,便會看到新增的規則:

image

以上的步驟示範如何開 TCP 2343 這個 port,其它 ports 只要照同樣步驟設定即可。

設定 Windows Firewall 的批次檔

假如你覺得 Windows Firewall 的設定步驟太繁瑣,那麼你可以連一下底下的連結,下載我寫的批次檔 (Batch File):

Configuring Firewall for LabVIEW

如下圖,壓縮檔裏一共有 4 個批次檔,其中 AddPortOpening_XXX.bat 是用來開 port,而 DelPortOpening_XXX.bat 則是用來關閉 port,假如將來想關掉網路共用變數所用的 ports,可以跑這個批次檔還原防火牆的設定。另外,批次檔有 Windows 7 和 Windows XP 兩種版本:

image

針對 TCP ports,從 59110 開始算起,你必須為每個 application 開一個 port。為了方便,批次檔裏總共開了 5 個 ports,從 59110 到 59114,底下是在 Windows 7 上開這 5 個 ports 的指令:

netsh advfirewall firewall add rule name="TCP 59110-59114" protocol=TCP dir=in localport=59110-59114 action=allow

另外,要注意在 Windows 7 批次檔必須以系統管理的身分執行才會有效。

在設定好 Windows Firewall 後,便可以在遠端電腦測試能否存取網路共用變數,這部份你可以參考「連結 Indicators 和 Shared Variables」、「連結與使用 Shared Variable」這兩篇的說明。

在遠端電腦上,當你使用 LabVIEW 連結網路共用變數時,LabVIEW 預設只會顯示 localhost 的共用變數,你可以在 Distributed System Manager 做個 Register Computer 的動作,這樣就可以直接瀏覽並存取 Server 的網路共用變數。例如,遠端電腦若要存取 192.168.2.106 的共用變數,那麼就打開 Distributed System Manager,參考下圖,然後點選 Actions > Register Computer:

image 

接著輸入 192.168.2.106:

image

然後展開 Network Items 就會看到 192.168.2.106 分享出來的網路共用變數了:

image

參考資料

2012年11月8日 星期四

連結 Indicators 和 Shared Variables

前一篇,我們在專案裏以 New > Variable 的方式連結已存在的網路共用變數 (Network Shared Varialbe),讓應用程式之間透過網路傳虒資料,程式會連結到 Temperature 共用變數,其完整路徑如下,其中 192.168.2.106 是我電腦的 IP:

\\192.168.2.106\NSV_Demo\Temperature

這個方法雖然有效,不過卻會建立另一個多餘的叫作 RemoteTemperature 的新的共用變數,新共用變數的完整路徑如下:

\\192.168.2.106\Binding_NSV\RemoteTemperature

如下圖所示:

image

要存取共用變數,除了這個方法外,我發現還有一個更簡單的方法,而且不會建立一個多餘的共用變數。這個方法是把 Control 或 Indicaotr 直接與共用變數連結起來, 操作步驟為:

Step 1: 首先,建立一個新的 VI,一樣,我要用 Thermometer 來顯示 Temperature 網路共用變數的內容,所以設計如下一個很簡單的程式:

image image

Step 2: 接著,不管在 Front Panel 或是 Block Diagram 操作都可以,在 thermometer 上按右鍵,在右鍵選單中點選 Propertyies,這時會跳出如下的視窗:

image

Step 3: 參考下圖,輸入下列資料:

  • 頁面: 切到最右邊的 Data Binding 頁面
  • Data Binding Selection: 選擇 Shared Variable Engine (NI-PSP)
  • Path: 輸入在這篇建立的共用變數的完整路徑 \\192.168.2.106\NSV_Demo\Temperature

image

因為我們知道共用變數的完整路徑,所以直接輸入即可,其實也可以點 Browse 鈕,如下圖,然後在底下視窗中瀏覽網路上可用的共用變數:

image

Step 4: 完成上述動作後,就已經把 thermometer indicator 與共用變數連結起來,現在我們可以同時跑這篇 (如下圖左) 與本文的程式 (如下圖右),然後你會看到,當滑動左手邊視窗的 Temperature 時,右手邊視窗的 Thermometer 也會同步更新:

image  image

把 Control 或 Indicaotr 直接與共用變數連結起來,這比前一篇說的方法簡單快速多了,而且不會產生多餘的共用變數。

現在有個問題,發佈共用變數的程式以及訂閱共用變數的程式,到目前為止我都是放在同一電腦上跑的,還沒遇到什麼困難。既然是網路共用變數,遠端電腦應該也可以來訂閱與取用的才對,不過我發現,由於現在 Windows 都有內建防火牆,如果遠端電腦要訂閱共用變數,得先設定防火牆才能過得了關。這問題我會花點時間研究,之後再來分享。

參考資料