Sphero2をLeap Motionで動かしちゃおー!(その2)

「おい仕事しろ」とそろそろ聞こえてきそうな今日このごろ、空きがあったので昨日の記事に引き続き、Sphero Advent Calendar 24日目の記事書きます!

Sphero2をLeap_Motionで動かしちゃおー!_その2____firegoby

昨日の話

昨日は、Leap MotionでSpheroを動かそうー!って話を書いたんですが、どうも操作感にしっくりこないものがあります。

たとえば、Spheroの方向を設定するためのキャリブレーションをCircleジェスチャーでするはずなんですが、これが全然うまく動いてくれません。

なので、手をほいと動かそうものなら、全く意図しない方向へ突っ走ってしまうんですよね。

あと、ボールを動かすジェスチャーのSwipeなんですが、これもいろいろと加減が難しくて、酔っ払い運転みたいになってしまいます。

そんなわけで、手のひらの傾きでSpheroをコントロールするように、イチから作り直しちゃいました。

https://github.com/miya0001/sphero-leapmotion

といっても、SpheroもLeap MotionもSDKがよく出来ててるので意外と簡単でびっくり。

さっそく遊んでみよー!

インストール方法は機能とほぼ同じです。

git clone git@github.com:miya0001/sphero-leapmotion.git
$ cd sphero-leap
$ npm install

このあとSpheroをMacをペアリングして、以下のコマンドを実行!

$ npm start

操作方法

キャリブレーション

ボールとMacとの接続が完了してSpheroが青くなったら、まずキャリブレーションをしてください。

キャリブレーションと言うのはですね、Spheroのしっぽにあたる青いLEDをこちらに向ける操作のことで、直進しろみたいな指示をするとこのしっぽの反対側に進みます。

キャリブレーションは、指を1本だけたてて、CircleジェスチャーでぐるっとLeap Motionのうえで回してください。

すると青いLEDが45度動きます。反対側に指を回すと反対側に動きますので、うまく微調整してください。

Spheroを動かす

キャリブレーションが終わったら、手のひらを広げてLeap Motionの上にかざしてください。

この時、手の平が下向きになってると、前に進みます。

上向きになってると、後ろに進みます。

同じく左右に傾ければ、左右に動きますのでいろいろ練習してみてください。

手の平を水平にするか、グーにすると、Spheroが停止します。

加速装置!

手の平の角度によってスピードをコントロールすることもできます。

ボールが走りだすと緑色に変わると思いますが、さらに手を傾けると黄色に変わり、速度がほぼ倍になります。

最後に

SpheroにしろLeap Motionにしろ、SDKがあるおもちゃは、プログラミング言語の学習には最高です。

プログラミングって専門書とかを読んでもなかなか頭に入らないというか気持ちが入らないんですが、今回のこれはNode.jsの仕組みにふれるいいきっかけになりました。

というわけで、何が言いたいかというと、Node.jsの勉強をしてるんですよ!遊んでるわけじゃないですからね!