SSブログ

iCommandを試す [LEGO]

先日はBluetoothで手間取ったが、本格的に例の本のトレースを再開した。
leJOSの別プロジェクトにiCommandがある。これはBluetoothを使ってNXTをコントロールするPC側のAPIで、NXT本体は標準のNXTファームウエアを使う。

例によってこれも手こずる。結局Eclipseを使う場合、以下のような手順で実行までこぎ着けた。
(1) iCommandをダウンロードして解凍

(2) シリアル制御のJAVAライブラリRXTXをダウンロードして解凍

 このとき、zipファイルの解凍に手こずった。2〜3の解凍ソフトを使ったがだめで、結局Macで解凍できた。原因不明。

(3) 解凍後のiCommandフォルダ内にあるicommand.propertiesを修正し
  所定の場所におく

 修正内容は以下の通り。
  nxtcomm.type=rxtx
  nxtcomm=COM5(コントロールパネル「Bluetoothデバイス」で確認しておく)
 保存場所は、¥Documents and Settings¥<ログインユーザー名>

(4) EclipseでPC側の制御ソフトをコーディングする

(5) Eclipseの「プロジェクト」「プロパティー」「Javaのビルド・パス」で
  以下の外部JARを2つ追加する

 ・icommand.jar
 ・RXTXcomm.jar

(6) RXTXcomm.jarのネイティブ・ライブラリ・ロケーションを、
  rxtxSerial.dllのフォルダに設定する

 このdllはRXTXを解凍したフォルダ内にある

(7) 実行時に、COMポートを設定するウインドウが出現したら、使用するCOMポートに
  チェックしてsaveする

 このウインドウをクローズするとプログラムが終了してしまう。最初は訳が分からなかった。Eclipseを立ち上げ直すなどしているうちに出なくなった。原因不明。

(8) 正しく動作すると「Enter commands」という1行分のウインドウがでてくるので、
  ここでキーを入力する

といったところか。そしてBluetoothで制御される車型ロボット「MoonBuggy」を製作して動作させてみた。
lego21.jpg

この本のメカは今ひとつで、期待通りに動かない。前進後退と、ステアリングの左右ができるのだが、実際に走らせると重さや摩擦に負けてしまう。電池がへたってきてモーターにパワーがないことも原因だが、メカの方もかなり改善余地はある。

なお、記載されているJAVAプログラムに一点修正がある。
P169の50行目後半は、〜 Motor.B.getTachoCount()); が正しいと思う。オリジナルだとコンパイルエラーになってしまう。ちなみにiCommandのバージョンは0.7を使用。


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

Windows XP SP3でBluet..Chess Robotを作った ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。