[[2007b/MemberOnly/進行状況A]]
-----
CENTER:COLOR(navy):&size(22){課題3:懐中電灯に向かってブロックを投げるロボット};
-----
RIGHT:今日のアクセス数 &counter(today);
RIGHT:総アクセス数 &counter(all);
LEFT:目次
#contents
*課題 [#q0d8c8be]
インストの「top secret」を参考にして、ブロック(一番太いホイール)を投げるロボットを作成し、以下の動きをするようにプログラムを作成せよ。 (重複しないように一人一つ以上のプログラムを作成すること)

   1. 全方向から懐中電灯の方向を探しだし、懐中電灯に向けてブロックを投げる。懐中電灯は動かさない。
   2. 懐中電灯をゆっくり動かしたとき懐中電灯に向かって進む。
   3. 懐中電灯をゆっくり動かしたとき懐中電灯に向かって進み、懐中電灯の動きを止めればブロックを投げる。

ただし、モータ、光センサ、タッチセンサはそれぞれ2個まで使用可。懐中電灯の代わりに携帯のライトなどを利用してもよい。 →ヒント1 →ヒント2

(期限:1月9日午後6時)
*ロボット [#j7174426]
LEFT:&ref(./P1000002.JPG,85%,画像の説明);
LEFT:&ref(./P1000005.JPG,85%,画像の説明);
LEFT:&ref(./P1000006.JPG,85%,画像の説明);
LEFT:&ref(./P1000007.JPG,85%,画像の説明);
LEFT:&ref(./P1000008.JPG,85%,画像の説明);
LEFT:&ref(./P1000003.JPG,85%,画像の説明);
&ref(./P1000004.JPG,85%,画像の説明);
LEFT:&ref(./P1000009.JPG,85%,画像の説明);
&ref(./P1000011.JPG,85%,画像の説明);
&ref(./P1000012.JPG,85%,画像の説明);
*ソースコード [#v33696dc]
**条件:懐中電灯をゆっくり動かしたとき懐中電灯に向かって進む。 [#s85ed835]
 task main(){
   SetSensor(SENSOR_1, SENSOR_LIGHT);//右側光センサー
   SetSensor(SENSOR_3, SENSOR_LIGHT);//左側光センサー
   while(1){
     if(SENSOR_1<=35&&SENSOR_3<=35){//懐中電灯の光が当てられてないとき
       Off(OUT_A);//止まっている
     }
     else if(-15<=SENSOR_1-SENSOR_3&&SENSOR_1-SENSOR_3<=15){//懐中電灯の光が正面のとき
            OnFwd(OUT_A);//直進
            Wait(40);
            OnRev(OUT_A);
            Wait(40);
            Off(OUT_A);
         }
         else if(SENSOR_1-SENSOR_3>15){//右のほうが明るい時
            OnFwd(OUT_A);//右に進む
            Wait(40);
            Off(OUT_A);
         }
         else{//左のほうが明るい時
            OnRev(OUT_A);//左に進む
            Wait(40);
            Off(OUT_A);
         }
    }
 }
*考察 [#ub276c09]
*感想 [#xdcd050c]
*コメント [#h0ee0f99]
よろしければコメントお願いします。
#comment

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