- 追加された行はこの色です。
- 削除された行はこの色です。
[[2009b]]
#contents
作成中です
*課題3 [#vc5171e0]
~
懐中電灯に向かってブロックを投げるロボットを作ろう!
*チーム [#jcf2f834]
チーム名「自由気ままにB級人生(仮) 」~
A:
B:
C:
*ロボット [#k8d080ba]
before
&ref(./GetAttachmentb.jpg,サイズ,画像の説明);
&ref(./GetAttachmenta.jpg,サイズ,画像の説明);
&ref(./c.jpg,サイズ,画像の説明);
after
&ref(./d.jpg,サイズ,画像の説明);
*プログラム [#hb34a8d7]
*A改めシンゴのプログラム [#p76bd8b2]〜 [#b863026f]
#define THRESHOLD 35
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
while( (SENSOR_1 < THRESHOLD)||(SENSOR_3 < THRESHOLD) )
{
OnFwd(OUT_B);
Off(OUT_A);
}
repeat(3)
{
OnRev(OUT_A);
Wait(30);
OnFwd(OUT_A);
Wait(30);
}
Off(OUT_A);
OnFwd(OUT_B);Wait;(20);
Off(OUT_B);
OnFwd(OUT_C);Wait(20);
Off(OUT_C);
}
*B改めまさやのプログラム [#v239ebf9]
「7秒以上追尾できたら懐中電灯に向かってブロックを投げる。」を担当
#define hit OnFwd(OUT_A);Wait(38);Off(OUT_A); //ブロックを打つ動作
#define revolver OnFwd(OUT_C);Wait(184);Off(OUT_C);//リボルバーを90度回す
#define turn_r OnFwd(OUT_B); //右折
#define turn_l OnRev(OUT_B); //左折
#define shine 60 //光の明るさ
#define run_time 700 //光を追う時間
#define keep Off(OUT_B); //停止
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT); //光センサー1を決める
SetSensor(SENSOR_3, SENSOR_LIGHT); //光センサー3を決める
while(true){
if((SENSOR_1 < shine)&&(SENSOR_3 < shine)){ //両方の光センサーが暗いとき
turn_l; //左に回って光を探す
until((SENSOR_1 > shine)||(SENSOR_3 > shine)); //どちらかの光センサーが光を見つけるまで
keep;Wait(10); //見つけたら停止
}
ClearTimer(0); //タイマーをクリア
while(((SENSOR_1 > shine)||(SENSOR_3 >shine))&&(FastTimer(0) < 700)){
if((SENSOR_1 > shine)&&(SENSOR_3 < shine)){ //左側に光がある時
turn_l; //左に曲がって光を追う
until((SENSOR_1 > shine)&&(SENSOR_3 > shine));//正面に光が来るまで
keep;Wait(10); //正面に来たら停止
}
if((SENSOR_1 < shine)&&(SENSOR_3 > shine)){ //右側に光がある時
turn_r; //右に曲がって光を追う
until((SENSOR_1 > shine)&&(SENSOR_3 > shine));//正面に光が来るまで
keep;Wait(10); //正面に来たら停止
}
if((SENSOR_1 > shine)&&(SENSOR_3 > shine)){ //正面に光がある時
keep; //停止
}
}
PlaySound(SOUND_UP); //7秒光を追えたら音を鳴らす
revolver;Wait(10); //リボルバーを回転
hit;Wait(10); //ブロックを打つ
keep; //停止
}
}
なぜか懐中電灯の光を無視してしまうことがあり、7秒間光を追わせることが難しかったです。
*コメントのコーナー [#nd5b8867]
コメントをどうぞ。
#comment