LeapMotionを使ってみたかったので、プログラムをPythonで書いてみました。
今回は、認識されている手の本数と、指の数を取得してみたいと思います。
##開発環境
開発していく環境はこちらになっています。
- Windows8.1(64bit)
- Python 2.7.11
##環境構築
まずLeapMotionを利用するためにはSDKが必要なので、developerサイトからSDKをダウンロードしてきます。
ダウンロードしてきたフォルダを解凍すると、LeapSDKというフォルダがあるので、その中のlibフォルダを開くと、Leap.pyのファイルとx64フォルダの中にある、Leap.dllとLeap.libを使用します。
##ディレクトリ構成
今回のディレクトリ構成はこちらになります。
├─lib
│ └─x64
└─src
先ほどのLeap.pyをsrcの中に、Leap.dllとLeap.libをx64に配置します。
これでLeapMotionをpythonで扱うための準備は終わりです。
##実行
srcフォルダの中にtest.pyを作成します。ファイルの内容は以下の通りです。
import sys
sys.path.insert(0,"../lib/x64")
import Leap
class SampleListener(Leap.Listener):
def on_connect(self,controller):
print "Connected"
def on_frame(self,controler):
frame = controler.frame()
print "Frame id: %d, hands: %d,fingers: %d" %(frame.id,len(frame.hands),len(frame.fingers))
def main():
listener = SampleListener()
controller = Leap.Controller()
controller.add_listener(listener)
print "Press Enter to quit...."
try:
sys.stdin.readline()
except KeyboardInterrupt:
pass
finally:
controller.remove_listener(listener)
if __name__=="__main__":
main()
それでは、test.pyを実行してみましょう。ファイルは何かキーが押されるまで、実行されるようになってます。
python test.py
実行すると、Frame idと認識されている手の数、指の数がそれぞれ表示されます。
Frame id: 185744, hands: 2,fingers: 10
Frame id: 185745, hands: 2,fingers: 10
Frame id: 185746, hands: 2,fingers: 10
Frame id: 185747, hands: 2,fingers: 10
Frame id: 185748, hands: 2,fingers: 10
Frame id: 185749, hands: 1,fingers: 5
Frame id: 185750, hands: 1,fingers: 5
Frame id: 185751, hands: 0,fingers: 0
Frame id: 185752, hands: 0,fingers: 0
Frame id: 185753, hands: 0,fingers: 0
Frame id: 185754, hands: 0,fingers: 0
Frame id: 185755, hands: 0,fingers: 0
これで基本的なLeapMotionからのデータを取得することが出来ました。
以下は参考にしたサイトです。
1.https://developer.leapmotion.com/documentation/python/devguide/Project_Setup.html
2.https://developer.leapmotion.com/documentation/python/devguide/Sample_Tutorial.html