- 追加された行はこの色です。
- 削除された行はこの色です。
目次
#Contents
*課題2の内容 [#ifff3ad7]
#ref(2016b/Member/god22ila/Mission2/2016b-mission2.png,50%,コース)
今回の課題2の内容は上図のコースにライントレーサーを走らせ、途中に置いてあるピンポン球を掴み、ゴールにシュートするというものである。僕はA地点をスタート→P地点直進→Q地点直進→ピンポン球を掴む→Q地点直進→R地点右折→P地点直進→S地点左折→D地点へシュートというものである。
*ロボットの説明 [#r97767b5]
**本体について [#he30576e]
**アームについて [#t2a53cfc]
*プログラミングについて [#t3de1858]
#define TR OnFwd(OUT_C,40);
#define TL OnFwd(OUT_B,40);
#define SR OnFwdSync(OUT_BC,40,-100);
#define SL OnFwdSync(OUT_BC,40,100);
#define GF OnFwdSync(OUT_BC,40,0);
#define XrdTR TR Wait(500);SL Wait(1400);Off(OUT_BC);Wait(300);GF Wait(500);Off(OUT_BC);n++;
#define XrdST TR Wait(1000); GF Wait(200);n++;
#define UU OnFwd(OUT_A,25);Wait(700);Off(OUT_A);
#define UD OnRev(OUT_A,25);Wait(700);Off(OUT_A);
#define XX PlaySound(SOUND_CLICK);Wait(500);Wait(1000);
task main()
{
SetSensorLight(S1);
int n=0;
long t0 = CurrentTick();
UU
while(n<7){
t0 = CurrentTick();
while(CurrentTick()-t0<600){
if(SENSOR_1>42){
SL
t0 = CurrentTick();
}
else if(SENSOR_1>40){
TL
t0 = CurrentTick();
}
else if(SENSOR_1>38){
GF
t0 = CurrentTick();
}
else if(SENSOR_1>37){
TR
t0 = CurrentTick();
}
else{
SR
}
}
Off(OUT_BC);
while(n==6){
XrdST
Off(OUT_BC);
UU
OnFwdSync(OUT_BC,40,0);
Wait(300);
n++;
}
while(n==5){
SR
Wait(700);
n++; //変えた
}
while(n==4){
XX
XrdST
}
while(n==3){
XrdTR
}
while(n==2){
XX
XrdST
}
while(n==1){
XX
XrdST
PlaySound(SOUND_CLICK);
Wait(500);
t0 = CurrentTick();
while(CurrentTick()-t0<6000){
if(SENSOR_1>42){
SL
}
else if(SENSOR_1>40){
TL
}
else if(SENSOR_1>38){
GF
}
else if(SENSOR_1>37){
TR
}
else{
SR
}
}
Off(OUT_BC);
Wait(500);
UD
}
while(n==0){
XX
XrdST //変えた
}
}
}