2015a/Member/milkura/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2015a/Member]]
目次
#contents
*初めに [#z0a71a0f]
AからBのコースを選択しました。
スタート地点から1つ目の交差点まではラインの左側をトレース...
#ref(./コース.png,50%);
*ロボットについて [#yd6f5dcb]
**ロボット本体について [#y4f1b54f]
ロボット本体の後方についているキャスターが頑丈でないので...
#ref(./DSC_0134.JPG,10%);
**アームについて [#u3bc2fea]
&ref(./DSC_0132.JPG,10%);
&ref(./DSC_0133.JPG,10%);
最初、扉を開きボールを中に入れて扉を閉じるような方法を考...
*プログラミングについて [#c378b8dc]
**用意した定義 [#j546573c]
参考プログラムを読んで、課題1よりもプログラムが複雑にな...
#define LIGHT 45 //光センサーのしきい値
#define SPEED 20 //カーブや旋回をする時のスピード
#define SPEED_STR 25 //直進する時のスピード
#define SHOOT_SPEED 80
#define GO(Bs,Cs) OnFwd(OUT_B,Bs);OnFwd(OUT_C,Cs);
#define STRAIGHT GO(SPEED_STR, SPEED_STR);
#define LEFT_curve GO(SPEED, 0);
#define LEFT_turn GO(SPEED, -SPEED);
#define RIGHT_curve GO(0, SPEED);
#define RIGHT_turn GO(-SPEED, SPEED);
#define STEP 1 //一回の動作にかける時間
#define STOP Off(OUT_BC); Wait(2000);
#define CROSS1 GO(SPEED,SPEED);Wait(600);STOP; //一つ目...
#define CROSS2 GO(SPEED,SPEED);Wait(1000);STOP; //二つ目...
#define arm_close RotateMotor(OUT_A,20,-80);Off(OUT_A);W...
#define arm_open RotateMotor(OUT_A,20,55);Off(OUT_A);Wai...
#define SHOOT STOP;arm_open;STOP;GO(SHOOT_SPEED,SHOOT_SP...
#define REVISE RIGHT_turn;Wait(1000);STOP; //一つ目の交...
#define SOUND1 PlaySound(SOUND_UP);Wait(1000); //一つ目...
#define SOUND2 PlaySound(SOUND_DOWN);Wait(1000); //二つ...
ラインをトレースするためのカーブの速度は、トレースの確実...
**プログラム本体について [#h63f62ed]
「black」という値を定義することによって、プログラミングを...
*「black == 0」のとき [#ab6792cd]
「スタートから1つ目の交差点」までのプログラムです。1つ目...
task main()
{
SetSensorLight(S3);
int black=0;
while (true) {
while (black == 0) {
if (SENSOR_3 < LIGHT-11) {
STOP;
arm_close;
REVISE;
SOUND1;
CROSS1;
BLACK++;
} else {
if (SENSOR_3 < LIGHT-7) {
LEFT_turn;
} else if (SENSOR_3 < LIGHT-3) {
LEFT_curve;
} else if (SENSOR_3 < LIGHT+3) {
STR;
} else if (SENSOR_3 < LIGHT+7) {
RIGHT_curve;
} else {
RIGHT_turn;
}
}
Wait(STEP);
}
*「black == 1」のとき [#b1d86b0b]
「1つ目の交差点から2つ目の交差点」までのプログラムです。...
while (black == 1) {
if (SENSOR_3 < LIGHT-11) {
STOP;
SOUND2;
CROSS2;
BLACK++;
} else {
if (SENSOR_3 < LIGHT-7) {
RIGHT_turn;
} else if (SENSOR_3 < LIGHT-3) {
RIGHT_curve;
} else if (SENSOR_3 < LIGHT+3) {
STR;
} else if (SENSOR_3 < LIGHT+7) {
LEFT_curve;
} else {
LEFT_turn;
}
}
Wait(STEP);
}
*「black == 2」のとき [#s8763c60]
「2つ目の交差点からゴール」までのプログラムです。二つ目の...
while(black == 2) {
long t1 = CurrentTick();
while (CurrentTick()-t1 <= 5000) {
if (SENSOR_3 < LIGHT-7) {
LEFT_turn;
} else {
if (SENSOR_3 < LIGHT-3) {
LEFT_curve;
} else if (SENSOR_3 < LIGHT+3) {
STR;
} else if (SENSOR_3 < LIGHT+7) {
RIGHT_curve;
} else {
RIGHT_turn;
}
Wait(STEP);
}
}
SHOOT;
}
}
}
*感想 [#idcf5bd4]
交差点を検知するプログラムが「連続して黒色を検知した回数...
終了行:
[[2015a/Member]]
目次
#contents
*初めに [#z0a71a0f]
AからBのコースを選択しました。
スタート地点から1つ目の交差点まではラインの左側をトレース...
#ref(./コース.png,50%);
*ロボットについて [#yd6f5dcb]
**ロボット本体について [#y4f1b54f]
ロボット本体の後方についているキャスターが頑丈でないので...
#ref(./DSC_0134.JPG,10%);
**アームについて [#u3bc2fea]
&ref(./DSC_0132.JPG,10%);
&ref(./DSC_0133.JPG,10%);
最初、扉を開きボールを中に入れて扉を閉じるような方法を考...
*プログラミングについて [#c378b8dc]
**用意した定義 [#j546573c]
参考プログラムを読んで、課題1よりもプログラムが複雑にな...
#define LIGHT 45 //光センサーのしきい値
#define SPEED 20 //カーブや旋回をする時のスピード
#define SPEED_STR 25 //直進する時のスピード
#define SHOOT_SPEED 80
#define GO(Bs,Cs) OnFwd(OUT_B,Bs);OnFwd(OUT_C,Cs);
#define STRAIGHT GO(SPEED_STR, SPEED_STR);
#define LEFT_curve GO(SPEED, 0);
#define LEFT_turn GO(SPEED, -SPEED);
#define RIGHT_curve GO(0, SPEED);
#define RIGHT_turn GO(-SPEED, SPEED);
#define STEP 1 //一回の動作にかける時間
#define STOP Off(OUT_BC); Wait(2000);
#define CROSS1 GO(SPEED,SPEED);Wait(600);STOP; //一つ目...
#define CROSS2 GO(SPEED,SPEED);Wait(1000);STOP; //二つ目...
#define arm_close RotateMotor(OUT_A,20,-80);Off(OUT_A);W...
#define arm_open RotateMotor(OUT_A,20,55);Off(OUT_A);Wai...
#define SHOOT STOP;arm_open;STOP;GO(SHOOT_SPEED,SHOOT_SP...
#define REVISE RIGHT_turn;Wait(1000);STOP; //一つ目の交...
#define SOUND1 PlaySound(SOUND_UP);Wait(1000); //一つ目...
#define SOUND2 PlaySound(SOUND_DOWN);Wait(1000); //二つ...
ラインをトレースするためのカーブの速度は、トレースの確実...
**プログラム本体について [#h63f62ed]
「black」という値を定義することによって、プログラミングを...
*「black == 0」のとき [#ab6792cd]
「スタートから1つ目の交差点」までのプログラムです。1つ目...
task main()
{
SetSensorLight(S3);
int black=0;
while (true) {
while (black == 0) {
if (SENSOR_3 < LIGHT-11) {
STOP;
arm_close;
REVISE;
SOUND1;
CROSS1;
BLACK++;
} else {
if (SENSOR_3 < LIGHT-7) {
LEFT_turn;
} else if (SENSOR_3 < LIGHT-3) {
LEFT_curve;
} else if (SENSOR_3 < LIGHT+3) {
STR;
} else if (SENSOR_3 < LIGHT+7) {
RIGHT_curve;
} else {
RIGHT_turn;
}
}
Wait(STEP);
}
*「black == 1」のとき [#b1d86b0b]
「1つ目の交差点から2つ目の交差点」までのプログラムです。...
while (black == 1) {
if (SENSOR_3 < LIGHT-11) {
STOP;
SOUND2;
CROSS2;
BLACK++;
} else {
if (SENSOR_3 < LIGHT-7) {
RIGHT_turn;
} else if (SENSOR_3 < LIGHT-3) {
RIGHT_curve;
} else if (SENSOR_3 < LIGHT+3) {
STR;
} else if (SENSOR_3 < LIGHT+7) {
LEFT_curve;
} else {
LEFT_turn;
}
}
Wait(STEP);
}
*「black == 2」のとき [#s8763c60]
「2つ目の交差点からゴール」までのプログラムです。二つ目の...
while(black == 2) {
long t1 = CurrentTick();
while (CurrentTick()-t1 <= 5000) {
if (SENSOR_3 < LIGHT-7) {
LEFT_turn;
} else {
if (SENSOR_3 < LIGHT-3) {
LEFT_curve;
} else if (SENSOR_3 < LIGHT+3) {
STR;
} else if (SENSOR_3 < LIGHT+7) {
RIGHT_curve;
} else {
RIGHT_turn;
}
Wait(STEP);
}
}
SHOOT;
}
}
}
*感想 [#idcf5bd4]
交差点を検知するプログラムが「連続して黒色を検知した回数...
ページ名: