Robot Cを試してみた

ちと余裕ができたので、LEGO Mindstorms NXTを動かしてみます。
RobolabとかGUI環境はめんどくさいので、C言語で動かしてみます。

使ったのはRobot C。これ、カーネギーメロン大学で作られたっぽいですね。

とりあえず何でもついてるロボットを動かす

ロボットは付属のドキュメントについてた、センサー類がなんでもついてるやつです。


タッチセンサ、ライトセンサ、超音波センサ、etc

とりあえずなんでも試せますね。

LEGO Mindstorms NXTではUSBケーブルでプログラムをダウンロードする

それでは、PCとLEGO Mindstorms NXTをUSBのケーブルで接続します。NXTのブロックの上側にケーブルの差し込み口がついてます。

RCXでは、赤外線でプログラムやらファームウェアをダウンロードしてたので、途中で失敗することがよくありました。でも、NXTでは有線なので、そういう心配がないのがうれしいですね。

Robot Cで環境設定

それでは、Robot Cを立ち上げます。
すでに、ファームウェアは入ってるんですけど、手順の確認のために、ファームウェアのダウンロードをやります。

まずは、プラットフォームをNXTにします。

その次に、リンクのセットアップ。ファームウェアなどをダウンロードするモードに移行します。
この時点で、NXTが起動してなかったりすると、エラーが出たりします。

お、出ました。出ました。
「F/W Download」を押すと、ファームウェアを選択する画面が出ます。ファームウェアは、<インストールディレクトリ>\Robotics Academy\RobotC\firmware images\の中にあります。
無事ダウンロードができたら、プログラムをダウンロードします。

プログラムのコンパイルとダウンロード

File -> Open and Compileと選んで、ファイルを選択します。
とりあえず、<インストールディレクトリ>\Robotics Academy\RobotC\sample programs\NXT\motor\nxt_loop1_while.cにでもします。

内容はこんな感じ。前行って、少し回転してを20回繰り返すというもの。僕のロボットでは、モータのがBとCのポートに接続されてるので、こんな感じになります。

task main()
{
   int i = 0;
   while(i < 20) {
         motor[motorB] = 75;
	 motor[motorC] = 75;
	 wait1Msec(4000);

         motor[motorB] = 75;
	 motor[motorC] = -75;
	 wait1Msec(750);
         i++;
       }
}

動かしてみよう

ダウンロードができたら。ロボットを床において、オレンジのボタンを押します。
うおー動いたー

この瞬間がたまりませんね。

明日は、サンプルをあさりながら、いろいろやろうかな。