- 追加された行はこの色です。
- 削除された行はこの色です。
[[2006a/MemberOnly/進行状況C]]
*課題2 光センサーとタッチセンサーの融合 [#h23035b7]
ラインとレースとタッチセンサーのプログラム
#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 //もし、タッチセンサーが反応したとき、まず、後退し右周りで障害物を避けていく
}
}
}
まだ未完成のもので、ライントレースはするものの曲率の大きいものは曲がりきれなく、障害物をよける方でもまだ調整が必要。