課題3目次
半径1m以内にある懐中電灯を探して、懐中電灯にピンポン玉を当てるロボットを製作する。 ただしロボット本体が懐中電灯に接触しない限りどこからピンポン玉を放ってもよい。
・ロボットの本体の部分は前回の課題のロボットと同じである。またセンサーを横にして、本体の上につけた。
・今回はきちんとボールを放ち懐中電灯に当てなければならなかったので、本体にその動作が可能となる仕組みを取り付けた。タイヤを回転させておくことにより、ボールをつかんだ状態にしておき、また放つときは、タイヤを逆回転にしてボールを放つ。
#define RUN_TIME 480 //一周するのにかかる時間
task main()
{
SetSensor(SENSOR_2, SENSOR_LIGHT); OnFwd(OUT_B); //ボールを掴む
int lightmax=0 //しきい値
ClearTimer(1); //タイマー0をリセット
OnFWd(OUT_A);OnRev(OUT_C); //回転し懐中電灯を探す
while(FastTimer(1)<RUN_TIME) //一回転するまで
{ if(SENSOR_2>lightmax) //しきい値を超えたら
{
lightmax=SENSOR_2; //明るさを記録
}
}
OnFwd(OUT_A);OnRev(OUT_C); //回転
until(SENSOR_2==lightmax); //記録した値になるまで
OnRev(OUT_B); //ボールを離す
Off(OUT_ABC); } ・プログラムについては授業内のヒントとウェブ上のプログラムを組み合わせて作った。
・ロボットの説明の欄でも書いたが、今回の課題ではボールを放つ動作が必要だったので、そのような仕組みを持ったロボットが制作できてよかった。しかし、たまにボールをうまく取り込めていなかったりしたので、次回のロボコンではタイヤの位置などをしっかりと定めて一番安定する位置にしたいと思う。 ・プログラムについては今までに比べたら比較的スムーズに作成することができてよかった。しかし動きが安定せずにまっすぐに懐中電灯の方に向かってくれなかったりしたので、大変だった。 ・ロボコンではきちんと玉の受け渡しのできるロボットにしていきたい。