LEGO マインドストーム を公開しました


201307013mindstorm_logo

「LEGO マインドストーム」を Google Play に公開しました。
Android 端末から LEGO Mindstorms NXT を操縦するコントローラです。

このアプリは、2年前にマインドストームを購入したときから、開発を開始しています。その後、徐々に改良してきました。
もう少し機能を追加して、ソースコードを奇麗にしたら、アプリを公開しよう、思いながら、延ばし延ばしになっていました。

明日開催される Google Demo Party にマインドストームを展示します。
これを機会に、Google Play に公開しました。

マインドストームは、7年前から市販されているロボットなので、Google Play には関連アプリが30個ほど公開されています。
今回のアプリの特徴は、ジョイステックコントローラー から操縦できることです。
Android 4.1 (API 16) から追加された InputManager を使っています。
ひとまず、世界初みたいです。

詳しい使い方は LEGO マインドストーム をご覧ください。

関連
アンドロイド から マインドストーム を動かす
アンドロイド の傾きセンサで マインドストーム を動かす
MINDdroid – Shooterbot
入力デバイスの一覧を取得する


ゲームコントローラー JC-U2312F


20130710jcu2312f_device20130710jcu2312f_view

Android に エレコムのゲームコントローラー JC-U2312F を接続する。
ジョイスティックやボタンの操作を確認するアプリを作りました。

GameControllerInput.java を参考にしています。
1つ工夫した点があります。
ジョイスティックの操作にて DPAD_UP などのイベントが発生します。
onGenericMotionEven にて true を返すと、このイベントが通知されません。
そこで、常に false を返すようにしました。

ソースコードは code.google にて公開しました。


Android に USB ゲームコントローラーを接続する – GameControllerInput.java


20130709game_controller_input

ApiDemos にサンプルコードがあります。
ApiDemos/src/com/example/android/apis/view/GameControllerInput.java

ジョイステックを使ったゲームになっています。
画面の左側に、全ての軸とボタンの値が表示されます。
画面の右側に、ゲームが表示されます。
中央に船 (緑色の矢印) があり、周辺に障害物 (青い丸) があります。
ジョイステックを動かすと、船がその方向に移動します。
何かボタンを押すと、船から弾 (黄色い丸) が出ます。

ApiDemos はごちゃごちゃしているので、 GameControllerInput.java を切り出して、code.google にて公開しました。

参考
TF101 Transformer のUSBポートにジョイスティックをつないでみた