MR-9172/9132用コンパスセンサーモジュール(MR-9142R)はKOROBO2(MR-9192)・KOROBO3(MR-9193)でも使うことができます。
コンパスセンサーにはタッチセンサー用の端子(TOUCH1,2)と光センサー用の端子(PTR1,2)があり、ここにタッチセンサーと光センサーを接続して使用することができます。
コンパスセンサーをKOROBO2メイン基板に取り付けるときは下の写真のようにタッチセンサー・光センサーの端子に差し込んで使用することができます。
基板を固定するときは付属のねじ付きスペーサー(六角形)2本を取り付けてネジ止めしましょう。
このコンパスセンサーは右の表のように、「今向いている方向に対して目標の方向は左右どちらの方向か」という情報を出力します。
出力先は、KOROBO2の基板のTOUCH RとTOUCH Lのポート(タッチセンサーをつなぐコネクタ)です。
これによりタッチセンサーは使えなくなりそうですが、このコンパスセンサーモジュールでは「コンパスセンサー」「タッチセンサー」のどちらの情報を出力するのかをコントロールすることができます。
Palette IDEではKOROBO2の光センサーの投光用LEDをON/OFFさせるためのアイコンを使ってプログラム上でセンサーの切り替えをします。
※コンパスセンサー上の赤色LEDが点灯(ON)しているときはコンパスセンサーの状態が出力され、消灯(OFF)しているときはタッチセンサーの状態が出力されます。プログラミングをするときは間違えないようにご注意ください。
※この切り替えをするため、光センサーに付いている投光用LEDのON/OFFのコントロールはできなくなります。(消えたままになります)
MR-9172/9132用コンパスセンサーモジュール(MR-9142R)を使って、コンパスセンサーとタッチセンサーの両方を使って動くKOROBO2のサンプルプログラムを下図に示します。
このプログラムの一部分(左側)だけを拡大して見てみましょう。
この初期化部分では数値定数を変数A・B・Cのそれぞれに格納しています。
変数Aはコンパスセンサー動作時のモータースピード、変数Bはタッチセンサー動作時のモータースピード、変数Cはタッチセンサー動作時の待機時間として使います。
残りのメインとなる右側を拡大して見てみましょう。
条件ループの中に入れ子になっている条件分岐が2組あります。左が「コンパスセンサーとして認識しているところ」、右が「タッチセンサーとして認識しているところ」です。
それぞれの条件分岐の前に投光用LED(左)のON/OFFによってコンパスセンサーを使用するか、タッチセンサーを使用するかを選択するための命令が入っていることがわかります。
このプログラムを実行させると、KOROBO2は「コンパスセンサーによって目標の方向を確認して左に目標があったら左回転、右に目標があったら右回転、目標の方向を向いていたら停止をして、タッチセンサーが反応したら0.5秒前か後ろに動く」という動作を行います。