[[2009a]]
*目次 [#hbac6103]
#contents
*課題3:懐中電灯に向かってブロックを投げるロボットを作ろう! [#u9509fbc]
1,全方向から懐中電灯の方向を探しだし、懐中電灯を狙ってブロックを投げる。方向を定めたのち、懐中電灯の30cm以内に近づかない範囲で必要な距離を移動してもよい。懐中電灯は動かさないが、いろいろな距離や方向にある懐中電灯に対応できるロボットにすること。
&br;&br;2,懐中電灯をゆっくり動かしたとき懐中電灯に向かって進み、懐中電灯の動きを止めれば一定の距離(懐中電灯から30cm以上離れた距離)まで近づいて懐中電灯を狙ってブロックを投げる。
&br;&br;3,懐中電灯を動かしたとき懐中電灯に向かって進み、見失った時には再び全方向から懐中電灯を探しだす。7秒以上追尾できたら懐中電灯に向かってブロックを投げる。
&br;&br;以上の中から1人1つ以上のプログラムを作ること!
*ロボットの説明 [#aa3ecd62]
本体&br;
&ref(kadai3honntai.jpg);見にくいですが投げる部分はなるべく長くして遠心力で飛ばすようにしました
&br;裏&br;
&ref(kadai3ura.jpg);先生が紹介して下さったディファレンシャルギアを使うことにしました。また前輪は滑りやすいパーツを使いました。
*プログラムの説明 [#u7faaac1]
**課題1byひろ [#g63b5408]
#define THRESHOLD 42
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
if(SENSOR_1 < THRESHOLD) //センサーが感知した値が定義した値より低かったとき
{
OnFwd(OUT_A); //前進
}
if(SENSOR_1 < THRESHOLD && SENSOR_1 < 46) //感知した値が定義した値より低く46よりも低いとき
{
OnFwd(OUT_A);
Wait(10);
OnFwd(OUT_C);
Wait(10); //ちょっと前進してブロックを投げる
}
if(SENSOR_1 > 45) //45よりも感知した値が高いとき
{
OnFwd(OUT_C);
Wait(5);
Off(OUT_A+OUT_C); //ブロックを投げて停止する
}}
**課題2by Fahim [#w8d955a3]
*プログラム [#gb130be4]
#define THRESHOLD 40
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
while(true)
{
if(SENSOR_1 < THRESHOLD)
{
OnFwd(OUT_A); //光の方向へ進む
}
else
if(SENSOR_1 < THRESHOLD && SENSOR_1 < 45)
{
OnFwd(OUT_A);
Wait(10);
OnRev(OUT_A);
Wait(10);
}
else
{
if(SENSOR_1 > 40)
{
OnFwd(OUT_C); //止まってブロックを投げる
Wait(5);
Off(OUT_A+OUT_C);
}
}
}
}
*最後に [#l1b32d4c]
コメントよろしくお願いします
- 懐中電灯どの方向にあっても探す or 追跡できるようなプログラムを作りましょう。 -- [[FI]] &new{2009-07-28 (火) 08:58:37};
#comment