2014b/Member/Yuko/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2014b/MemberOnly/進行状況]]
*課題 [#mff4bbfd]
#ref(./robotics-mission1-7.jpg,100%)
*ロボット本体 [#q78dcdc0]
写真を撮ってないため、載せられる画像はない。ロボットはラ...
*プログラム [#k2ef213d]
次のように定義する
#define THRESHOLD 51
#define SPEED_H 33
#define SPEED_L 22
#define OnRL(speedR,speedL) OnFwd(OUT_B,speedR);OnFwd(OU...
#define go_forward OnRL(SPEED_H, SPEED_H);
#define turn_left1 onRL(SPEED_L, -SPEED_L); // 左旋回
#define turn_left0 onRL(SPEED_L, 0); // 左折
#define turn_right0 onRL(0, SPEED_L); // 右折
#define turn_right1 OnRL(-SPEED_L, SPEED_L); // 右旋回
#define STEP 1 // 1回の判断で動作させる時間
#define nMAX 300 // 通常のカーブとして許容できる繰り返し...
#define short_break Off(OUT_BC); Wait(1000); // 小休止
#define CROSS_TIME 200 // 交差点通過にかかる時間
#define cross_line OnRL(SPEED_L,SPEED_L);Wait(CROSS_TIME...
プログラムの書き出し。初期値や条件文。ライントレース時の...
task main()
{
SetSensorLight(S3);
int nOnline=0; // 続けて黒になった回数 (カウンタ)
int nCross=1; //交差点の番号
while (true) {
/* 黒を続けてnMAX回繰り返さない間、通常のライントレース...
ライントレース時のプログラム
while (nOnline < nMAX) {
if (SENSOR_3 < THRESHOLD-15) {turn_left1;nOnline++; // ...
else {
if (SENSOR_3 < THRESHOLD-7) { turn_left0;}
else if (SENSOR_3 < THRESHOLD+7) {go_forward;}
else if (SENSOR_3 < THRESHOLD+15) {turn_right0; }
else {turn_right1;}
nOnline=0; // カウンタをリセット}
Wait(STEP);
}
(nOnline < nMAX)がでない場合、すなわち交差点を認識した...
if (nCross==1){short_break;turn_right1; Wait(nMAX*STEP);...
2回目の交差点を右折するとき
if (nCross==2){short_break;turn_right1; Wait(nMAX*STEP);...
3回目の交差点を左折するとき
if (nCross==3){short_break;turn_right1; Wait(nMAX*STEP);...
4回目の交差点を直進するとき
if (nCross==4){short_break;turn_right1; Wait(nMAX*STEP);...
5回目の交差点を直進するとき
if (nCross==5){short_break;turn_right1; Wait(nMAX*STEP);...
*反省と感想 [#c0e2145d]
テストなどもありなかなか進まず授業期間中での試走はうまく...
今回載せたプログラムは、ロボットが無い中で作ったものなの...
終了行:
[[2014b/MemberOnly/進行状況]]
*課題 [#mff4bbfd]
#ref(./robotics-mission1-7.jpg,100%)
*ロボット本体 [#q78dcdc0]
写真を撮ってないため、載せられる画像はない。ロボットはラ...
*プログラム [#k2ef213d]
次のように定義する
#define THRESHOLD 51
#define SPEED_H 33
#define SPEED_L 22
#define OnRL(speedR,speedL) OnFwd(OUT_B,speedR);OnFwd(OU...
#define go_forward OnRL(SPEED_H, SPEED_H);
#define turn_left1 onRL(SPEED_L, -SPEED_L); // 左旋回
#define turn_left0 onRL(SPEED_L, 0); // 左折
#define turn_right0 onRL(0, SPEED_L); // 右折
#define turn_right1 OnRL(-SPEED_L, SPEED_L); // 右旋回
#define STEP 1 // 1回の判断で動作させる時間
#define nMAX 300 // 通常のカーブとして許容できる繰り返し...
#define short_break Off(OUT_BC); Wait(1000); // 小休止
#define CROSS_TIME 200 // 交差点通過にかかる時間
#define cross_line OnRL(SPEED_L,SPEED_L);Wait(CROSS_TIME...
プログラムの書き出し。初期値や条件文。ライントレース時の...
task main()
{
SetSensorLight(S3);
int nOnline=0; // 続けて黒になった回数 (カウンタ)
int nCross=1; //交差点の番号
while (true) {
/* 黒を続けてnMAX回繰り返さない間、通常のライントレース...
ライントレース時のプログラム
while (nOnline < nMAX) {
if (SENSOR_3 < THRESHOLD-15) {turn_left1;nOnline++; // ...
else {
if (SENSOR_3 < THRESHOLD-7) { turn_left0;}
else if (SENSOR_3 < THRESHOLD+7) {go_forward;}
else if (SENSOR_3 < THRESHOLD+15) {turn_right0; }
else {turn_right1;}
nOnline=0; // カウンタをリセット}
Wait(STEP);
}
(nOnline < nMAX)がでない場合、すなわち交差点を認識した...
if (nCross==1){short_break;turn_right1; Wait(nMAX*STEP);...
2回目の交差点を右折するとき
if (nCross==2){short_break;turn_right1; Wait(nMAX*STEP);...
3回目の交差点を左折するとき
if (nCross==3){short_break;turn_right1; Wait(nMAX*STEP);...
4回目の交差点を直進するとき
if (nCross==4){short_break;turn_right1; Wait(nMAX*STEP);...
5回目の交差点を直進するとき
if (nCross==5){short_break;turn_right1; Wait(nMAX*STEP);...
*反省と感想 [#c0e2145d]
テストなどもありなかなか進まず授業期間中での試走はうまく...
今回載せたプログラムは、ロボットが無い中で作ったものなの...
ページ名: