Kinect开发笔记之五使用PowerShell控制Kinect

时间:2022-11-01 04:19:52

这是第一次用MarkDown编辑器来写博客,挺喜欢这种没有任何格式舒服的编辑器,*洒脱更加易读,留一个不自然的自然段纪念下找到舒服的编辑器。

这次要记录使用win7/win8内建的PowerShell来控制Kinect,改变Kinect的俯仰角度。

在我们安装Kinect SDK后,所有用来控制Kinect的驱动程序与相关函数库都已装进Windows中。所以我们可以直接使用Windows内置的PowerShell来对我们已经连接成功的Kinect进行最基本的控制。

首先我们先打开Powershell,按下Windows+R,调出运行窗口,并输入powershell,回车!
Kinect开发笔记之五使用PowerShell控制Kinect

我们会发现。。。出现了命令提示符一样的东西,显得有些低端。。。这里为了好看一些、高端一些、方便一些,我们调出powershell的集成脚本环境,我们在出现的命令提示符中输入ise,回车,我们就可以看到界面比较成熟的Ise,而且在我们写代码的时候,会有自动提示。
Kinect开发笔记之五使用PowerShell控制Kinect

Kinect开发笔记之五使用PowerShell控制Kinect

调出集成脚本环境后,我们在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中执行结果如下:
Kinect开发笔记之五使用PowerShell控制Kinect

在执行第一行脚本的时候,将看到系统响应已经加载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