半径1m以内にある懐中電灯を探して、懐中電灯にピンポン玉を当てるロボットを製作しなさい。
ロボット本体が懐中電灯に接触しない限りどこからピンポン玉を放ってもよい。
課題2とは少し異なったロボットを使用した。
ボールを持つ部分を縦の形にしてタイヤを一つにした。
#define run_time 1500 //ロボットが一周する時間を15秒とする #define hanbun_rn_time 750 //半周する時間を定義する int MAX=0 //最も明るいところを記憶する変数 #define release Onfwd(OUT_B);Wait(100); //ボールを発射する動作
task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1を定義する ClearTimer(0); //タイマー0をリセット OnFwd(OUT_A); Wait(150); //ロボットを15秒間時計回りに回転させる While(Timer(0) <= run_time) //タイマーが15秒以下のとき { if(SENSOR_1 > MAX) //今の明るさがどの明るさよりも明るい場合 { MAX=SENSOR_1; //変数MAXの値を今の明るさの値に置き換える TIME=Timer(0); //その時間を変数TIMEに代入し記憶する } } if(hanbun_run_time) //もし、最も明るい場所が半回転より近い場所にあれば { OnFwd(OUT_A); //そのまま時計回りをさせる Wait(TIME); //変数TIMEに記憶させた時間だけ回転しその場所へ行く release; //その場所でボールを投げる } else { TIME=RUN_TIME - TIME; //もし、最も明るい場所が半回転より遠い場所にあれば Onfwd(OUT_C); //反時計回りをする Wait(TIME); //もっとも明るい場所を向く release; //ボールを投げる } }
今回のプログラムは黒板に書かれたものと過去の先輩方のものを模倣して作成しました。
プログラムしている中で内容が理解でき、自分の中でも納得することができました。
このゼミで学んだことを今後も覚えてどこかで役立てていきたいと思いました。