径1m以内にある懐中電灯を探して、懐中電灯にピンポン玉を当てるロボットを製作しなさい。 ロボット本体が懐中電灯に接触しない限りどこからピンポン玉を放ってもよい。
課題の2のロボットを少し改造したものを使った。改造点は、下に向けて付けてたセンサーを前に向けてロボットの上に付けた。この時センサーの周りをブロックで囲った。
#define right OnFwd(OUT_A);OnRev(OUT_C); //右に回る #define left OnFwd(OUT_C);OnRev(OUT_A); //左に回る #define time 400 //1回転するのにかかる時間 #define shoot OnFwd(OUT_B);Wait(200);Off(OUT_B);OnFwd(OUT_AC);Wait(150);Off(OUT_AC); //籠を上にあげて前進によるシュート
task main(){ SetSensor(SENSOR_2,SENSOR_LIGHT); int rightmax=0; int timemax=0; ClearTimer(0); left;//左に回る while(FastTimer(0)<sycle_time){ //一回転する間に if(SENSOR_2>rightmax){ //センサーの値が今までの最高値より高くなったら rightmax=SENSOR_2; //最高値にセンサーの値を登録する timemax=FastTimer(0); //時間も登録する } } Off(OUT_AC); right;右に回る Wait(sycle_time-timemax);//最高値にかかる時間を計算して回る Off(OUT_AC); shoot//籠を上げてボールをシュート Wait(300); Off(OUT_B); }
今回は時間がなかったが、前の課題と比べて割と簡単にプログラムを作ることができた。今回のように要領よくプログラムが作れればよいと思う。