2005/B4
ライントレース(モーター1個)†
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);
}
}
}
- モーター一つなのでギアとかも工夫しなくてはいけなくて大変だった。
- モーターの正転、負転にあわせて左右に曲がるようにしました。
- 上の図が全体図です。
- waitの間隔調整が難しかった。
- モーターが一つなのでパワーが足りなくて苦労した。
- コメントどうぞ
- ロボットの解説も付けましょう。 -- ゆん(TA)
ライントレース(モーター2個)†
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数が鍵です。
- コメントどうぞ