iCommand APIをインストールした

今日は、LEGO Mindstorms NXTを制御するためのJava APIであるiCommand APIをインストールしました。

iCommand APIは、LEGO Mindstorms NXTマイコンにプログラムを置いて動かす感じではなく、Bluetoothを利用して、PCから遠隔操作する感じだと思われます。まだちゃんと調べてませんが。

iCommand APIはleJOS (LEGO Mindstorms用Javaプログラミング環境)のWebサイトから入手できます。

leJOS
http://lejos.sourceforge.net/

前に、RCX Java APIっていう赤外線経由でRCXを遠隔操作するJava APIを使ったことがあったんですが、これと位置づけは同じだと思います。赤外線がBluetoothに変わっただけという感じ。

RCX Java API
http://www.escape.com/~dario/java/rcx/

インストール環境

僕が使ってるノートPCの環境を書いておきます。開発環境はEclipseを使います。

作業手順

作業手順は以下のようになります。RXTXは、よく分かりませんが、シリアルポートやらをごにょごにょするためのJava APIみたいです。

  1. iCommandのインストール
  2. RXTXのインストール
  3. Bluetooth用のCOMポートの設定
  4. サンプルプログラムの実行

iCommandのインストール

まずは、iCommand APIのインストールです。2006年11月15日現在の最新バージョンは0.5です。ダウンロードはleJOSのWebサイトから。

leJOS
http://lejos.sourceforge.net/

アーカイブをダウンロードしたら、解凍します。icommand.jarというJARファイルがあるので、

などして、クラスパス上に配置します。Eclipseの場合は、プロジェクトのプロパティを開いて、「外部JARを追加する」で、icommand.jarを指定します。

これで、iCommand APIのインストールは完了です。

RXTXのインスト−ル

次は、RXTXのインストールです。RXTXのWebサイトからアーカイブをダウンロードします。

RXTX: The Prescription for Transmission
http://users.frii.com/jarvi/rxtx/download.html

これもJARファイルがあるので、iCommand APIの時と同様にして、クラスパスを設定します。

RXTXを利用する場合、いくつかDLLが必要になるので、パスが通ってるとこにRXTXのDLLを置かないといけません。方法としては、2つあります。今回は、Eclipseを使っているので、後者をとりました。

  • Javaのbinのディレクトリ (\bin\)にDLLをコピーする
  • (Eclipseの場合) RXTXcomm.jarのプロパティを開いて、「ネイティブライブラリのロケーション」の所で、「\Windows\i368-mingw32」を指定する。

これで、RXTXのインストールは完了です。

Bluetooth用のCOMポートの設定

続いて、Bluetooth用のCOMポートの設定です。

Readmeファイルによると、LEGO Mindstorms NXTのソフトウェアがインストールされていたら、COMポートの設定はできてて、あとはCOMポートを見つけるだけだだそうです。

When you installed the Lego software, it set up a COM port already. You just need to figure out how to find the COM port.

実は、LEGO Mindstorms NXTのソフトウェアをインストールしてないですが、このまま設定の仕方は書いておきます。

  1. マイコンピュータのプロパティを開き、ハードウェアタブのデバイスマネージャを開く
  2. ポートのツリーを開いて、COMポートの項目を見る
  3. リストの一番下にあるBluetoothのCOMポートを確認する (おそらくCOM4になっている)

ということで、まだ確かめていないのですが、BluetoothのCOMポートの名前がCOM4であると仮定して、そのまま続けます。

icommandのインストールディレクトリにあるicommand.propertiesというファイルをワーキングディレクトリにコピーします。Eclipseを使っている場合はプロジェクトのルートディレクトリ、使っていない場合は、Javaプログラムが置いてあるディレクトリになります。

ファイルを開くと、下のように書かれています。もし、ポートがCOM4でない場合は変更しておきます。

nxtcomm=COM4

これで、COMポートの設定は終わりです。

テストプログラムの実行

次に、テストプログラムの実行です。

RadioControl.javaやDirectControl.javaなどは、GUI付きのアプリケーションになってて、ボタン操作でNXTを操作できるみたいなので、こいつを動かしてみるとよいでしょう。


・・・・・

と思いましたが、よく考えたら、このノートPCはBlutoothが使えないことに気づきました orz
Bluetoothが使えるやつを探してきて、この続きを再チャレンジしたいと思います。

では、続編では、実際にLEGO Mindstorms NXTのロボットを動かすところをやりたいと思います。