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

**机の周りを回るロボット [#if1dd803]
 //『while』を使ってないプログラム
 #define back_time 60
 
 #define back_time 20             // 後退する時間
 
 sub turn_left()                  // ぶつかるまで左に曲がる
 {
    OnFwd(OUT_A);
    until(SENSOR_1==1);
    OnFwd(OUT_C);      
 }
 
 sub go_straight()                // 壁から離れるまで前進
 {
    OnFwd(OUT_A+OUT_C);          
    until(SENSOR_1==0);      
    Off(OUT_A+OUT_C);       
 }
 
 sub turn_right()                 // ぶつかるまで右に曲がる
 {
    OnFwd(OUT_A+OUT_C);
    until((SENSOR_1==1)&&(SENSOR_3==1));
    OnRev(OUT_A+OUT_C);
    Wait(back_time);
    Off(OUT_A);
    OnFwd(OUT_C);
    until(SENSOR_1==1);
    OnFwd(OUT_A);
 }
 
 task main()                      // 反時計回りに回る
 {
    SetSensor(SENSOR_1, SENSOR_TOUCH);
    SetSensor(SENSOR_3, SENSOR_TOUCH);
 
    turn_left();                  // 机の右側から動き始める
    go_straight();
 
    repeat(2){
 
        repeat(2){
            turn_left();
            go_straight();
                 }                // 机の外側を回る
 
        turn_left();              // 360°左回転する
 
        repeat(2){
            turn_right();
                 }                // 机の内側を回る
 
        go_straight();            // 机を一周する
 
             }          // これを二回繰り返す
 
 }

#comment

 //『while』を使ってみたプログラム
 
 #define turn_time 30
 #define back_time 20
 
 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_1 == 1)
     {
        Off(OUT_C);
        OnFwd(OUT_A);
        until(SENSOR_1==0);
     }
     
     if(SENSOR_1 == 0)
     {
        Off(OUT_A);
        OnFwd(OUT_C);
        until(SENSOR_1==1);
     }   
     
  }
   
   OnFwd(OUT_A+OUT_C);
   while (true)
   {
      if ((SENSOR_1 == 0) && (SENSOR_3 == 0))   // 右に曲がる
      {
         OnRev(OUT_A+OUT_C); Wait(back_time);
         Off(OUT_A);
         OnFwd(OUT_C); Wait(turn_time);
         OnFwd(OUT_A);
      }
      else                                      // 左に曲がる
      {
         OnRev(OUT_A+OUT_C); Wait(back_time);
         Off(OUT_C);
         OnFwd(OUT_A); Wait(turn_time);
         OnFwd(OUT_C);
      }
   }
 }

#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

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


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