[[2007a/A2/課題3右]]

**課題3の1 [#xc67549c]

担当:いっせー

『全方向から懐中電灯の方向を探しだし、懐中電灯に向けてブロックを投げる。懐中電灯は動かさない。』という課題にそったプログラムを作成した。

***実際のプログラム [#gb214d20]

 #define THRESHOLD 65 //光の強さの境界を65に設定
 #define RUN_TIME50 //今回は使用しない
 
 sub  straight() //前進するためのプログラム。今回は使用しない
 {
         OnFwd(OUT_A);
         Wait(23);
         Off(OUT_A);
         OnRev(OUT_A);
         Wait(12);
         Off(OUT_A);
 }
 
 sub throw() //モノを投げるためのプログラム
 {
     Off(OUT_A);
     OnRev(OUT_C);
     Wait(20);
     Off(OUT_C);
 } 
  
  
 task main () //課題1をこなすためのプログラム
 {
    SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1を光センサーに設定
    SetSensor(SENSOR_3,SENSOR_LIGHT); //センサー3を光センサーに設定
    
         while((SENSOR_1<THRESHOLD)&&(SENSOR_3<THRESHOLD)){ //両方のセンサーが反応なしの時
             OnRev(OUT_A); //旋回
         } while(SENSOR_1>=THRESHOLD) { //センサー1が反応したとき
             Off(OUT_A);
             OnFwd(OUT_A);
             Wait(20); //向きを調節。少し右を向く
             throw();  //投げる
         } while(SENSOR_3>=THRESHOLD){ //センサー3が反応した時
             Off(OUT_A);
             OnRev(OUT_A); 
            Wait(10); //向きを調節。少し左を向く
             throw(); //投げる
         } while((SENSOR_1>=THRESHOLD)&&(SENSOR_3>=THRESHOLD)) { //両方のセンサーが反応したとき
             Off(OUT_A);
             throw(); //投げる
         }
 }

***工夫点 [#eaf640f9]
●今後の作課題を楽にするためサブルーチンを積極的に活用した。

***苦労した点 [#n3780b2d]
●この段階では特になし。

***改善点 [#p4e59e23]
●光が当たっても、反応しない時がある。旋回速度が早すぎるのだろうか?

●他の班をみていると関数や変数(?)を使用しているところがある。研究して利用してみたい。

***感想 [#e7a67eee]
●とりあえず課題はこなせた。時間があったらさらに高度なプログラムに挑戦したい。

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