[[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    //もし、タッチセンサーが反応したとき、まず、後退し右周りで障害物を避けていく
 }
 }
 }

まだ未完成のもので、ライントレースはするものの曲率の大きいものは曲がりきれなく、障害物をよける方でもまだ調整が必要。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS