10
LeapMotionpythonで遊ぶ monochrojazz@python東海 2016/10/29

LeapMotionとpythonで遊ぶ

Embed Size (px)

Citation preview

LeapMotionとpythonで遊ぶ

monochrojazz@python東海 2016/10/29

自己紹介のようなもの

● @monochrojazz(27)● セキュリティに興味 が、初心者● 致命的な音ゲーマー

音ゲーコントローラを自作アプリも自作(Android)

LeapMotion

● 手の動きを赤外線で検知する装置(約$100)● 指の関節の状態までわりと緻密に検知

● 開発者向けにSDKが公開されており、pythonでも手の位置情報が取得可能

今回の要旨

● LeapMotionとpythonで手の動き取得

● RaspberryPiにデータを送る

● GPIOからデータ出力、マイコンボード(mbed)へ

● mbedから自作Androidアプリへ

● 空中の手の動きで音ゲー操作!

LeapMotion Setup● debファイルは公式からダウンロード

dpkg -i Leap-2.3.1+31549-x64.deb

● が、このままではserviceが何故か起動しないのでserviceファイル作成

http://qiita.com/mu-777/items/4dd6b4c657fb9c676bdc に従い

gedit /lib/systemd/system/leapd.service

sudo ln -s /lib/systemd/system/leapd.service /etc/systemd/system/leapd.service

systemctl daemon-reload

sudo service leapd start

● 私の環境ではこれでもやや不安定(serviceが落ちる)だったため/etc/init.d/leapdを消して改めて再生成した(apt-getしてたら自動で作られてた)不安定さはほぼ解消した

LeapMotion Setup● python用に動的ライブラリをSDKからコピー(ついでにサンプルコードも)

cd leap/

cp ../LeapDeveloperKit_2.3.1+31549_linux/LeapSDK/lib/Leap.py .

cp ../LeapDeveloperKit_2.3.1+31549_linux/LeapSDK/lib/x64/LeapPython.so .

cp ../LeapDeveloperKit_2.3.1+31549_linux/LeapSDK/lib/x64/libLeap.so .

● LeapMotionのpythonSDKはpython2のみ対応必要に応じて環境を整える

pyenv local 2.7.12

LeapMotionとpython

● こんな感じで手の動きがフレームごとに取得できる

● サンプルコードが丁寧なので詳細な使い方はそれを読んだ方が早い

フレームごとに呼ばれる関数

手や指の位置などが取得可能

LeapMotionとpython

● サンプルコードを改造して大まかな位置情報のみをRaspberryPiへ送信

実演

なんかもうごっちゃごちゃの図

終わりに

● 低難易度であればちゃんとゲームとして成立するぐらいには精度がいい

● 元々RaspberryPiから先はpythonで組んであったのでそれらと統合できることは非常に都合がよかった

● 音ゲー楽しい