[[戻る>2005/A6/課題3]] *ラインに沿って動くロボットのプログラム [#u523a339] **センサー2つ モーター2つ用プログラム [#i1c29a33] // 12月2日 // コンド・AI・やまぐぐ // 軽量化によってある程度スピードが出るようになってしまい、強度面の問題もあって少々苦労した。 #define line 47 // 明暗のおよその境界値 task main() // ライトセンサーを使ったプログラム { SetSensor(SENSOR_1, SENSOR_LIGHT); // 左側のライトセンサー SetSensor(SENSOR_3, SENSOR_LIGHT); // 右側のライトセンサー OnFwd(OUT_A + OUT_C); // 前進する while(true) { if((SENSOR_1 < line) && (SENSOR_3 > line)) // 左センサーがライン上のとき { OnFwd(OUT_C); // 右タイヤが正転 Off(OUT_A); // 左タイヤが停止 until(SENSOR_1 > line); // 両センサーがライン外に出るまで } if((SENSOR_1 > line) && (SENSOR_3 < line)) // 右センサーがライン上のとき { OnFwd(OUT_A); // 左タイヤが正転 Off(OUT_C); // 右タイヤが停止 until(SENSOR_3 > line); // 両センサーがライン外に出るまで } else // 特に問題が無い場合 { OnFwd(OUT_A + OUT_C); // 前進する } } } #comment **センサー1つ モーター1つのプログラム [#qb9b1a74] // 12月2日 // コンド・AI・やまぐぐ // トップシークレットのギアの組み方をもとにし、タイヤは二輪(前部に支え付)にしました #define line 47 // 明暗のおよその境界値 task main() // ライトセンサーを使ったプログラム { SetSensor(SENSOR_2, SENSOR_LIGHT); // 真ん中のライトセンサー while(true) { if(SENSOR_2 < line) // 真ん中センサーがライン上のとき { OnFwd(OUT_B); // 左に曲がる until(SENSOR_2 > line); // センサーがライン外に出るまで } else // その他の場合 { OnRev(OUT_B); // 右に曲がる until(SENSOR_2 < line); // ライン内に入るまで } } } #comment