#contents
*課題3 懐中電灯に向かってブロックを投げるロボット [#heba1f56]

**課題3の内容 [#o303b37b]
1.全方向から懐中電灯の方向を探しだし、懐中電灯に向けてブロックを投げる。懐中電灯は動かさない。

2.懐中電灯をゆっくり動かしたとき懐中電灯に向かって進む。 

3.懐中電灯をゆっくり動かしたとき懐中電灯に向かって進み、懐中電灯の動きを止めればブロックを投げる。


*メンバー紹介 [#e2b0d0cc]
   わかぐりーん/ろしあんぶるー
*ロボット紹介 [#u8d505a1]
*プログラム [#n8a6fe32]
**1つ目のプログラム:全方向から懐中電灯の方向を探しだし、懐中電灯に向けてブロックを投げる。懐中電灯は動かさない。 [#bcf30622]
 #define THRESHOLD 60     
 
 task main()
 {
    SetSensor(SENSOR_1,SENSOR_LIGHT);sensor1 光センサであると宣言  
    SetSensor(SENSOR_3,SENSOR_LIGHT);sensor3 光センサであると宣言
         
 while((SENSOR_1 < THRESHOLD) || (SENSOR_3 < THRESHOLD)){ OnFwd(OUT_A); Off(OUT_C);}
   
 
 Off(OUT_A);
  OnRev(OUT_C); Wait(20);  
  Off(OUT_C);}
 

**2つ目のプログラム:懐中電灯をゆっくり動かしたとき懐中電灯に向かって進む。 [#kd5e34b8]
 #define TURN_TIME 20     //動く時間を設定
 #define THRESHOLD 40   //閾値の設定
 
 sub turn_right()     //右回りに動く時間を定義
 {
     OnFwd(OUT_A); 
     Wait(TURN_TIME);
     Off(OUT_A);
 }
 
 sub turn_left()     //左回りに動く時間を定義
 {
     OnRev(OUT_A);
     Wait(TURN_TIME);
     Off(OUT_A);
 }
 
 task main()
 {
 SetSensor(SENSOR_1,SENSOR_LIGHT);      //センサ1を光センサに
 SetSensor(SENSOR_3,SENSOR_LIGHT);      //センサ3を光センサに
 
 while (true)
 {
  if ((SENSOR_3 > THRESHOLD) && (SENSOR_1 > THRESHOLD))  //センサの1と3が閾値を超えたら左に
     {  turn_left();             
     } 
  if ((SENSOR_1 < THRESHOLD) && (SENSOR_3 > THRESHOLD))  //センサ1は閾値を超えず、センサ3が閾値を越えた場合、右に
    { turn_right();
     } 
  if ((SENSOR_1 > THRESHOLD) && (SENSOR_3 < THRESHOLD))  //センサ1が閾値を超え、センサ3が閾値を超えない場合、左に
      { turn_left();   
      }
  if ((SENSOR_1 < THRESHOLD) && (SENSOR_3 < THRESHOLD))  センサの1と3がともに閾値を超えない場合、右に回って光を探す
      { turn_right();
       } 
       }
    Off(OUT_A);   
       } 
*苦労した点 [#bdd3c594]
top secretにあった形でロボを作っていたら、一方方向にしか回れない事が分かったため、
それを両方に回れるようにすることに苦労した。


*課題点 [#sad43e7e]
*まとめ [#m6609d64]

コメントをどうぞ
#comment

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