[[戻る>2005/A6/課題3]] *ラインに沿って動くロボットのプログラム [#u523a339] **センサー2つ モーター2つ用プログラム [#i1c29a33] #ref(2005/A6/課題3左/sensor-2.jpeg,200%,nolink) // 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); // 前進する } } } **反省 [#bc78dbef] ・軽量化によってある程度スピードが出るようになってしまった。 ・強度面の問題があって、補強に少々苦労した。 ・最終的に、速く正確に動けるようになった。 #comment **センサー1つ モーター1つのプログラム [#qb9b1a74] #ref(2005/A6/課題3左/sensor-1.jpeg,200%) #ref(2005/A6/課題3左/sensor--1.jpeg,right,200%) // 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); // ライン内に入るまで } } } **反省 [#h90b7a11] ・ギアの組み合わせは『トップシークレット』を参考にしなければ作れなかった。 ・意外と速く、正確に動いた。 #comment