[[ロボティクス入門ゼミ]]
情報工なので、t5です。
*ラインとレースロボ(テスト版) [#h4f6f7cf]
elseのテスト。
#define THRESHOLD 40
task main ()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
SetSensor(SENSOR_2, SENSOR_TOUCH);
SetSensor(SENSOR_3, SENSOR_LIGHT); //センサの定義
while (true)
{
if (SENSOR_1 < THRESHOLD) //センサ1が黒なら右回転
{
OnFwd(OUT_A);
OnRev(OUT_C);
}
else
{
OnFwd(OUT_C); //*1
}
if (SENSOR_3 < THRESHOLD) //センサ3が黒なら左回転
{
OnFwd(OUT_C);
OnRev(OUT_A);
}
else
{
OnFwd(OUT_A); //*1と共に直進になる?
}
if (SENSOR_2==1 ) //ぶつかったら半回転
{
OnFwd(OUT_A);OnRev(OUT_C);Wait(200); //大きめに振る
OnRev(OUT_A);OnFwd(OUT_C);Wait(50); //戻す
}
}
}
*ライントレースロボ(バグ修正) [#b4177cbd]
僕のプログラムにあったものを修正。
#define THRESHOLD 40 // 閾値
task main ()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
SetSensor(SENSOR_3, SENSOR_LIGHT);
SetSensor(SENSOR_2, SENSOR_TOUCH);
while (true)
{
if (SENSOR_1 < THRESHOLD) // (1)黒線上に いるとき
{
OnFwd(OUT_A);
Off(OUT_C);
}
if (SENSOR_3 < THRESHOLD) // (3)黒線上にいるとき
{
OnFwd(OUT_C);
Off(OUT_A);
}
if (SENSOR_2==1 )
{
OnFwd(OUT_A);OnRev(OUT_C);Wait(70); //タッチしたら180°反転する
OnFwd(OUT_C);Wait(30);
OnFwd(OUT_C);OnRev(OUT_A);Wait(70);
OnFwd(OUT_A);Wait(200);
OnFwd(OUT_C);OnRev(OUT_A);Wait(90);
OnFwd(OUT_A);
}
}
}