アーム側プログラム

   #define SIGNALON 11   // モータ回転のためのメッセージ
    #define SIGNALOFF 12  // モータ停止のためのメッセージ
   task main ()
   {
     while (true) {
       if (SENSOR_2 <= 30){
       SendMessage(SIGNALON);
       Wait(500);
       OnRev(OUT_C);
       Wait(100);
       OnRev(OUT_A);
       Wait(200);
       OnFwd(OUT_A);
       Wait(100);
       OnFwd(OUT_C);
       Wait(20);
       Off(OUT_AC);
       }
     }
   }

タイヤ側プログラム


// 受信側のプログラム
//
   #define SIGNALON 11
   #define SIGNALOFF 12
   task main ()
   {
     ClearMessage(); // Message()の値を0に初期化
     while (true) {
       until (Message() == SIGNALON);
       Wait(600);
       OnFwd(OUT_AC);
       Wait(200);
       Off(OUT_AC);
     }
   }

アーム側のプログラム(改正)
   #define SIGNALON 11   // モータ回転のためのメッセージ
   #define SIGNALOFF 12  // モータ停止のためのメッセージ

   //A 上下
   //C アーム

   task main ()
   {
    while (true) {
      if (SENSOR_2 <= 26){
       Wait(300);
      OnRev(OUT_C);   //アームを閉じる
      Wait(500);
      OnRev(OUT_A);   //上に上がる
      Wait(200);
      Off(OUT_A);
      while (true) {
      if (SENSOR_2 <= 26){
      Wait(230);
      OnFwd(OUT_A);    //下に下がる
      Wait(20);
      OnFwd(OUT_C);    //アームを開く
      Wait(20);
      Off(OUT_AC);
         }
        }
       }
      }
     }



*アーム側最終プログラム [#r78c547a]
   #define kan_hanbetu 26
   sub arm_open()
    { 
      Wait(300);
      OnFwd(OUT_A);    //下に下がる
      Wait(20);
      Off(OUT_A);
      OnFwd(OUT_C);    //アームを開く
      Wait(20);
      Off(OUT_AC);
      OnFwd(OUT_A);    //下に下がる
      Wait(250);
      Off(OUT_A);
     }

   void arm_close(int time)
     {
      OnRev(OUT_C);   //アームを閉じる
      Wait(time);
      OnRev(OUT_A);   //上に上がる
      Wait(280);
      Off(OUT_A);
     }



   //A 上下
   //C アーム

   task main ()
   {
      while (true) {
      if (SENSOR_2 <= kan_hanbetu){
      Wait(300);
      arm_close(300);
      Wait(100);
      OnRev(OUT_A);   //上に上がる
      Wait(500);

      while (true){
      if (SENSOR_2 <= kan_hanbetu){
      arm_open();      
      arm_close(30);
      OnRev(OUT_A);   //上に上がる
      Wait(500);

      while (true){
      if (SENSOR_2 <= kan_hanbetu){
      OnFwd(OUT_A);    //下に下がる
      Wait(200);
      Off(OUT_A);
      Wait(200);
      OnFwd(OUT_C);    //アームを開く
      Wait(30);
      Off(OUT_C);
        }
       }
      }
     }
    }
   }
  }


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