2014b/Member/torikara/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2014b/Member]]
#contents
*課題内容 [#v7150b51]
今回の課題はライントレースと交差点の横断をするものであり...
+一回目に交差点にさしかかった時は左折
+二回目の交差点は右折
+三回目は左折
+四回目は直進
+五回目は直進 → ゴール
#ref(./robo.png,75%)
*ロボット [#z5ac7a0a]
ロボットは通常走行する元のロボットに光センサを取り付けた...
*プログラム [#b2078e15]
今回のプログラミングは黒い線のコースに沿って走行し、交差...
定義は以下のとおり
#define THRESHOLD 45
#define HiSPEED 50
#define LoSPEED 40
#define go_forward OnFwd(OUT_BC,HiSPEED);
#define turn_left1 OnFwd(OUT_B,HiSPEED); OnFwd(OUT_C,-Lo...
#define turn_right1 OnFwd(OUT_C,HiSPEED); OnFwd(OUT_B,-L...
#define turn_left OnFwd(OUT_B,HiSPEED); //左折
#define turn_right OnFwd(OUT_C,HiSPEED); //右折
#define STEP 1 //1回の判断で動作させる時間
#define nMAX 300 //通常のカーブとして許容できる繰り返し...
#define short_break Off(OUT_BC);turn_right;Wait(nMAX*STE...
#define CROSS_TIME 200 //交差点通過にかかる時間
#define cross_line OnFwd(OUT_BC,HiSPEED);Wait(CROSS_TIME...
センサの設定
task main()
{
SetSensorLight(S3);
long t0=CurrentTick();
int nOnline=0;
コースの判断を行う
while(true){
if(CurrentTick()-t0<nMAX){
if(SENSOR_3<THRESHOLD-10){turn_left1;}
else{if(SENSOR_3<THRESHOLD-5){turn_left;}
else if(SENSOR_3<THRESHOLD+5){go_forward;}
else if(SENSOR_3<THRESHOLD+10){turn_right;}
else {turn_right1;}
t0=CurrentTick();
}
}
交差点を渡る
else{
short_break;
cross_line;
nOnline++;t0=CurrentTick();
}
}
}
*反省と考察 [#kb7a6b13]
-最初の交差点は左折できたが、二回目の右折する交差点がうま...
-急なカーブを曲がる際にカウンタ機能で判断するはずだが、こ...
-しきい値を五段階に分けてその際の動きを指示することはでき...
-全体的に勉強不足な面が目立ち失敗も目立ったので、それぞれ...
終了行:
[[2014b/Member]]
#contents
*課題内容 [#v7150b51]
今回の課題はライントレースと交差点の横断をするものであり...
+一回目に交差点にさしかかった時は左折
+二回目の交差点は右折
+三回目は左折
+四回目は直進
+五回目は直進 → ゴール
#ref(./robo.png,75%)
*ロボット [#z5ac7a0a]
ロボットは通常走行する元のロボットに光センサを取り付けた...
*プログラム [#b2078e15]
今回のプログラミングは黒い線のコースに沿って走行し、交差...
定義は以下のとおり
#define THRESHOLD 45
#define HiSPEED 50
#define LoSPEED 40
#define go_forward OnFwd(OUT_BC,HiSPEED);
#define turn_left1 OnFwd(OUT_B,HiSPEED); OnFwd(OUT_C,-Lo...
#define turn_right1 OnFwd(OUT_C,HiSPEED); OnFwd(OUT_B,-L...
#define turn_left OnFwd(OUT_B,HiSPEED); //左折
#define turn_right OnFwd(OUT_C,HiSPEED); //右折
#define STEP 1 //1回の判断で動作させる時間
#define nMAX 300 //通常のカーブとして許容できる繰り返し...
#define short_break Off(OUT_BC);turn_right;Wait(nMAX*STE...
#define CROSS_TIME 200 //交差点通過にかかる時間
#define cross_line OnFwd(OUT_BC,HiSPEED);Wait(CROSS_TIME...
センサの設定
task main()
{
SetSensorLight(S3);
long t0=CurrentTick();
int nOnline=0;
コースの判断を行う
while(true){
if(CurrentTick()-t0<nMAX){
if(SENSOR_3<THRESHOLD-10){turn_left1;}
else{if(SENSOR_3<THRESHOLD-5){turn_left;}
else if(SENSOR_3<THRESHOLD+5){go_forward;}
else if(SENSOR_3<THRESHOLD+10){turn_right;}
else {turn_right1;}
t0=CurrentTick();
}
}
交差点を渡る
else{
short_break;
cross_line;
nOnline++;t0=CurrentTick();
}
}
}
*反省と考察 [#kb7a6b13]
-最初の交差点は左折できたが、二回目の右折する交差点がうま...
-急なカーブを曲がる際にカウンタ機能で判断するはずだが、こ...
-しきい値を五段階に分けてその際の動きを指示することはでき...
-全体的に勉強不足な面が目立ち失敗も目立ったので、それぞれ...
ページ名: