[[戻る>2005/A6]]
*製作中のプログラム [#c4c4fb09]

**机の周りを回るロボット [#if1dd803]

 #define little 37                // 後退する時間
  
 task main()                      // 反時計回りに机の周りを回るプログラム
  {
   SetSensor(SENSOR_1, SENSOR_TOUCH);  // 右側のセンサー
   SetSensor(SENSOR_3, SENSOR_TOUCH);  // 左側のセンサー
 {
  SetSensor(SENSOR_1, SENSOR_TOUCH);  // 右側のセンサー
  SetSensor(SENSOR_3, SENSOR_TOUCH);  // 左側のセンサー
  
   while (true)
    {
   {
 
      if(SENSOR_3 == 1)           // 右側のセンサーが触れる
       {
         Off(OUT_C);              // 左側のタイヤが止まる
         OnFwd(OUT_A);            // 右側のタイヤが正転する
       }
     if((SENSOR_1 == 0) && (SENSOR_3 == 1)) // 右側のセンサーが触れる
      {
        Off(OUT_C);              // 左側のタイヤを止める
        OnFwd(OUT_A);            // 右側のタイヤが正転する
        until(SENSOR_3 == 0);    // 右側のセンサーが離れるまで回る
      }
 
      if(SENSOR_3 == 0)           // 右側のセンサーが離れる
       {
         Off(OUT_A);              // 右側のタイヤが止まる
         OnFwd(OUT_C);            // 左側のタイヤが正転する
       }
     if((SENSOR_1 == 0) && (SENSOR_3 == 0)) // 右側のセンサーが離れる
      {
        Off(OUT_A);              // 右側のタイヤが止まる
        OnFwd(OUT_C);            // 左側のタイヤが正転する
        until(SENSOR_3 == 1);    // 右側のセンサーが触れるまで回る
      }
 
      if(SENSOR_1 == 1)           // 左側のセンサーが触れる
       {
         OnFwd(OUT_A);            // 右側のタイヤが正転する
         OnRev(OUT_C);            // 左側のタイヤが逆転する
       }
     else                        // 壁に衝突する
      {
        OnRev(OUT_A + OUT_C);    // 両側のタイヤが逆転する
        Wait(little);            // しばし待つ
        Off(OUT_C);              // 左側のタイヤを止める
        OnFwd(OUT_A);            // 右側のタイヤが正転する
        until(SENSOR_3 == 1);    // 右側のセンサーが壁に当たるまで回る
      }
 
    }
   }
 
  }
 }

#comment

*製作したプログラム 『これまでの流れ』 [#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(3)
    {
      OnFwd(OUT_A+OUT_C);
      Wait(150);            // 一つの辺の軌跡を書く
      OnFwd(OUT_A);
      OnRev(OUT_C);
      Wait(110);            // 一つの角の軌跡を書く
    }
 
  }                         // 『repeat』を使ったプログラム

#comment

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


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