Kinect與Scratch的結合.愈來愈便利
引用於:佛光大學資訊應用學系 許惠美
在2011年5月的教育資訊電子報〈淺談Scratch與Kinect結合與實作方法─讓你的Scratch更具互動性〉一文中,談到利用OpenNI的驅動程式結合Scratch的使用,經過一年多來,微軟釋出Kinect的SDK,內含Kinect的驅動程式,並且讓有興趣於Kinect開發的人員,有簡便的開發平台,之前一直致力撰寫Scratch與Kinect中介程式的Stephen Howell,也釋出適用於Windows 7上的中介程式,相較於之前使用OpenNI的版本,利用Kinect SDK所開發的中介程式,改進了以往校正費時的問題,另外新版本的中介程式提供兩名玩家的骨架訊息與骨架的X、Y、Z軸之資訊,這使得Scratch與Kinect的結合在資訊教育以及資融的應用上更加便利。
本文的目的主要是介紹在Windows 7的架構下,如何進行Scratch的結合,包含驅動程式的安裝與中介程式的使用。雖然Kinect目前與Windows的結合較為便利,Stephen Howell正致力於Mac與Linux上中介程式的開發,希望在不久的將來能夠完成,造福不同系統的使用者。
- 驅動程式的安裝
1. 必須使用Windows 7或Windows 8的系統。
2. 至 Microsoft網站下載 Kinect SDK 1.5 (http://www.microsoft.com/en-us/kinectforwindows/develop/developer-downloads.aspx),只要下載步驟一即可。
圖一:Kinect SDK 1.5 之下載點
3. 下載與安裝.Net 4 Redistributable (http://www.microsoft.com/en-us/download/details.aspx?id=17718)。
4. 確定Windows Updates(更新)都安裝完畢。
5. 將 Kinect 以USB的方式與電腦連結,驅動程式將會自動安裝。
6. 查看「裝置管理員」,檢視是否可以看到Kinect,若可以看到,則代表Kinect已正確驅動。
圖二:檢視裝置管理員
二、中介程式的使用
為了讓Scratch能夠接收到Kinect所偵測的骨架資訊,需要一個中介程式做這項溝通的工作,以下是相關的操作步驟。
- 下載中介程式:到http://scratch.saorog.com/,填寫相關訊息,按下「送出」之後,就會在電子郵件信箱中收到Stephen Howell所寄之中介程式的載點資訊,下載Kinect2Scratch15Final.zip,解壓縮之後即可以使用。
圖三:填寫個人資料.索取中介程式
圖四:從電子郵件中下載中介程式 - 執行中介程式:
- 雙擊解壓縮資料夾中的Kinect2Scratch SDK 1.5,即會出現以下的畫面。
圖五:中介程式的操作介面 - 依據畫面的指示,先把Kinect連結至電腦,然後再按下「LAUNCH KINECT」的按鈕,此時即可看到實景資訊,之後會在實景資訊中辨識人體的骨架資訊。
- 當確認中介程式已抓到玩家的資訊時,玩家會呈現紅色,可以進一步按下「CONNECT TO SCRATCH」,此時玩家的資訊就會傳至SCRATCH中。
- 注意:「CONFIGURE SKELETON」乃是處理中介程式的設定,它的預設值乃是單人模式,需要手動連結Kinect與Scratch,只有截取X與Y軸的骨架資訊,若需要改變則勾選所需要的項目,設定值一旦更改後,不需每次執行時再做設定。
圖六:中介程式的設定
- 於Scratch中利用Kinect的資訊
在Scratch上編寫使用Kinect的程式,其方式並不困難,主要是運用「偵測」區塊中的程式。以下做簡單的說明:
- 打開Scratch程式之後,於程式區塊中點選「偵測」,在將滑鼠移至「滑桿的偵測值」的上方,此時按下右鍵,出現以下的畫面,點選「啟動遠端感應器」。
圖七:啟動遠端感應器
- 當遠端感應器啟動之後,選取「滑桿的偵測值」中的「滑桿」,就會出現如:頭、脖子、肩膀、手肘、手、腳等的偵測值。
圖八:Scratch可讀取不同的Kinect偵測值 - 由於在撰寫程式時通常並不一定連結Kinect,建議大家將相關的偵測值先複製至程式中以便使用。
- Stephen Howell在其網站上亦提供應用Kinect的Scratch程式供大家測試之用(http://scratch.saorog.com/wp-content/plugins/download-monitor/download.php?id=2)。
- 利用骨架的資訊可以很輕易地用來控制遊戲與動畫的進行,例如:圖九是利用右手的X軸座標(HandRight_x)來控制物件的X軸座標。
圖九:使用Kinect偵測值之範例
沒有留言:
張貼留言