MicrosoftのKinectをVisual Basic.NET Languageで首振りさせる

この投稿はLL/ML Advent Calendarの10日目のネタです。

  • はじまり

LL/ML Advent Calendarの編集者が所属している某社に妖精さんとして
潜り込んでいた時に捕獲されました。*1なごやこわい!!


ということでLLとかMLとかネタを考えないと・・・。
色々考えたが本当に何も思いつかないし風邪ひいてお腹痛いし
12月10日のネタ記事落としてしまうのか??と不安に思っていたら

!!
ここの人気プログラミング言語で「Cが1位を維持、Objective-Cの人気が続く - 12月プログラミング言語人気」という記事を読んでC言語系ですかぁ。


そうですか、C言語ですか!!
VBが虐げられている!!*2
(先月MicrosoftKinectのSDKをいれていてKinectネタ何かやろうとは思っていた。)

MicrosoftKinectVB.netで動かせばランキング上がるんだ。*3

  • 開発言語の選択

まず、選択したのはVisual Basic 2010理由はC#の言語設計者として知られる
アンダース・ヘルスバーグ氏が設計に携わりVBC#との格差が低減されているから。*4


そう!!Visual Basic 2010以降ならKinectが動かせる!!


ということで、本題

  • サンプル実装

まずは、インポート

Imports Microsoft.Kinect

つづいて、KinectSensorの定義

Namespace miguse.Kinect.Tilt
	Partial Public Class MainWindow
		Inherits Window
        Private sensor As KinectSensor

スライダーを動かすとKinectを上下にチルトするようようにこんな感じで記述

Private Sub Slider1_ValueChanged(sender As System.Object, e As System.Windows.RoutedPropertyChangedEventArgs(Of System.Double)) Handles Slider1.ValueChanged
      Private sensor As KinectSensor
            Try
                sensor.Start()
                sensor.ElevationAngle = CInt(Slider1.Value)
                sensor.Stop()
            Catch ex As Exception
                MsgBox(CInt(Slider1.Value))
            End Try
        End Sub

これで、VBでもKinectの首振りが出来ます。詳しくはMSDNをみてね。

*1:おかしたべられてしあわせー

*2:妖精さんの勘違いです

*3:かなり、勘違いしている

*4:Visual Studio 2010 or Visual Studio 2012でドライバを入れたPCがWindows7なのでVisual Studio 2010を選んだが真実