2013b/Member/massa/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2013b/Member]]
* 課題 [#c25c8819]
今回の課題は、図の決められたコースをライントレースしな...
#ref(./DCIM0213.JPG,640x480,図)
* ロボットの説明 [#daa68f1b]
初め、タイヤは4つ付いていたが、2つのほうが格段に交差...
#ref(./1386250023549.jpg,640x480,図1)
* プログラム [#z4ba5336]
#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_left1 set_power_L; OnFwd(OUT_C); OnRev(OUT_...
#define turn_left0 set_power_L; OnFwd(OUT_C); Off(OUT_A)...
#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 ...
#define nMAX 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 go_forward1 OnFwd(OUT_AC); Wait(50);
#define u-turn1 set_power_HEST; OnRev(OUT_A); OnFwd(OUT_...
#define u-turn2 set_power_HEST; OnRev(OUT_C); OnFwd(OUT_...
#define go_back OnRev(OUT_AC); Wait(50);
sub line_trace()
{
if (SENSOR_2 < THERESHOLD -3) {
turn_right1;
} else {
if (SENSOR_2 < THERESHOLD -1) {
turn_right0;
} else if (SENSOR_2 < THERESHOLD +1) {
go_forward;
} else if (SENSOR_2 < THERESHOLD +3) {
turn_left0;
} else {
turn_left1;
}
Wait(STEP)
}
}
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
SetSensor(SENSOR_1,SENSOR_LIGHT);
ClearTimer(1); ...
While (FastTimer(1) <= 1000) { ...
line_trace(); ...
if (SENSOR_1 >= 48) { ...
go_forward1; ...
u-turn1; ...
go_back; ...
u-turn2; ...
}
}
ClearTimer(0); ...
ClearTimer(1); ...
While (FastTimer(1) <= 2800) { ...
...
WHILE (FastTimer(0) < nMAX) {
if (SENSOR_2 < THERESHOLD -3) {
turn_right1;
} else {
if (SENSOR_2 < THERESHOLD -1) {
turn_right0;
} else if (SENSOR_2 < THERESHOLD +1) {
go_forward;
} else if (SENSOR_2 < THERESHOLD +3) {
turn_left0;
} else {
turn_left1;
}
ClearTimer(0); ...
}
Wait(STEP)
}
...
short_break; ...
turn_left1; Wait(nMAX*STEP); ...
cross_line; ...
ClearTimer(0); ...
}
ClearTimer(0); ...
ClearTimer(1); ...
While (true) {
...
line_trace();
}
}
* 苦労した点 [#tb525a24]
ライントレースができるようになるまでも苦労したが、一番...
#ref(./1386250018828.jpg,640x480,図2)
これなら移動させる物体が重かろうと軽かろうと関係ない。
* 反省 [#h8a8afce]
物体をどけることはできるようになったが、厳密に言うと元...
終了行:
[[2013b/Member]]
* 課題 [#c25c8819]
今回の課題は、図の決められたコースをライントレースしな...
#ref(./DCIM0213.JPG,640x480,図)
* ロボットの説明 [#daa68f1b]
初め、タイヤは4つ付いていたが、2つのほうが格段に交差...
#ref(./1386250023549.jpg,640x480,図1)
* プログラム [#z4ba5336]
#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_left1 set_power_L; OnFwd(OUT_C); OnRev(OUT_...
#define turn_left0 set_power_L; OnFwd(OUT_C); Off(OUT_A)...
#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 ...
#define nMAX 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 go_forward1 OnFwd(OUT_AC); Wait(50);
#define u-turn1 set_power_HEST; OnRev(OUT_A); OnFwd(OUT_...
#define u-turn2 set_power_HEST; OnRev(OUT_C); OnFwd(OUT_...
#define go_back OnRev(OUT_AC); Wait(50);
sub line_trace()
{
if (SENSOR_2 < THERESHOLD -3) {
turn_right1;
} else {
if (SENSOR_2 < THERESHOLD -1) {
turn_right0;
} else if (SENSOR_2 < THERESHOLD +1) {
go_forward;
} else if (SENSOR_2 < THERESHOLD +3) {
turn_left0;
} else {
turn_left1;
}
Wait(STEP)
}
}
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
SetSensor(SENSOR_1,SENSOR_LIGHT);
ClearTimer(1); ...
While (FastTimer(1) <= 1000) { ...
line_trace(); ...
if (SENSOR_1 >= 48) { ...
go_forward1; ...
u-turn1; ...
go_back; ...
u-turn2; ...
}
}
ClearTimer(0); ...
ClearTimer(1); ...
While (FastTimer(1) <= 2800) { ...
...
WHILE (FastTimer(0) < nMAX) {
if (SENSOR_2 < THERESHOLD -3) {
turn_right1;
} else {
if (SENSOR_2 < THERESHOLD -1) {
turn_right0;
} else if (SENSOR_2 < THERESHOLD +1) {
go_forward;
} else if (SENSOR_2 < THERESHOLD +3) {
turn_left0;
} else {
turn_left1;
}
ClearTimer(0); ...
}
Wait(STEP)
}
...
short_break; ...
turn_left1; Wait(nMAX*STEP); ...
cross_line; ...
ClearTimer(0); ...
}
ClearTimer(0); ...
ClearTimer(1); ...
While (true) {
...
line_trace();
}
}
* 苦労した点 [#tb525a24]
ライントレースができるようになるまでも苦労したが、一番...
#ref(./1386250018828.jpg,640x480,図2)
これなら移動させる物体が重かろうと軽かろうと関係ない。
* 反省 [#h8a8afce]
物体をどけることはできるようになったが、厳密に言うと元...
ページ名: