2006b/A6/R Room/mission 2

製作者(TAKA)

 
#define THRESHOLD 42
task main(){
  SetSensor(SENSOR_1,SENSOR_LIGHT);  //センサー1を光センサーに
  SetSensor(SENSOR_3,SENSOR_LIGHT);  //センサー2をタッチセンサーに 
  SetSensor(SENSOR_2,SENSOR_TOUCH); //センサー3を光センサーに
  
 OnFwd(OUT_A+OUT_C);        //前進
    while(true)
    {
          if(SENSOR_1>THRESHOLD)   //センサー1の値が42以上になったら
          {
          Off(OUT_C);   // C側のタイヤストップ   
          OnFwd(OUT_A);  // A側のタイヤ正回転
          }
          if(SENSOR_3>THRESHOLD)  //センサー2の値が42以上になったら
          {
          Off(OUT_A);    //A側のタイヤストップ
          OnFwd(OUT_C);   //C側のタイヤ正回転
          }
else{OnFwd(OUT_A+OUT_C);}   //それ以外常に前進
         if(SENSOR_2==1)   //センサー2が反応したら   (ぶつかったら反転して進む)
          {
          OnRev(OUT_A+OUT_C); //後退
          Wait(60); 
          OnFwd(OUT_A);  //A側のタイヤ正回転
          OnRev(OUT_C);  //C側のタイヤ逆回転
          Wait(60);
          }
     }
}

改善版

制作(TAKA)

#define THRESHOLD 48

task main(){
 SetSensor(SENSOR_1,SENSOR_LIGHT);  //センサー1を光センサーに
 SetSensor(SENSOR_3,SENSOR_LIGHT);  //センサー2をタッチセンサー
 SetSensor(SENSOR_2,SENSOR_TOUCH);  //センサー3を光センサーに
  
 OnFwd(OUT_A+OUT_C); //前進
 while(true)
 { 
  if(SENSOR_1>THRESHOLD) //センサー1の値が48以上になったら
        {
         Off(OUT_C);  //C側のタイヤストップ
         OnFwd(OUT_A); //A側のタイヤ正回転
         }
else if(SENSOR_3>THRESHOLD) //それ以外のときにセンサー3の値が48以上になったら
         {
         Off(OUT_A);  //A側のタイヤストップ
         OnFwd(OUT_C); //C側のタイヤストップ
         }     
    else {OnFwd(OUT_A+OUT_C);}  //それ以外は前進
  if(SENSOR_2==1) //センサー2が反応したら(ぶつかったら反転)
         {
         OnRev(OUT_A+OUT_C); //後退
         Wait(60);
         OnFwd(OUT_A);  //A側のタイヤ正回転
         OnRev(OUT_C);  //C側のタイヤ逆回転
         Wait(120);   //1.2秒維持
         }
    }
 }
  • 上のプログラムだと動きがぎこちなかったので、センサー3の方の『if』を『else if』にして、動きを軽くしました。 あとターンの時間もうまくいかなかったので、変えました。

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