2016年1月6日 星期三

Adobe AIR for Android + Arduino + NETLab Toolkit

We should know what is the NLTK before starting:


NLTK可以快速短時間內實現軟硬互動整合,在Flash IDE環境中只要拖拉組件+設定參數幾乎就可以完成設定,90%以上不須撰寫程式碼。入門練習請參考上方連結(感謝前輩分享)。

單純在PC上顯示互動結果不太夠,就直接來試試與行動裝置的連動吧!



Arduino


※ DEMO硬體採用七段顯示器,安裝過程在此便不贅述,七段顯示器的介紹 (請點我)





※ 開啟範例 StandardFirmata and upload,不需撰寫任何Arduino相關程式碼,相當方便。



NETLabHub


※ 先下載所需檔案,並解壓縮 (下載頁面請點我)

※ 打開NETLabHub,但在執行之前最好先確定Java版本是否正確 (它是standalone Java app)。我第一次嘗試時怎樣都無法順利開啟,後來把Java全部移除後再重新安裝最新版本才正常。(搞死人了.....Orz)※ NETLabHub 在使用NLTK套件來說是非常重要的媒介,不管是在PC or Mobile。它擔當了軟硬溝通的中介者,不需要知道太多細節,總之執行它就對了~

※ 要特別注意的是紅框標記的訊息,COM4代表現在Arduino連接的序列埠名稱,192.168.8.18 如同字面意思表示連線ip,
先記起來之後會用到。

※  關於Hub的描述
The Hub is a server that works in the background as a separate application, 

and communicates with a variety of devices (e.g. Arduino or XBee) and software (e.g. OSC applications like OSCemote).
Widgets communicate with the Hub to get or send output.




Flash(Animate)


※ 從下載壓縮檔中安裝Flash Widgets,內含許多NLTK自製組件。





※ 由於是要與Mobile連動,因此要先拖曳MobileControl組件到場景上。

※ 組件MobileControl的實體名稱必須一定要是「mobileControl」

※ defaultIP 就是填入剛才開啟Hub所得到的IP,並勾選autoConnect,如此一來在Android上開啟app時便會自動與Hub連線(Wifi當然要開)。






※ 七段顯示器顧名思義有8個輸出......(是不是很奇怪XD  為啥沒把小數點算進去就直接叫8段不就好了嗎..........)  拖曳8個DigitalOut元件到場景上。

※ 也為每個元件命名實體名稱。之後需要用程式碼控制各個DigitalOut組件。

※ 
屬性欄位要手動填寫的是controllerOutputNum - 對應實際在Arduino上的每個Pin腳,這裡設定Pin2~9。


※ SerialPort 則是之前Hub顯示的COM4。 





※ 這裡再加上自製的MovieClip來對照實體的七段顯示器,再寫一些AS3 code去處理元件&實際LED的亮滅。(手邊使用的LED是共陽極,會與一般認知的輸出相反,但為什麼要搞這麼麻煩,統一規格不就好了嗎??? 真的很任性耶)



之後就可以準備發布APK檔案到Android裝置上測試囉~連結請按我



P.S.
(1) Allen大叔真的非常熱心&好心的開發這些方便的套件給大家無償使用,除了Arduino、iOS/Android之外,還有Kinect、XBee、MakeController......等等硬體裝置可以有更多互動連結的可能,
詳情請按我

(2) 個人感覺NLTK真的方便快速(是吃泡麵嗎),但一定得打開Hub這件事情意味著非得有一台主機運行NETLabHub,站在軟硬溝通的立場來看似乎是非這麼做不可。但若希望可以脫離束縛進行軟硬互動溝通的話,要採取哪一個無線裝置會是比較好的方案呢...............?