[[ロボティクス入門ゼミ]]

ライントレースレースとタッチセンサーのプログラム
 #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