課題3の1

担当:いっせー

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

実際のプログラム

#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(); //投げる
        }
}

工夫点

●今後の作課題を楽にするためサブルーチンを積極的に活用した。

苦労した点

●この段階では特になし。

改善点

●光が当たっても、反応しない時がある。旋回速度が早すぎるのだろうか?

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

感想

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

←戻る

→次へ

見出しへ戻る


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-07-12 (木) 21:09:52