2016a/Member

はじめに

 ラインを辿ってAからBへ移動するプログラムをつくった
2016a-mission2.png

ロボット

 ラインを読み取る光センサーを前側の中央に取り付けた。

image(1).jpeg

結果

 なめらかに動かすまでには至らなかったが一応ゴールまでは到達した。
 交差点の識別は黒を認識した秒数の長さによって識別することにした。
 しかし最後の交差点は直進してしまい用紙からはみ出した時点で黒線を探し、コースへ
 戻るプログラムになってしまった。解決策として交差点で向きを修正するプログラムを試したが
 うまく行かなかった。 

定義

#define BLACK  34&br;
#define WHITE 60&br;
#define LEFT OnFwd(OUT_B,50);OnRev(OUT_C,20);      //左に曲がる&br;
#define RIGHT OnFwd(OUT_C,50);OnRev(OUT_B,20);     //右に曲がる&br;
#define nMAX 300                                   //nMAXは0.3秒&br;
#define short_break Off(OUT_BC);Wait(1000)         //1秒止まる&br;
#define STEP 1                                     &br;

プログラム

task main()
{
 SetSensorLight(S2);           //センサーライトを端子2にセット
 int nOnline=0;                //  ライン上にある秒数
while(true){                  //以下の条件で実行
  while(nOnline < nMAX){       //0.3秒以上ライン上にいるとき
  if (SENSOR_2<BLACK) {        //センサーの値がくろのとき
    LEFT;                      //左に曲がる
   } else                      //条件以外の時
  if (SENSOR_2<WHITE) {        //センサーの値が白の時
    RIGHT;                     //右に曲がる
   }
   nOnline=0;                  //nOnline=0まで戻る      
  }
  Wait(STEP);                  
 }
 short_break;
 nOnline=0;
  }
}

感想

プログラムを簡単にするのが難しく、{}の中が少し長くなってしまった。
ゴールするまではなんとかなったが、最後までジグザグ走行する状態からなめらかに走行する
プログラムに改善することができなかった。
しかし交差点の判別にはなめらかな動きをするプログラムを作ることができた。


添付ファイル: file2016a-mission2.png 91件 [詳細] fileimage(1).jpeg 108件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-07-27 (水) 11:16:48