Lego MindStorms NXT Software

きょうは、先日に引き続きレゴ マインドストーム NXTに付属している、開発環境のお話。だんだん詳細に迫っていきます。

レゴ マインドストーム NXT
レゴ マインドストーム NXT

先日、NXTの開発環境の画面について説明した。今日はどのような形でプログラムが作成されていくのかの流れを簡単に説明する。

001
これが起動して新規にプログラムを作成したところ。まだ空っぽの状態です。

toolboxCommon 
左にある、パレットの一番上にある、歯車のようなアイコンtoolMoveを画面内の青いStartのところにドラッグアンドドロップする。

002
こんな感じで画面上にアイコンが表示される。

プログラムは、003 から始まり、白い棒に沿って動作していく。現在、スタートして歯車のブロック、すなわち「Move」の処理を行うということになっている。

画面の下に注目して欲しい。
004
これが「Move」のブロックに 対応するコンフィグレーションパネルである。
ここで、「Move」ブロックの動作の詳細を記述できる。

「Move」のブロックは基本的に、ロボットの移動に関するブロックである。通常、移動に関するモータはNXTの出力ポートBとCに接続するのだが、この出力ポートBとCをコントロールして、ロボット全体を移動させるのがこの「Move」ブロックの動作である。

005
どのポートに移動用モータを接続したのかを記述する。通常出力ポートBとCに移動用のモータを接続する。

006
モータの回転方向、すなわちロボットの移動方向を指定する。または、ロボットの停止を指示する。

007
ロボットのステアリング、すなわち向きを変える動作の量を指定する。
左右どちらにどのポートが繋がっているのか、また、左右の回転の割合を指定する。割合の差が大きくなると、左右逆回転することもある。

008
モータのパワーを%で指定する。MAXパワーで100である。モータなので、パワー=回転速度である。

009
移動量を指定する。ここでは単位を「Degrees(度)」「「Rotations(回転)」 「Seconds(秒)」から選択することができる。「Unlimited(制限なし)」も指定できる。「Unlimited」であれば、いわゆるいのしし状態となる。

010
移動が終わったあと、モータをどのように処理するかを指定する。
モータであるため、移動時にはモータに電圧がかかっている。指定された量モータを回転させた後、モータにブレーキをかけて停止させるか、それともモータを慣性で回すかを指定する。
移動量を厳密に指定させたい場合は、ブレーキをかけて、しっかり移動量を確保するだろうし、次の動作に滑らかにつなげたい場合は、慣性でまわす使い方をするだろう。

011
ここでは、2.3回転と指定してみた。それ以外はデフォルトのままである。

012
もうひとつ、左のパレットからモータブロックをドラックアンドドロップして並べた。

013
ついでに、方向を後ろ向きに、パワーを100に、モータの回転量を2.3回転に指定する。

これでプログラムは完成である。ちなみにこのプログラムはNXTの開発環境についてくる、チュートリアルの一番初めに出てくるプログラムである。

014
このボタンをおしてNXTにプログラムを転送して実際に試してみて欲しい。

015
プログラムの説明をする。
003からスタートしたプログラムは、最初の「Move」ブロックを処理する。すなわち、出力ポートBとCに繋がっているモータを順方向に 2.3回転させる。
次の「Move」ブロックでは、出力ポートBとCに繋がっているモータを逆方向に100のパワーで回転させる。

すなわち、このプログラムが動き始めると、
ロボットはモータの2.3回転分前進し、その後、モータの2.3回転分、フルパワーで後退する。

このような形でプログラムは書かれていく。

NXTには多くのブロックが用意されているし、それらのブロックの使い方も一つではない。これらの組み合わせにより、非常に表現豊かなプログラムをマウスの操作だけで書くことができる。

でも、僕としては、逆に普通のテキストエディタとコンパイル環境が欲しかったりして。。。

コメントを残す