這是第一次用MarkDown編輯器來寫博客,挺喜歡這種沒有任何格式舒服的編輯器,自由灑脫更加易讀,留一個不自然的自然段紀念下找到舒服的編輯器。
這次要記錄使用win7/win8內建的PowerShell來控制Kinect,改變Kinect的俯仰角度。
在我們安裝Kinect SDK后,所有用來控制Kinect的驅動程序與相關函數庫都已裝進Windows中。所以我們可以直接使用Windows內置的PowerShell來對我們已經連接成功的Kinect進行最基本的控制。
首先我們先打開Powershell,按下Windows+R,調出運行窗口,并輸入powershell,回車!
我們會發現。。。出現了命令提示符一樣的東西,顯得有些低端。。。這里為了好看一些、高端一些、方便一些,我們調出powershell的集成腳本環境,我們在出現的命令提示符中輸入ise,回車,我們就可以看到界面比較成熟的Ise,而且在我們寫代碼的時候,會有自動提示。
調出集成腳本環境后,我們在Ise中開始輸入腳本。我們要進行的操作是:加載Assembly——啟動Kinect——控制Kinect俯仰角——關閉Kinect。
[Reflection.Assembly]::LoadWithPartialName("Microsoft.Kinect")
[Microsoft.Kinect.KinectSensor]::KinectSensors[0].Start()
[Microsoft.Kinect.KinectSensor]::KinectSensors[0].ElevationAngle=13
[Microsoft.Kinect.KinectSensor]::KinectSensors[0].Stop()
我們每輸入一行,需要按下回車,Kinect會按照我們的腳本做出相應的調整。在Ise中執行結果如下:
在執行第一行腳本的時候,將看到系統響應已經加載GAC(Global Assembly Cache,存放系統共享.NET組件的地方)內部的.NET組件。
執行第二行腳本,Kinect傳感器啟動,我們可以注意到Kinect最左邊的紅外線投影機啟動,發出紅光。
執行第三行腳本,Kinect會很明顯的抬頭13度。
執行第四行腳本,與第二行腳本相對應,使用完之后要關閉Kinect,避免系統資源的額外浪費,也確保之后的程序范例順利運行。
我們也可以使用Powershell來開關Kinect for Windows的紅外投影機功能,這里我們前面提過,Kinect for Xbox是不具備此功能的。
這里我貼出代碼就不再一次在Ise中執行了。
[Microsoft.Kinect.KinectSensor]::KinectSensors[0].ForceInfraredEmitterOff=1
[Microsoft.Kinect.KinectSensor]::KinectSensors[0].ForceInfraredEmitterOff=0
當ForceInfraredEmitterOff=1的時候,是強制關閉,等于0的時候是開啟紅外,當然這段代碼也要放在Start()和Stop()方法之間執行。
當然使用PowerShell能夠做到的還遠不只這些,只是他不能作為我們開發的工具,只能在調試和熟悉Kinect的時候給我們很大的幫助。
注:此系列博文參考《Kinect體感程序設計入門》
2015.3.21 10:23
By Mr.Losers