- 追加された行はこの色です。
- 削除された行はこの色です。
[[2016b/Member]]
*目次 [#hcc3fd94]
#contents
*課題 [#eb200637]
**コース [#ve445b5b]
#ref(2016b/Member/GORI/Mission2/2016b-mission2.png,100,全体部分)
**ミッション [#mf7b1822]
A地点をスタートしてQ付近の3/4円周上でピンポン玉をつかみ、そのピンポン玉をD地点においたゴールへシュートする (一人目)~
Aスタート → P直進 → Q直進 → (ピンポン玉をキャッチ) → Q直進 → R右折 → P直進 → S左折 → Dへシュート~
ただし~
・なるべく速く正確に動くロボットになるように工夫して、交差点では1秒間停止すること~
・ピンポン玉はQ近くの3/4円周上ならどこにおいてもよい~
・可能であればC,Dのゴールエリアライン上からシュートする~
*ロボットの説明 [#p0f2dcd8]
**ロボット本体の説明 [#l47437eb]
**アームの説明 [#c515e565]
** [#m1ea5293]
*プログラミング説明 [#f9865c02]
#define go_forward OnFwd(OUT_AC);
#define turn_left1 Off(OUT_A);OnFwd(OUT_C);
#define turn_left2 OnRev(OUT_A);OnFwd(OUT_C);
#define turn_right1 Off(OUT_C);OnFwd(OUT_A);
#define turn_right2 OnRev(OUT_C);OnFwd(OUT_A);
#define MAX_TIME 22
#define MAX_TIME2 20
sub crossing_stop()
{
ClearTimer(0);
while(FastTimer(0)<MAX_TIME){
if(SENSOR_2<35){
turn_left2;
}else if(SENSOR_2<40){
turn_left1;ClearTimer(0);
}else if(SENSOR_2<43){
go_forward;ClearTimer(0);
}else if(SENSOR_2<47){
turn_right1;ClearTimer(0);
}else{
turn_right2;ClearTimer(0);
}
}
Off(OUT_AC);Wait(100);OnRev(OUT_AC);Wait(20);
}
sub crossing_stop2()
{
ClearTimer(0);
while(FastTimer(0)<MAX_TIME2){
if(SENSOR_2<35){
turn_left2;
}else if(SENSOR_2<40){
turn_left1;ClearTimer(0);
}else if(SENSOR_2<43){
go_forward;ClearTimer(0);
}else if(SENSOR_2<47){
turn_right1;ClearTimer(0);
}else{
turn_right2;ClearTimer(0);
}
}
Off(OUT_AC);Wait(100);OnRev(OUT_AC);Wait(20);
}
sub crossing_fwd()
{
go_forward;
Wait(50);
}
sub crossing_right()
{
turn_right1;
Wait(100);
}
sub crossing_left()
{
turn_left1;
Wait(100);
}
sub arm_down()
{
OnRev(OUT_B);Wait(20);Off(OUT_B);
}
sub arm_up()
{
OnFwd(OUT_B);Wait(20);Off(OUT_B);
}
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
crossing_stop();
crossing_fwd();
crossing_stop();
OnFwd(OUT_A);OnRev(OUT_C);Wait(10);
crossing_fwd();
arm_down();
crossing_stop();
crossing_fwd();
crossing_stop();
crossing_right();
crossing_stop();
OnRev(OUT_C);Off(OUT_A);Wait(10);
OnFwd(OUT_AC);Wait(80);
crossing_stop();
crossing_left();
crossing_stop();
arm_up();
OnFwd(OUT_AC);Wait(100);
Off(OUT_AC);
}
*まとめ [#j64ead1c]