[[2005/B4]] #contents * ライントレース(モーター1個) [#ae221d55] task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_LIGHT); while(true) { if ((SENSOR_1 > 42) && (SENSOR_3 < 42))//左のセンサーが線上 { OnRev(OUT_B); // 左回転 Wait(15); } if ((SENSOR_1 < 42) && (SENSOR_3 > 42))//右のセンサーが線上 { OnFwd(OUT_B);// 右回転 Wait(15); } } } #ref(2005/B4/課題3左/051216_1737~01.jpg,モーター一つの図) #ref(2005/B4/課題3左/051216_1737~01.jpg,モーター一つの図) -モーター一つなのでギアとかも工夫しなくてはいけなくて大変だった。 -モーターの正転、負転にあわせて左右に曲がるようにしました。 -上の図が全体図です。 - waitの間隔調整が難しかった。 -モーターが一つなのでパワーが足りなくて苦労した。 -コメントどうぞ -ロボットの解説も付けましょう。 -- [[ゆん(TA)]] &new{2006-01-06 (金) 17:00:09}; #comment * ライントレース(モーター2個) [#y4158235] task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_LIGHT); while(true) { if ((SENSOR_1 > 40) && (SENSOR_3 < 40))//左のセンサーが線上 { OnFwd(OUT_A);// 左回転 Off(OUT_C); Wait(1); } if ((SENSOR_1 < 40) && (SENSOR_3 > 40))//右のセンサーが線上 { OnFwd(OUT_C);// 右回転 Off(OUT_A); Wait(1) } if ((SENSOR_1 > 40) && (SENSOR_3 > 40))//両方とも線上だったら { OnRev(OUT_A+OUT_C);//バックする Wait(10) } } } -光センサー二つなので機敏に反応します。 -モーターも二つなのでWaitが1でも反応します。 -モーター一つではWait1が通用しないのでこっちの方が精度は高いと思います。 -こっちは比較的簡単にできました。 -バックのWait数が鍵です。 -コメントどうぞ #comment