[[2016a/Member]]

*はじめに [#tf82f2fe]

■課題:

黒いラインをセンサーで感知し、そのライン上を進む。

■詳細:

大きな紙に画像のようなコースを描き、その上をロボットが走行する。
モーターによりタイヤを動かすのは課題1と同様で、前面にセンサーのみを取り付けるというシンプルな作りとなっている。

一応、僕が担当したのは『B地点 → R右折 → Q直進 → Q直進 →P右折 → S右折 → C地点』である。


*プログラミング [#cce7845a]

 #define THRESHOLD 42
 #define BLACK 25
 #define GLAY_B 38
 #define GLAY_W 46
 #define WHITE 51
 #define GO_FWD OnFwd(OUT_AB,50);
 #define TURN_L OnFwd(OUT_A,50);Off(OUT_B);
 #define TURN_R OnFwd(OUT_B,50);Off(OUT_A);
 #define CIRCLE_L OnFwd(OUT_A,50);OnRev(OUT_B,50)
 #define CIRCLE_R OnFwd(OUT_B,50);OnRev(OUT_A,50)

 task main()
 {
   SetSensorLight(S4);
   int nOnline=0;
    while(nOnline < 200) {                   // 続けて黒が200未満
     if (SENSOR_4 < BLACK) {                 // 線上なら
       TURN_L;                               // 左へ
       nOnline++;                            // カウンタ増加
     } else {                                // 上の条件に合わない場合
       if (SENSOR_4 > WHITE) {               // 線上でないなら
       TURN_R;                               // 右へ
     } else if (SENSOR_4 > GLAY_W) {         // グレー白なら
       CIRCLE_R;                             // 右旋回
     } else if (SENSOR_4 < GLAY_B) {         // グレー黒なら
       CIRCLE_L;                             // 左旋回
     }
       nOnline=0;                            // カウンタリセット
     } Wait(1);
    }
 }

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