- 追加された行はこの色です。
- 削除された行はこの色です。
[[2010a]]
#contents
*課題3の内容 [#i09a0b1c]
黄色いホイールを2個以上連射するロボットを作成し、以下の動きをするようにプログラムを作成せよ。ただし1,3は懐中電灯を2個使用し、ロボットの動作中は懐中電灯を動かさないがいろいろな距離や方向にある懐中電灯に対応できるロボットにすること。2は懐中電灯を1個使用し懐中電灯をゆっくり動かす。
-1. 全方向から2つの懐中電灯の方向を探しだし、懐中電灯を狙ってホイールを投げる。可能な限り正確な方向に投げること。
-2. 懐中電灯をゆっくり動かしたとき懐中電灯に向かって進み、懐中電灯の動きを止めれば一定の距離(懐中電灯から30cm以上離れた距離)まで近づいて懐中電灯を狙ってブロックを投げる。
-3. 全方向から2つの懐中電灯の方向を探しだし、40cmの距離に近づいて懐中電灯を狙ってホイールを投げ、懐中電灯に当てる。
懐中電灯の代わりに携帯のライトなどを利用してもよい。
*メンバー [#i587806c]
田島 美斎津
*ロボット [#h847e09e]
**説明 [#u8220587]
**構造 [#u8220587]
-全面
#ref(F1000489.JPG)
-発射装置
#ref(F1000490.JPG)
-発射装置の内部
#ref(F1000492.JPG)
**問題点 [#s9297519]
-二発目を打つとき、弾がつまる時があること
-目標を狙う精密さがあまりないこと
**工夫した点 [#a160fc8f]
-弾が旋回していると飛ばないように、斜めのパーツを使った
-なるべくコンパクトにして、バランスをよくした
*プログラム [#o99b1f64]
**田島のプログラム(選択1) [#q0dc9a91]
**美斎津のプログラム(選択2) [#k9186c38]
#define light 65 //懐中電灯の光の値
#define go_straight OnFwd(OUT_C+OUT_A);Wait(100);//まっすぐ進む
#define TURN OnFwd(OUT_C);OnRev(OUT_A);//旋回する
#define shoot 80//弾を打つときの光の値
#define shot OnRev(OUT_B);Wait(10);OnFwd(OUT_B);Wait(30);Off(OUT_B);//玉を打つ
task main()
{
SetSensor(SENSOR_3, SENSOR_LIGHT);//センサー3を光センサーとする
int count=0;//弾を打った回数
while(count<2)//弾を二回打つまで繰り返す
{
if(SENSOR_3 > shoot)//光センサーが懐中電灯に近づいたとき
{
Off(OUT_C+OUT_A);//1秒止まる
Wait(100);
shot;//弾を打つ
count++;//弾を打った回数を増やす
}
else if(SENSOR_3 > light)//光センサーが懐中電灯に反応したとき
{
go_straight;//まっすぐ進む
}
else//光センサーに反応がないとき
{
TURN;//旋回する
}
}
Off(OUT_C+OUT_A);//弾を二回打ったときロボットを停止させる
}
*感想 [#s24a843d]
**田島 [#v470eea9]
**美斎津 [#p176d48c]
-プログラムを作るのは、前回に比べ楽だったが、弾を二連射させるロボットを作るのに時間がかかった。
-懐中電灯が左に行ったときも、右に回るため光を追うのに時間がかかった。
-光センサーを二個使ってみるとよりロボットが素早く行動してくれるだろうと思いました。
#comment