今回の課題は半径1m以内にある懐中電灯を探して、懐中電灯にピンポン玉を当てるロボットを製作しなさい。 ロボット本体が懐中電灯に接触しない限りどこからピンポン玉を放ってもよい。というものである。
今回の課題で使ったロボットは、課題2で使用したロボットとだいたい同じものを使用した。
課題2で使用したロボットの赤外線センサーを前に向けた。
ボールを放つ部分も、課題2で使用したものと同じにした。
#define turn_right OnFwd(OUT_A);OnRev(OUT_C);//右に曲がる #define turn_left OnFwd(OUT_C);OnRev(OUT_A);//左に曲がる #define runtime 360//本体が1回転する時間
task main() { SetSensor(SENSOR_2,SENSOR_LIGHT); int rightmax=0; int timemax=0; ClearTimer(0); turn_left;//左に曲がる while(FastTimer(0)<runtime){ if(SENSOR_2>rightmax){ rightmax=SENSOR_2; timemax=FastTimer(0); } }
Off(OUT_AC); turn_right;右に曲がる Wait(runtime-timemax);//1周の時間ーライトまでの時間 Off(OUT_AC); OnRev(OUT_B);//つめを回す(ボールを放つ) Wait(300); Off(OUT_B); }
ロボット本体をつくるのは、課題2で使用したものの、赤外線センサーを前に向けただけだったので簡単だった。
ただ、プログラミングは難しくてよく分からなかった。