硬體部分
▲Kinect
Kinect機身上有3顆鏡頭,一次可擷取三種資訊,分別是彩色影像、3D深度影像、以及聲音訊號。 RGB彩色攝影機,用來錄製彩色圖像,也就是辨識玩家身分(靠著人臉辨識和身體特徵)、以及辨識基本的臉部表情。解析度為1280*960。 3D深度影像 左右兩邊鏡頭則分別為紅外線發射器和紅外線CMOS攝影機所構成的3D深度感應器,用來擷取深度數據(場景中物體到攝影機的距離),Kinect主要就是靠3D深度感應器偵測玩家的動作。解析度為640*480。骨架偵測
利用Kinect取得深度影像串流,並從中取得骨架資訊,利用追蹤骨架節點坐標,來標示手部和頭部位置。透過 Kinect的骨架追蹤功能,我們可以追蹤出20個關節點,用程式畫出人體骨架,並指定追蹤特定節點。 Kinect就是以紅外線發出人眼看不見的class 1雷射光,透過鏡頭前的diffuser(光柵、擴散片)將雷射光均勻分佈投射在測量空間中,再透過紅外線攝影機記錄下空間中的每個散斑,擷取原始資料後,再透過晶片計算成具有3D深度的圖像。
Kinect | 骨架追蹤 |
▲Arduino
arduino介紹: 採用基於開放遠始碼的軟硬體平台,建構於simple I/O介面板,並具有使用類似Java、C語言的Processing/Wiring開發環境。 功能: 使用者可以在 Arduino 板子上接上各種電子裝置,例如 LED 燈、喇叭、馬達、開關、溫濕度感測器、紅外線發射與接收器、LCD 顯示裝置,以及 Ethernet, WiFi, XBee, Bluetooth, RFID, GPS 等各種通訊模組。若再配合撰寫一些自動控制的程式,就能利用 Arduino 做出各式各樣的自動控制應用,例如利用溫度感測器控制風扇的運轉、使用可變電阻控制燈光的明暗、控制馬達的轉速、利用紅外線遙控家電/ 利用伺服機 (Servo) 控制機械手臂或機器人,以及製作自走車、飛行器等等。紅外線控制
發射訊號來控制irobot,每個指令都有相對應的編碼,利用processing程式設定完成後,即可控制irobot到達指定位置
Arduino | 紅外線發射器 |
▲IRobot
irobot介紹: 使用轉輪向前移動並且旋轉到其它方向。利用一對旋轉方向相反的電刷從地上撿起灰塵,灰塵隨後被真空吸塵器氣流引導到一個狹窄的縫隙以增加其速度,以便收集細粉塵。底部的右手邊設有側邊刷,負責將主刷無法吸到的灰塵掃入主刷。使用鎳氫電池(NiMH)驅動,工作完成後可通過紅外信標引導自我充電,在停泊處充電需要大約三個小時。可使用擴充嵌入式電腦連接到其開放式介面時,並輕鬆勝任其它機器人的工作。軟體部分
Processing
Processing介紹: Processing 是一種具有革命前瞻性的新興電腦語言,她的概念是在電子藝術的環境下介紹程式語言,並將電子藝術的概念介紹給程式設計師。她是 Java 語言的延伸,並支援許多現有的 Java 語言架構,不過在語法 (syntax) 上簡易許多,並具有許多貼心及人性化的設計。Processing 可以在 Windows、MAC OS X、MAC OS 9 、Linux 等作業系統上使用 功能: 1.分析Kinect影像資訊 2. 控制Arduino 在設備運行時,需要從Kinect所提供的影像資訊中分析、判斷,並根據結果對Arduino下達指令,以發射紅外線訊號或者透過網路發送貼文。為了達成上列功能選擇Processing為開發環境。
processing | 功能 |