タッチセンサによる壁に沿った移動(課題2)

task main()
{
    SetSensor(SENSOR_1,SENSOR_TOUCH); //センサ端子1に接続され
                                      //たセンサがタッチセンサ
                                      //であると宣言      
    SetSensor(SENSOR_3,SENSOR_TOUCH); 
    OnFwd(OUT_A+OUT_C); 
    until(SENSOR_1 == 1 || SENSOR_3 == 1); //センサ1の値が1あ
                                           //るいはセンサ3の
                                           //値が1になるまで
                                           //次の命令に進まな
                                           //い
    Off(OUT_A+OUT_C);         
    while(true)                      //動作を繰り返す
    { 
        if  (SENSOR_1 == 1)           //センサ1の値が1になった                                             
        {                             //ら
             OnFwd(OUT_A+OUT_C);
             until (SENSOR_1 == 0 || SENSOR_3 == 1);                
             Off(OUT_A+OUT_C);
        } 
        if  (SENSOR_3 == 1)           //センサ3の値が1になった
        {                             //ら
             Off(OUT_A+OUT_C);
	     OnFwd(OUT_A);
	     OnRev(OUT_C);
             Wait(165);
             OnFwd(OUT_C);
             until (SENSOR_1 == 1) ;  //センサ1の値が1になるま
                                      //で次の命令に進まない                                       
             Off(OUT_A+OUT_C);        
        } else {                      //上の2つの条件以外の時
                                      //の動作
             OnFwd(OUT_C);            
             until (SENSOR_1 == 1) ;
	     Off(OUT_C);
               }
      
    }
}
  • 感想
    結構思うような動きをロボットがしてくれてよかった。難しかったのは、ロボッ
    トが壁に正面から当たったときにどれくらい横に曲がれば次の動作につながって
    いくのかが、なかなかうまく把握できず、微妙な調整をしなければならなかった
    ことです。あと、ロボットをスムーズに動かすためにはどんなロボットにすれば
    良いかという点で悩みました。最終的にはいいものが仕上って良かったです。
  • // を使ったコメントはその行の // 以降だけがコメント文になります。したがって2行にわたるコメント文は2行目にも // を入れておいてください。 -- 松本(教員)? 2005-11-30 (水) 21:11:23
  • プログラムの文法を再確認しましょう。 -- かとりーぬ(TA)? 2005-12-16 (金) 18:42:09


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-12-21 (水) 12:00:22