LEGO マインドストーム

このエントリーをはてなブックマークに追加
Bookmark this on Yahoo Bookmark

201307013mindstorm_logo

目次
概要 | 準備 | 遊び方 | Bluetooth 接続
画面の説明 メイン画面 | 傾きセンサ画面 | 音声認識 | ジョイステック画面 | 2本ジョイステック画面 | ゲームパッド画面 | NXT レポート画面 | NXT サウンド画面 | NXT プログラム画面 |
メニュー画面 | メイン画面のメニュー | ジョイステック画面のメニュー | 2本ジョイステック画面のメニュー | ゲームパッド画面のメニュー | その他の画面のメニュー
アクセス許可 | ソースコード


概要
「LEGO マインドストーム」は、Android 端末から LEGO Mindstorms NXT を操縦するコントローラです。
Android 端末のタッチパネル、傾きセンサ、音声認識などで操縦できます。また、ジョイステックゲームコントローラ を Android 端末に接続して、操縦できます。
Google Play からダウンロードしてください。
20130717mindstorms_system


準備
(1) LEGO Mindstorms NXT を用意します。
(2) 必要に応じて、ジョイステックゲームコントローラ を用意します。


遊び方
(1) Android 端末と NXT を Bluetooth で接続します。
(2) メイン画面では、ボタンにタッチすると、その方向に NXT が動きます。


Bluetooth 接続
Android 端末と NXT を Bluetooth で接続します。
(1) NXT の電源を入れて、Bluetooth 接続待ちの状態にします。
電源オン -> My Files -> Bluetooth -> On/Off
20130717nxt_my_files20130717nxt_bluetooth20130717nxt_on_off

(2) Android のアプリを起動します。
メイン画面の「Connect to Buletooth」「BT機器に接続する」ボタンにタッチします。
(3) Buletooth 機器の一覧画面が表示されます。
「SEARCHING FOR DEVICES」「BT機器を検索する」ボタンをにタッチします。
補足:
一度 NXT に接続すると、接続先を覚えているので、この画面はスキップします。
(4) 検索が成功すると、NXT が表示されます。
ここにタッチします。
20130717bluetooth_connect 20130717bluetooth_list20130717bluetooth_scaned

(5) NXT にて、Pairkey の画面と「1234」が表示されます。
オレンジボタンを押します。
20130717nxt_passkey

(6) Android にて、パスキーの入力画面が表示されます。
「1234」を入力します。
(7) メイン画面になり、タイトルバーに「BT=NXT」と表示されると、接続完了です。
20130717bluetooth_passkey 20130717bluetooth_connected


画面の説明

1. メイン画面
タッチパネルで操作する画面です。
(1) 9個の矢印ボタンがあります。
ボタンにタッチすると、NXT がその方向に進みます。
指を離すと、停止します。
(2) パワー制御 Power Control は、NXT の速度調整です。
(3) 8個のボタンがあります。
それぞれの画面を表示します。
(3-1) 傾きセンサ Orientation Sensor
(3-2) 音声認識 Voice Recognizer
(3-3) ジョイステック Joystick
(3-4) 2本 ジョイステック Two Joystick
(3-5) ゲームパッド Gamepad
(3-6) NXT サウンド NXT Sound
(3-7) NXT レポート NXT Report
(3-8) NXT プログラムリスト NXT Program List
20130717touch_move20130717main_button


2. 傾きセンサ画面
傾きセンサで操作する画面です。
(1) 初期状態
初期状態では、NXT の操作が無効になっています。
Android 端末が斜めになっていると、急に動きだすので、それを防止するためです。
Android 端末を水平にします。机の上に置くといいです。
中心の赤いボタンにタッチします。
(2) 操作状態
矢印ボタンが薄くなります。
Android 端末を傾けると、NXT がその方向に進みます。
傾ける角度で速度が変わります。約60度で最高速度になります。
水平にすると、停止します。
中心の青いボタンにタッチすると、初期状態に戻ります。
(3) 戻る BACK ボタン
メイン画面に戻ります。
20130717orientation_enable20130717orientation_move


3. 音声認識画面
音声で操作する画面です。
3G や Wifi などのインターネット接続が必要です。
(1) 初期状態
命令語が表示されています。
マイクのボタンにタッチします。
(2) 音声入力状態
命令語を発声します。
例えば「すすめ」
(3) 操作
命令語が正しく認識されると、NXT がその方向に進みます。
1秒後に停止します。
(4) 誤認識
命令語が正しく認識されないときは、推定された単語が表示されます。
20130717voice_start20130717voice_input20130717voice_move
20130717voice_not_recognize


4. ジョイステック画面
ジョイステックで操作する画面です。
ジョイステックコネクタ変換アダプタ が必要です。
(1) ジョイステックを Android に接続します。
「Added xxx」というポップアップが表示されます。
(2) ジョイステックを動かすと、NXT がその方向に進みます。
20130717joystick_added20130717joysick_move20130717joysick>20130717usb_adpter


5. 2本ジョイステック画面
2本のジョイステックで操作する画面です。
2本のジョイステックのついた ゲームコントローラコネクタ変換アダプタ が必要です。
(1) ゲームコントローラを Android に接続します。
「Added xxx」というポップアップが表示されます。
(2) 2本のジョイステックが、左右のモーターを独立に制御します。
ジョイステックは、前後の動作のみ有効です。左右の動作は無視されます。
例えば、左のジョイステックを前に倒すと、NXT の左の車輪が前進します。

20130717two_joysyick_move 20130717gemapad


6. ゲームパッド画面
4つのボタンで操作する画面です。
4つのボタンのついた ゲームコントローラコネクタ変換アダプタ が必要です。
(1) ゲームコントローラを Android に接続します。
「Added xxx」というポップアップが表示されます。
(2) 4つのボタンは、左の前進、左の後退、右の前進、右の後退に対応しています。
例えば、「左の前進」ボタンを押すと、NXT の左の車輪が前進します。
20130717gamepad_move20130717gamepad_button


7. NXT レポート画面
NXT の情報を取得します。
(1) Get Report ボタン
NXT に格納されている情報を取得します。
取得する情報は下記の3種類です。
(3-1) Firmware Version
(3-2) Battery Level
(3-3) Device Info
20130717report_first


8. NXT サウンド画面
NXT にて音を鳴らします。
(1) Get Sound File ボタン
NXT に格納されているサウンドファイルの一覧を取得します。
一覧に表示されたファイル名にタッチすると、NXT にてサウンドファイルが再生されます。
(2) Play Tone ボタン
Android に設定されている音を鳴らします。
3種類用意されています。
20130717sound_first20130717sound_file


9. NXT プログラム画面
NXT にてプログラムを実行します。
(1) Get Program File ボタン
NXT に格納されているプログラムファイルの一覧を取得します。
一覧に表示されたファイル名にタッチすると、NXT にてプログラムファイルが実行されます。
20130717program_first20130717program_file


10. メニュー画面
上段左のある「3つの点」がメニューボタンです。
ここにタッチすると、メニューが表示されます。
メニューは画面によって異なります。
20130717main_menu_start


10-1. メイン画面のメニュー
(1) BTアドレスをクリアする Clear BT Adderess
異なる NXT に接続するときに使用します。
このアプリは、接続したBT機器のアドレスを保存しています。
保存しているアドレスをクリアします。
(2) BT機器に接続する Connect BT Device
BT機器に接続します。
Bluetooth 接続 の (3) と同様に、Buletooth 機器の一覧画面が表示されます。
(3) BT機器と切断する Disconnect BT Device
接続中のBT機器と切断します。
(4) 一般設定 General Setting
用意されている設定は1つだけです。
(4-1) BT機器との通信内容を表示する Show Comm Msg with BT
BT機器との接続がうまく出来ない場合のデバックに使用します。
BT機器との通信内容を表示するか否かを設定します。
初期状態は、表示しないです。
(5) このアプリについて About
このアプリの概要を表示します。
(6) 使い方 Usage
このアプリの使い方が掲載されたWEBページが表示されます。
今、見ているページです。
20130717main_menu_list20130717main_menu_connect20130717main_menu_setting
20130717main_menu_about20130717main_menu_usage


10-2. ジョイステック画面のメニュー
(1) ジョイステックの設定 Joystick Setting
ジョイステックのキー割当を変更します。
青い矢印ボタンに相当する、ジョイステックの操作を行います。
最初は「前進」で、次は「左回り」です。
初期状態は、「前進」が Y軸 (− AXIS_Y) で、 「左回り」が X軸 (− AXIS_X) です。
(2) BTアドレスをクリアする Clear BT Adderess
(3) BT機器に接続する Connect BT Device
(4) BT機器と切断する Disconnect BT Device
(2)(3)(4) の3つはメイン画面と同じです。
20130717joystick_menu_list20130717joystick_menu_setting


10-3. 2本ジョイステック画面のメニュー
(1) 2本ジョイステックの設定 Two Joystick Setting
2本のジョイステックのキー割当を変更します。
青い矢印ボタンに相当する、ジョイステックの操作を行います。
最初は「左の前進」で、次は「右の前進」です。
初期状態は、「左の前進」が Y軸 (− AXIS_Y) で、 「左回り」が Z軸 (− AXIS_Z) です。
(2) BTアドレスをクリアする Clear BT Adderess
(3) BT機器に接続する Connect BT Device
(4) BT機器と切断する Disconnect BT Device
(2)(3)(4) の3つはメイン画面と同じです。
20130717two_joystick_menu_list20130717two_joystick_menu_setting


10-4. ゲームパッド画面のメニュー
(1) ゲームパッドの設定 Gamepad Setting
ゲームパッドのキー割当を変更します。
青い矢印ボタンに相当する、ゲームパッドのボタン操作を行います。
最初は「左の前進」で、次は「左の後退」で、以降「右の前進」、「右の後退」です。
初期状態は、「左の前進」が BUTTON_5 で、次は「左の後退」が BUTTON_7 で、「右の前進」が BUTTON_6 で、「右の後退」が BUTTON_8 です。
(2) BTアドレスをクリアする Clear BT Adderess
(3) BT機器に接続する Connect BT Device
(4) BT機器と切断する Disconnect BT Device
(2)(3)(4) の3つはメイン画面と同じです。
20130717gemapad_menu_list20130717gemapad_menu_setting


10-5. その他の画面のメニュー
(1) BTアドレスをクリアする Clear BT Adderess
(2) BT機器に接続する Connect BT Device
(2) BT機器と切断する Disconnect BT Device
(1)(2)(3) の3つはメイン画面と同じです。
20130717voice_menu_list


アクセス許可
このアプリでは2つのアクセス許可を要求します。
(1) Bluetoothの設定へのアクセス
Bluetooth が ON になっていないときに、ON を要求します。
(2) Bluetoothデバイスのペアの設定
Bluetoothデバイスとペアリングされていないとき、 ペアリングを要求します。


ソースコード
code google で公開しています。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">