- 追加された行はこの色です。
- 削除された行はこの色です。
#contents
*課題について [#b8e3bfb0]
#ref(2017a-mission2.png)
今回の課題は写真のようなコースを2つの経路(E地点を直進するか右折するか)のうちどちらかを選択しその経路を辿っていくというものであった。自分はE地点直進コースを選択した。
今回の課題は図のようなコースを下の2つの経路のうちどちらかを選択しその経路を辿っていくというものであった。自分はE地点直進コースを選択した。
**E地点直進コース [#o4765664]
◦Aスタート
◦E直進
◦F(SOUND_UP)
◦Q一時停止(SOUND_DOWN)&左折
◦R直進(SOUND_UP)
◦S左折(SOUND_UP)
◦G(SOUND_UP)
◦H(SOUND_UP)
◦T一時停止(SOUND_DOWN)&直進
◦T一時停止(SOUND_DOWN)&直進
◦R一時停止(SOUND_DOWN)&左折
◦S直進(SOUND_UP)
◦P左折(SOUND_UP)
◦E一時停止(SOUND_DOWN)&左折
◦A停止(SOUND_DOWN)
**E地点右折コース [#j5216039]
E地点右折コース
◦E右折(SOUND_UP)
◦P一時停止(SOUND_DOWN)&左折
◦Q(SOUND_UP)&直進
◦R(SOUND_UP)&左折
◦T一時停止(SOUND_DOWN)&直進
◦T一時停止(SOUND_DOWN)&直進
◦H(SOUND_UP)
◦G(SOUND_UP)
◦S一時停止(SOUND_DOWN)&左折
◦P直進(SOUND_UP)
◦Q左折(SOUND_UP)
◦F(SOUND_UP)
◦E直進
◦A停止(SOUND_DOWN)
*ロボットについて [#b76ab9f1]
**ロボット全体 [#yf59ae0e]
#ref(車体改.jpg)
ロボット自体は基本的な形とした。
ロボット自体は基本的な形の車体とした。また、右車輪をCへ、左車輪をBへと接続し、光センサーは1番へと接続した。
**工夫した点 [#dcc92d55]
#ref(工夫改.jpg)
急なカーブを曲がることが出来るように光センサーをできるだけ車体に近づけた。
*プログラム [#jce51b18]
**定義 [#bdddc194]
#define tmax 180
#define goS OnFwd(OUT_BC,100);//直進
#define turnL OnFwd(OUT_C,100);//左折
#define turnR OnFwd(OUT_B,100);//右折
#define spinL OnFwd(OUT_C,200);OnFwd(OUT_B,-200);//左旋回
#define spinR OnFwd(OUT_B,200);OnFwd(OUT_C,-200);//右旋回
#define run while(CurrentTick()-t0<tmax){\//ライントレース
if(SENSOR_1<=39){\
spinR;\
t0 = CurrentTick();\//タイマーリセット
}else if(SENSOR_1<=45){\
turnR;\
t0 = CurrentTick();\//タイマーリセット
}else if(SENSOR_1<=52){\
goS;\
t0 = CurrentTick();\//タイマーリセット
}else if(SENSOR_1<=55){\
turnL;\
}else{\
spinL;\
}\
}\
Off(OUT_BC);
#define traverse Wait(1000);turnL;Wait(200);PlaySound(SOUND_DOWN);t0 = CurrentTick();//交差点
#define ignore turnR;Wait(200);PlaySound(SOUND_UP);Off(OUT_BC);t0 = CurrentTick();//T字路等を無視して直進
#define corner turnL;Wait(200);PlaySound(SOUND_UP);Off(OUT_BC);t0 = CurrentTick();//角
#define tightturn spinL;Wait(350);Off(OUT_BC);turnL;Wait(300);//急カーブ
#define goal turnR;Wait(200);Off(OUT_BC);//ゴール
**メインタスク [#ld76a55f]
task main()
{
SetSensorLight(S1);//光センサーを定義
long t0 = CurrentTick();//時間を定義
run;
corner;//F地点
run;
traverse;//Q地点
run;
ignore;//R地点
run;
corner;//S地点
run;
corner;//G地点
run;
tightturn;
run;
corner;//H地点
run;
traverse;//T地点
run;
traverse;//T地点
run;
traverse;//R地点
run;
ignore;//S地点
run;
corner;//P地点
run;
corner;//E地点
run;
goal;//A地点
}
*感想 [#wf7f6d92]
前回と比べて自分で考えなければいけないことが多くなり、どのようにすればうまくいくかなどなかなか自分で考えることが出来ず、とても苦労した。次回はもっと柔軟な思考を出来るようにしたい。
前回と比べて自分で考えなければいけないことが多くなり、どのようにすればうまくいくかなどなかなか自分で考えることが出来ず、とても苦労した。具体的に言えば、T字路をどのようにして無視して直進すべきか、急カーブのところで、どうしても左折が続きタイマーリセットがされずに停止してしまうのをいかにすべきかということに悩まされた。次回はもっと柔軟な思考を出来るようにし、もっと早く完成させたい。