- 追加された行はこの色です。
- 削除された行はこの色です。
[[2017a/Member]]
#contents
**課題2 [#df78f979]
詳しくは [[2017a/Mission2]]
**ロボットについて [#y368c5e2]
#ref(2017a/Member/kenji/Mission2/gimp1.JPG,50%,)
#ref(2017a/Member/kenji/Mission2/gimp2.JPG,50%,)
小回りがきくようにするためとバランスが良くなるようにするためにロボットの後方に小さい車輪を付けました。また、指定された大きさに収まるようにできるだけロボットを小さくシンプルにしました。
**プログラミングについて [#s3f0e4ed]
#define THRESHOLD 42
#define turn_left Off(OUT_A);OnFwd(OUT_C);
#define turn_right OnFwd(OUT_A);Off(OUT_C);
#define STEP 1
#define R_senkai OnFwd(OUT_A);OnRev(OUT_C);
#define L_senkai OnFwd(OUT_C);OnRev(OUT_A);
trace1は境界の右側をたどるサブルーチンです。
白なら左回転、黒なら右回転して境目をたどっていくようにしました。また、交差点が識別できるように左回転したらタイマーをリセットし、右旋回をしたらタイマーをそのままにしてタイマーが30になったら止まるようにしました。
sub trace1()
{
while(FastTimer(0)<30)
if(SENSOR_2>49){
L_senkai;Wait(STEP);ClearTimer(0);
}else if(SENSOR_2>44){
turn_left;Wait(STEP);ClearTimer(0);
}else if(SENSOR_2< 36){
turn_right;Wait(STEP);ClearTimer(0);
}else if(SENSOR_2<33){
R_senkai;Wait(STEP);
}
Off(OUT_AC);
}
trace2は境界の左側をたどるサブルーチンです。trace1と同様にしました。
sub trace2()
{
while(FastTimer(0)<100)
if(SENSOR_2>49){
R_senkai;Wait(STEP);ClearTimer(0);
}else if(SENSOR_2>44){
turn_right;Wait(STEP);ClearTimer(0);
}else if(SENSOR_2< 36){
turn_left;Wait(STEP);ClearTimer(0);
}else if(SENSOR_2<33){
L_senkai;Wait(STEP);
}
Off(OUT_AC);
}
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
ClearTimer(0);
trace1();
PlaySound(SOUND_UP); //E右折
trace1();
PlaySound(SOUND_DOWN);//P一時停止&左折
Wait(100);
turn_left;
Wait(30);
trace2();
PlaySound(SOUND_UP);//Q直進
turn_right;
Wait(30);
trace2();
PlaySound(SOUND_UP);//R直進
trace2();
PlaySound(SOUND_DOWN);//T一時停止&直進
Wait(100);
turn_right;
Wait(30);
trace2();
PlaySound(SOUND_DOWN);//T一時停止&直進
Wait(100);
turn_right;
Wait(30);
trace1();
PlaySound(SOUND_UP);//H
trace1(); //急なカーブ
trace1(); //急なカーブ
trace1();
PlaySound(SOUND_UP);//G
trace2();
PlaySound(SOUND_DOWN);//S一時停止&左折
Wait(100);
trace2();
PlaySound(SOUND_UP);//P直進
turn_right;
Wait(30);
trace2();
PlaySound(SOUND_UP);//Q左折
trace1();
PlaySound(SOUND_UP);//F右折
trace1();//E直進
trace1();//A停止
}
**感想 [#z22b7f63]
交差点の判断が難しくなかなかゴールまで辿りつけなかったが、最後に一回ゴール出来てよかった。
確実にゴールすることができなかったのが残念だった。