2013b/Member/matan/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2013b/Member]]
*今回の課題 [#n4b38ebb]
今回の課題は、ライントレースと障害物の缶を避け、所定の...
&ref(robot1.JPG);
*マシンの説明 [#kfbe2664]
私たちのマシンは特にシンプルな設計にしました。マシンを...
マシンを改良した点は以下の3つです。
**タイヤを二つにする [#nfcb2405]
**センサの位置を、マシンに近づける [#ea6a095b]
**手を付ける [#h1774ef1]
&ref(robot2.jpg);
まず一つ目のタイヤに関しては、四輪駆動であると力は入りま...
二つ目のセンサの位置に関しては、説明書通りだと感知するた...
*プログラム [#y88bcb51]
#define THERESHOLD 46 //しきい値
#define HIESTPOWER 7
#define HIPOWER 2
#define LOWPOWER 0
#define set_power_HEST SetPower(OUT_AC,HIESTPOWER);
#define set_power_H SetPower(OUT_AC,HIPOWER);
#define set_power_L SetPower(OUT_AC,LOWPOWER);
#define go_forward set_power_H; OnFwd(OUT_AC);
#define turn_left0 set_power_L; OnFwd(OUT_C); Off(OUT_A)...
#define turn_left1 set_power_L; OnFwd(OUT_C); OnRev(OUT_...
#define turn_right0 set_power_L; OnFwd(OUT_A); Off(OUT_C...
#define turn_right1 set_power_L; OnFwd(OUT_A); OnRev(OUT...
#define STEP 1 //1回の判断で動作させる時間
#define nMAX 35 //最大値を35秒とする
#define short_break Off(OUT_AC); Wait(100); //小休止
#define CROSS_TIME 20 //交差点通過にかかる時間
#define cross_line go_forward set_power_H;\OnFwd(OUT_AC)...
#define SetPower(OUT_A,1); //カーブを曲がる時の力を1にする
#define go_forward1 OnFwd(OUT_AC);Wait(50) //前進して0.5...
#define u_turn1 set_power_HEST;OnRev(OUT_A);OnFwd(OUT_C)...
#define u_turn2 set_power_HEST;OnRev(OUT_C);OnFwd(OUT_A)...
#define go_back OnRev(OUT_AC);Wait(50); //後退して0.5秒...
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
SetSensor(SENSOR_1,SENSOR_LIGHT);
ClearTimer(1); //タイマー1をリセットする
while (FastTimer(1) <= 700) {
if (SENSOR_2 < THERESHOLD -2) {
turn_left1; //タイマー7秒以下でしきい値より-2小さ...
} else {
if (SENSOR_2 < THERESHOLD -1) {
turn_left0; //しきい値より-1小さい時、左折
} else if (SENSOR_2 < THERESHOLD +1) {
go_forward; //しきい値より+1小さい時、前進
} else if (SENSOR_2 < THERESHOLD +2) {
turn_right0; //しきい値より+2小さい時、右折
} else {
turn_right1; //それ以外の時、右旋回
}
Wait(STEP); //判断による動作を休止
}
if (SENSOR_1>=48) {
go_forward1; //センサの値が >=48であった時に前進...
u_turn1;
go_back;
u_turn2;
}
}
ClearTimer(0); //タイマー0をリセット
ClearTimer(1); //タイマー1をリセット
while (FastTimer(1) <=4700) {
while (FastTimer(0) < nMAX) {
if (SENSOR_2 < THERESHOLD -2) {
turn_left1; //タイマー1で47秒以下でタイマー0が最...
} else {
if (SENSOR_2 < THERESHOLD -1) {
turn_left0; //しきい値より-1小さい時、左折
} else if (SENSOR_2 < THERESHOLD +1) {
go_forward; //しきい値より+1小さい時、前進
} else if (SENSOR_2 < THERESHOLD +2) {
turn_right0; //しきい値より+2小さい時、右折
} else {
turn_right1; //それ以外の時、右旋回
}
ClearTimer(0); //タイマー0をリセット
}
Wait(STEP); //判断のよる動作を休止
}
turn_right1; Wait(nMAX*STEP); //進行方向修正
cross_line; //交差点を渡る
ClearTimer(0); //タイマー0をリセット
}
ClearTimer(0); //タイマー0をリセット
ClearTimer(1); //タイマー1をリセット
while (true) {
if (SENSOR_2 < THERESHOLD -2) {
turn_left1; //しきい値より-2小さい時、左旋回
} else {
if (SENSOR_2 < THERESHOLD -1) {
turn_left0; //しきい値より-1小さい時、左折
} else if (SENSOR_2 < THERESHOLD +1) {
go_forward; //しきい値より+1小さい時、前進
} else if (SENSOR_2 < THERESHOLD +2) {
turn_right0; //しきい値より+2小さい時、右折
} else {
turn_right1; //それ以外の時、右旋回
}
Wait(STEP); //判断による動作を休止
}
}
}
*苦労した点 [#d8a1ac14]
プログラムを作成していく中で、いくつもの壁にぶち当たりま...
*反省点 [#l58bcf6c]
マシンのプログラムに集中してしまったのでマシンのボディに...
終了行:
[[2013b/Member]]
*今回の課題 [#n4b38ebb]
今回の課題は、ライントレースと障害物の缶を避け、所定の...
&ref(robot1.JPG);
*マシンの説明 [#kfbe2664]
私たちのマシンは特にシンプルな設計にしました。マシンを...
マシンを改良した点は以下の3つです。
**タイヤを二つにする [#nfcb2405]
**センサの位置を、マシンに近づける [#ea6a095b]
**手を付ける [#h1774ef1]
&ref(robot2.jpg);
まず一つ目のタイヤに関しては、四輪駆動であると力は入りま...
二つ目のセンサの位置に関しては、説明書通りだと感知するた...
*プログラム [#y88bcb51]
#define THERESHOLD 46 //しきい値
#define HIESTPOWER 7
#define HIPOWER 2
#define LOWPOWER 0
#define set_power_HEST SetPower(OUT_AC,HIESTPOWER);
#define set_power_H SetPower(OUT_AC,HIPOWER);
#define set_power_L SetPower(OUT_AC,LOWPOWER);
#define go_forward set_power_H; OnFwd(OUT_AC);
#define turn_left0 set_power_L; OnFwd(OUT_C); Off(OUT_A)...
#define turn_left1 set_power_L; OnFwd(OUT_C); OnRev(OUT_...
#define turn_right0 set_power_L; OnFwd(OUT_A); Off(OUT_C...
#define turn_right1 set_power_L; OnFwd(OUT_A); OnRev(OUT...
#define STEP 1 //1回の判断で動作させる時間
#define nMAX 35 //最大値を35秒とする
#define short_break Off(OUT_AC); Wait(100); //小休止
#define CROSS_TIME 20 //交差点通過にかかる時間
#define cross_line go_forward set_power_H;\OnFwd(OUT_AC)...
#define SetPower(OUT_A,1); //カーブを曲がる時の力を1にする
#define go_forward1 OnFwd(OUT_AC);Wait(50) //前進して0.5...
#define u_turn1 set_power_HEST;OnRev(OUT_A);OnFwd(OUT_C)...
#define u_turn2 set_power_HEST;OnRev(OUT_C);OnFwd(OUT_A)...
#define go_back OnRev(OUT_AC);Wait(50); //後退して0.5秒...
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
SetSensor(SENSOR_1,SENSOR_LIGHT);
ClearTimer(1); //タイマー1をリセットする
while (FastTimer(1) <= 700) {
if (SENSOR_2 < THERESHOLD -2) {
turn_left1; //タイマー7秒以下でしきい値より-2小さ...
} else {
if (SENSOR_2 < THERESHOLD -1) {
turn_left0; //しきい値より-1小さい時、左折
} else if (SENSOR_2 < THERESHOLD +1) {
go_forward; //しきい値より+1小さい時、前進
} else if (SENSOR_2 < THERESHOLD +2) {
turn_right0; //しきい値より+2小さい時、右折
} else {
turn_right1; //それ以外の時、右旋回
}
Wait(STEP); //判断による動作を休止
}
if (SENSOR_1>=48) {
go_forward1; //センサの値が >=48であった時に前進...
u_turn1;
go_back;
u_turn2;
}
}
ClearTimer(0); //タイマー0をリセット
ClearTimer(1); //タイマー1をリセット
while (FastTimer(1) <=4700) {
while (FastTimer(0) < nMAX) {
if (SENSOR_2 < THERESHOLD -2) {
turn_left1; //タイマー1で47秒以下でタイマー0が最...
} else {
if (SENSOR_2 < THERESHOLD -1) {
turn_left0; //しきい値より-1小さい時、左折
} else if (SENSOR_2 < THERESHOLD +1) {
go_forward; //しきい値より+1小さい時、前進
} else if (SENSOR_2 < THERESHOLD +2) {
turn_right0; //しきい値より+2小さい時、右折
} else {
turn_right1; //それ以外の時、右旋回
}
ClearTimer(0); //タイマー0をリセット
}
Wait(STEP); //判断のよる動作を休止
}
turn_right1; Wait(nMAX*STEP); //進行方向修正
cross_line; //交差点を渡る
ClearTimer(0); //タイマー0をリセット
}
ClearTimer(0); //タイマー0をリセット
ClearTimer(1); //タイマー1をリセット
while (true) {
if (SENSOR_2 < THERESHOLD -2) {
turn_left1; //しきい値より-2小さい時、左旋回
} else {
if (SENSOR_2 < THERESHOLD -1) {
turn_left0; //しきい値より-1小さい時、左折
} else if (SENSOR_2 < THERESHOLD +1) {
go_forward; //しきい値より+1小さい時、前進
} else if (SENSOR_2 < THERESHOLD +2) {
turn_right0; //しきい値より+2小さい時、右折
} else {
turn_right1; //それ以外の時、右旋回
}
Wait(STEP); //判断による動作を休止
}
}
}
*苦労した点 [#d8a1ac14]
プログラムを作成していく中で、いくつもの壁にぶち当たりま...
*反省点 [#l58bcf6c]
マシンのプログラムに集中してしまったのでマシンのボディに...
ページ名: