[[2009b]]
#contents

作成中です
*課題3  [#vc5171e0]
~
懐中電灯に向かってブロックを投げるロボットを作ろう!

*チーム [#jcf2f834]
チーム名「自由気ままにB級人生(仮) 」~
 A:
 B:
 C:
*ロボット [#k8d080ba]
before
&ref(./GetAttachmentb.jpg,サイズ,画像の説明);
&ref(./GetAttachmenta.jpg,サイズ,画像の説明);
&ref(./c.jpg,サイズ,画像の説明);

after
&ref(./d.jpg,サイズ,画像の説明);
*プログラム [#hb34a8d7]
*A改めシンゴのプログラム [#p76bd8b2]〜 [#b863026f]


 #define THRESHOLD 35
 task main()
 {
 SetSensor(SENSOR_1,SENSOR_LIGHT);
 SetSensor(SENSOR_3,SENSOR_LIGHT);
 while( (SENSOR_1 < THRESHOLD)||(SENSOR_3 < THRESHOLD) )
 {
 OnFwd(OUT_B);	
 Off(OUT_A);
 }
 repeat(3)
 {             
 OnRev(OUT_A);
 Wait(30);
 OnFwd(OUT_A);
 Wait(30);
 }
 Off(OUT_A);
 OnFwd(OUT_B);Wait;(20);
 Off(OUT_B);
 OnFwd(OUT_C);Wait(20);
 Off(OUT_C);
 }

*B改めまさやのプログラム [#v239ebf9]
「7秒以上追尾できたら懐中電灯に向かってブロックを投げる。」を担当
 #define hit OnFwd(OUT_A);Wait(38);Off(OUT_A);      //ブロックを打つ動作
 #define revolver OnFwd(OUT_C);Wait(184);Off(OUT_C);//リボルバーを90度回す
 #define turn_r OnFwd(OUT_B); //右折
 #define turn_l OnRev(OUT_B); //左折
 #define shine 60             //光の明るさ
 #define run_time 700         //光を追う時間
 #define keep Off(OUT_B);     //停止
 
 task main()
 {
      SetSensor(SENSOR_1, SENSOR_LIGHT);   //光センサー1を決める
      SetSensor(SENSOR_3, SENSOR_LIGHT);   //光センサー3を決める
      while(true){
        if((SENSOR_1 < shine)&&(SENSOR_3 < shine)){        //両方の光センサーが暗いとき
           turn_l;                                         //左に回って光を探す
           until((SENSOR_1 > shine)||(SENSOR_3 > shine));  //どちらかの光センサーが光を見つけるまで
           keep;Wait(10);                                  //見つけたら停止
          }
        ClearTimer(0);                                     //タイマーをクリア
        while(((SENSOR_1 > shine)||(SENSOR_3 >shine))&&(FastTimer(0) < 700)){
           if((SENSOR_1 > shine)&&(SENSOR_3 < shine)){     //左側に光がある時
             turn_l;                                       //左に曲がって光を追う
             until((SENSOR_1 > shine)&&(SENSOR_3 > shine));//正面に光が来るまで
             keep;Wait(10);                                //正面に来たら停止
             }
           if((SENSOR_1 < shine)&&(SENSOR_3 > shine)){     //右側に光がある時
             turn_r;                                       //右に曲がって光を追う
             until((SENSOR_1 > shine)&&(SENSOR_3 > shine));//正面に光が来るまで
             keep;Wait(10);                                //正面に来たら停止
             }
           if((SENSOR_1 > shine)&&(SENSOR_3 > shine)){     //正面に光がある時
             keep;                                         //停止
             }
          }
        PlaySound(SOUND_UP);    //7秒光を追えたら音を鳴らす
        revolver;Wait(10);      //リボルバーを回転
        hit;Wait(10);           //ブロックを打つ
        keep;                   //停止
      }
 }
なぜか懐中電灯の光を無視してしまうことがあり、7秒間光を追わせることが難しかったです。

*コメントのコーナー [#nd5b8867]
コメントをどうぞ。
#comment

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS