[[戻る>2005/A6]]
*製作中のプログラム [#c4c4fb09]
 
 #define line 40
 // センサー2つ モーター2つ用プログラム
 // 11月28日
 // コンド
 // 軽量化によってある程度スピードが出るようになってしまい、強度面の問題もあって少々苦労した。
 
 task main()                    // 光センサーを使った簡単なプログラム
 #define line 47                // 明暗のおよその境界値
 
 task main()                    // ライトセンサーを使ったプログラム
 {
   SetSensor(SENSOR_2, SENSOR_LIGHT);
   SetSensor(SENSOR_1, SENSOR_LIGHT);            // 左側のライトセンサー
   SetSensor(SENSOR_3, SENSOR_LIGHT);            // 右側のライトセンサー
  
   OnFwd(OUT_A + OUT_C);                         // 前進する
  
   while(true)
    {
      if(SENSOR_1 < line)       // ライン上は右に曲がる
      if((SENSOR_1 < line) && (SENSOR_3 > line)) // 左センサーがライン上のとき
       {
         OnFwd(OUT_C);
         Off(OUT_A);
         OnFwd(OUT_C);                           // 右タイヤが正転
         Off(OUT_A);                             // 左タイヤが停止
         until(SENSOR_1 > line);                 // 両センサーがライン外に出るまで
       }
 
      else
      
      if((SENSOR_1 > line) && (SENSOR_3 < line)) // 右センサーがライン上のとき
       {
         OnFwd(OUT_A);          // ライン外は左に曲がる
         Off(OUT_C);
         OnFwd(OUT_A);                           // 左タイヤが正転
         Off(OUT_C);                             // 右タイヤが停止
         until(SENSOR_3 > line);                 // 両センサーがライン外に出るまで
       }
      
      else                                       // 特に問題が無い場合
       {
         OnFwd(OUT_A + OUT_C);                   // 前進する
       }
    
    }
 
 }


*製作したプログラム 『これまでの流れ』 [#c0e77817]

**一番最初に作ったプログラム [#cb967754]
 // 初めてロボットを動かした時のプログラム
 
 task main()
 {
   OnFwd(OUT_A);
   OnFwd(OUT_C);
   Wait(110);
   Off(OUT_A+OUT_C);
 }                     // ただ進んで止まるだけ

#comment

**二番目に作った三角形を書くプログラム [#tc0fe390]
 //『repeat』プログラムを使えば簡単だった・・・
 
 task main()
 {
   OnFwd(OUT_A+OUT_C);
   Wait(150);
   OnFwd(OUT_A);
   OnRev(OUT_C);
   Wait(110);
   OnFwd(OUT_A+OUT_C);
   Wait(150);
   OnFwd(OUT_A);
   OnRev(OUT_C);
   Wait(110);
   OnFwd(OUT_A+OUT_C);
   Wait(150);
   OnFwd(OUT_A);
   OnRev(OUT_C);
   Wait(110);
   OnFwd(OUT_A+OUT_C);
   Wait(150);
 }                     // 正三角形の軌跡を残すだけ

#comment

 task main()                // 『repeat』を使ったプログラム
  {
   repeat(3)
    {
      OnFwd(OUT_A+OUT_C);
      Wait(150);            // 一つの辺の軌跡を書く
      OnFwd(OUT_A);
      OnRev(OUT_C);
      Wait(110);            // 一つの角の軌跡を書く
    }
 
  }

#comment

**課題1についてのプログラム [#r8c50d1d]
[[2005/A6/課題1/一班/コンドのプログラム]]

**課題2についてのプログラム [#efca2f18]
 // 11月24日
 // コンド
 // 何度も失敗して、一周する確率が一番高くなったときのプログラム
 // 一番大きいタイヤを使用し、バンパーにホイールやら補強やらとにかく取りつけてみました。
 
 #define little 37                // 後退する時間
  
 task main()                      // 反時計回りに机の周りを回るプログラム
 {
  SetSensor(SENSOR_1, SENSOR_TOUCH);  // 右側のセンサー
  SetSensor(SENSOR_3, SENSOR_TOUCH);  // 左側のセンサー
  
   while (true)
   {
 
     if((SENSOR_1 == 0) && (SENSOR_3 == 1)) // 右側のセンサーが触れる
      {
        Off(OUT_C);              // 左側のタイヤを止める
        OnFwd(OUT_A);            // 右側のタイヤが正転する
        until(SENSOR_3 == 0);    // 右側のセンサーが離れるまで回る
      }
 
     if((SENSOR_1 == 0) && (SENSOR_3 == 0)) // 右側のセンサーが離れる
      {
        Off(OUT_A);              // 右側のタイヤが止まる
        OnFwd(OUT_C);            // 左側のタイヤが正転する
        until(SENSOR_3 == 1);    // 右側のセンサーが触れるまで回る
      }
 
     else                        // 壁に衝突する
      {
        OnRev(OUT_A + OUT_C);    // 両側のタイヤが逆転する
        Wait(little);            // しばし待つ
        Off(OUT_C);              // 左側のタイヤを止める
        OnFwd(OUT_A);            // 右側のタイヤが正転する
        until(SENSOR_3 == 1);    // 右側のセンサーが壁に当たるまで回る
      }
 
   }
 
 }
-どんな感じのロボットか、プログラムとセットでロボットの説明もあるといいですね。 -- [[松本(教員)]] &new{2005-11-24 (木) 21:43:19};
[[2005/A6/課題2左]]

#comment


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