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++; } }