[[2009a]] #contents *課題 [#w47f5f89] +懐中電灯を狙ってブロックを投げるロボット +懐中電灯に向かって進み、懐中電灯の動きを止めればブロックを投げるロボット +懐中電灯に向かって進み、見失った時には再び探し7秒以上追尾できたら懐中電灯に向かってブロックを投げるロボット *ロボットの説明 [#edb1a6f7] #ref(2009a/A8/課題3左/090717_1716~01.jpg) -動きやすくするために3輪にした。 #ref(2009a/A8/課題3左/200907171634000.jpg) -車体の一番後ろからホイールを投げる。 #ref(2009a/A8/課題3左/200907171640000.jpg) -逆回転防止のロック *プログラム [#df92b6db] -懐中電灯を狙ってブロックを投げるロボット --ニシヤマのプログラム #define TURN_TIME 250 //ロボットが1周するのにかかる時間 task main() { int light_max=0; //光センサーの最大値 int t_max=0; //センサーが最大値の時刻 SetSensor(SENSOR_1,SENSOR_LIGHT);//センサー1は光センサー ClearTimer(0); //タイマーリセット OnFwd(OUT_A); //右回りに回転 while ( Timer(0)<TURN_TIME){ //繰り返し if(SENSOR_1>light_max){ //センサー1が今までより強い光を感知したら light_max=SENSOR_1; //最大値を現在の値に代入 t_max=Timer(0); //現在の値を最大値の時刻に代入 } } Off(OUT_A); Wait(50); OnFwd(OUT_A); //右回りに回転 Wait(t_max); Off(OUT_A); OnRev(OUT_C); //ブロックを投げる Wait(20); Off(OUT_C); } -光を追いかけて、近づいたときブロックを投げる --小林のプログラム #define light 40 //光が当たっているときの値を定義 #define throw 50 //光に近づいたときの値を定義 task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); //光センサーを認識させる SetPower(OUT_A,1); while(true) { if(SENSOR_1 > light) //光が当たっているとき { OnFwd(OUT_A); Wait(40); //前に進む OnRev(OUT_A); Wait(40); } if(SENSOR_1>throw) //光に近づいたとき { OnFwd(OUT_B); Wait(15); //ブロックを投げる Off(OUT_B); break; } } Off(OUT_A); //停止 } *感想 [#p110ae1f] -課題3を終えて --今回の課題3の2つ目では懐中電灯を探して30センチの所まで近づいて投げるというものだったのですが携帯のライトを使うといくら感度を上げてもなかなか反応しなくて苦労しました。 --今回は3回目の課題で今までで一番期間が短かったのですが、グループでしっかり打ち合わせをしてスムーズに進行できたと思います。 -ロボコンに向けて --いよいよ次はロボコンの作業に入りますがテスト期間に入りあまりたくさん時間はとれないと思うので班内で連携とりながら行いたいです。 *コメント [#uf6a83ee] コメントよろしくお願いします #comment