ロボットの三要素の続き デバッグ

C-Styleでプログラムを作成したら、実際にロボット動かして動作確認し、プログラムをデバッグしていく。


ただし、動きからプログラムの状態を判断すると、勘違いも起こりやすく、LED表示を併用するにしても情報量が少ないので、確実にデバッグするには変数の値を実際に画面で確認するとよい。ロボットの3要素に分けてプログラムができていると、それぞれの要素ごとにデバッグができ、問題解決がしやすい。

デバッグの例がこちら。

先日のプログラムに19〜24行をデバッグ用に追加した。デバッグ用プログラムはif文中に書くと作業が楽になる。

  • (19行目)if文の条件をC-Codeにし、C-CodeにTRUEを入力と常に条件成立し if 文内が実行される。デバッグを止めるときは C-Code をFALSE にすると常に条件成立せずに if 文内けで済む。また本番プログラムにする場合はこの行を削除するとif文内もまとめて削除できる。
  • (20行目)変数Aの値を「A:」に続けて出力し、その後半角スペースを出力する。
  • (21行目)変数Bの値を「B:」に続けて出力し、その後改行を出力する。
  • (22行目)変数表示が見やすくなるように待機(0.1秒)
  • (23行目)continue を実行すると以後の処理を無視して、4行目の無条件ループに戻る。この部分までのデバッグをする場合、以後の処理を無視できる。以後の部分も引き続きデバッグする場合は continue を削除する。


実際に変数の値を画面に表示するには、センサーモニターを開き、「センサモニタ&出力チェック」の部分(マウスカーソルがある辺り)をダブルクリックする。すると、センサモニタ画面の下部に表示エリアが追加される。この状態でプログラムをスタートさせると、上の20,21行目の出力が次々に画面に表示される。

センサ値がいろいろ変わるようにロボットの周りの環境を変化させ、それぞれの状態の場合に変数値が意図する値になっているかどうか確認する。