- 追加された行はこの色です。
- 削除された行はこの色です。
[[2016a/Member]]
*はじめに [#tf82f2fe]
■課題:
黒いラインをセンサーで感知し、そのライン上を進む。
■詳細:
大きな紙に画像のようなコースを描き、その上をロボットが走行する。
モーターによりタイヤを動かすのは課題1と同様で、前面にセンサーのみを取り付けるというシンプルな作りとなっている。
一応、僕が担当したのは『B地点 → R右折 → Q直進 → Q直進 →P右折 → S右折 → C地点』である。
*プログラミング [#cce7845a]
#define THRESHOLD 42
#define BLACK 25
#define GLAY_B 38
#define GLAY_W 46
#define WHITE 51
#define GO_FWD OnFwd(OUT_AB,50);
#define TURN_L OnFwd(OUT_A,50);Off(OUT_B);
#define TURN_R OnFwd(OUT_B,50);Off(OUT_A);
#define CIRCLE_L OnFwd(OUT_A,50);OnRev(OUT_B,50)
#define CIRCLE_R OnFwd(OUT_B,50);OnRev(OUT_A,50)
task main()
{
SetSensorLight(S4);
int nOnline=0;
while(nOnline < 200) { // 続けて黒が200未満
if (SENSOR_4 < BLACK) { // 線上なら
TURN_L; // 左へ
nOnline++; // カウンタ増加
} else { // 上の条件に合わない場合
if (SENSOR_4 > WHITE) { // 線上でないなら
TURN_R; // 右へ
} else if (SENSOR_4 > GLAY_W) { // グレー白なら
CIRCLE_R; // 右旋回
} else if (SENSOR_4 < GLAY_B) { // グレー黒なら
CIRCLE_L; // 左旋回
}
nOnline=0; // カウンタリセット
} Wait(1);
}
}