- 追加された行はこの色です。
- 削除された行はこの色です。
[[ロボティクス入門ゼミ]]
ライントレースレースとタッチセンサーのプログラム
#define go_straight OnFwd(OUT_A);OnRev(OUT_C); //真っ直ぐ進む
#define go_back OnFwd(OUT_C);OnRev(OUT_A);Wait(100) //後退
#define turn_1 OnFwd(OUT_A+OUT_C); Wait(100); //右旋回
#define turn_2 OnRev(OUT_A+OUT_C); Wait(100); //左旋回
#define turn_3 OnFwd(OUT_A+OUT_C); //ライントレース用のパーツ
#define turn_4 OnRev(OUT_C+OUT_A); //ライントレース用のパーツ
#define off Off(OUT_A+OUT_C);Wait(1);
task main()
{
SetSensor(SENSOR_1,SENSOR_TOUCH);
SetSensor(SENSOR_2,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_TOUCH); //センサ−1、3はタッチセンサー、2は光センサー
go_straight; //基本は直進
while(true)
{
if (SENSOR_2<40) {
turn_4
Off(OUT_A);
} //光センサーが黒線の上にあるとき、機体を左に曲げる
else {
if(SENSOR_2>40) {
Off(OUT_C);
turn_3
} //白色で紙から光がセンサーに反射してくるとき、機体を右に曲げる
}
if((SENSOR_1==1)&&(SENSOR_3==1)) //タッチセンサーが両方とも反応したとき
{
off;
go_back; //はじめに後退
turn_1; //次に右へ方向転回
go_straight
Wait(100); //少し前進
turn_2; //さらに左旋回し、機体の方向を元に戻す
go_straight
Wait(100); //少し前進
turn_2; //元の線に戻るため左旋回
go_straight;
Wait(100); //少し前進
turn_1; //元の位置(予想)に戻る
go_straight
}
}
}