アクセス数:今日1 総数&counter([total|today|yesterday]);

ベルトコンベア(掴む)側のプログラム New!

原型

//作成者:Hypodytes rubripinnis
//作成日時:2/6〜7

最終更新日:2006-02-14 (火) 05:18:24

#define up OnRev(OUT_B);until(SENSOR_2>=1);Off(OUT_B);  //up(パックを取る)を定義
#define down(t) OnFwd(OUT_B);Wait(t);Off(OUT_B);    //down(パックを置く)を定義

task main()
{
    SetSensor(SENSOR_1,SENSOR_LIGHT);  //センサー1:光センサー
    SetSensor(SENSOR_2,SENSOR_TOUCH);  //センサー2:タッチセンサー 
    SetSensor(SENSOR_3,SENSOR_LIGHT);  //センサー3:光センサー
     
    while (true)
      {
       ClearMessage();          //メッセージをクリア    
       until (Message() != 0);      //0以外の数字が入るまで待つ

       if ( Message() == 1 ) up;     //1が入ったらup
       if ( Message() == 2 ) down(290);  //2が入ったらdownを2.9秒
       if ( Message() == 3 ) down(650);  //3が入ったらdownを6.5秒
      }
     
    while(SENSOR_2>=1)
      {
        if((40<=SENSOR_1<=50)&&(SENSOR_2>=1))  //センサー1が40以上50以下かつセンサー2が1以上なら
          {
           SendMessage(1);Wait(300);           //メッセージ1を3秒間送信
          }
        if((50<SENSOR_1)&&(SENSOR_2>=1))       //センサー1が50より大きいかつセンサー2が1以上なら
          {
           SendMessage(2);Wait(300);           //メッセージ2を3秒間送信
          }
        if((SENSOR_1<40)&&(SENSOR_2>=1))       //センサー1が40未満かつセンサー2が1以上なら      
          {
           SendMessage(3);Wait(500);           //メッセージ3を3秒間送信
          }
      }

    while(SENSOR_2>=1)
      {
        if((30<=SENSOR_3<=35)&&(SENSOR_2>=1))  //センサー3が30以上35以下かつセンサー2が1以上なら
          {
           SendMessage(4);Wait(300);           //メッセージ4を3秒間送信
          }
        if((35<SENSOR_3)&&(SENSOR_2>=1))       //センサー3が35より大きいかつセンサー2が1以上なら
          {
           SendMessage(5);Wait(300);           //メッセージ5を3秒間送信
          }
        if((SENSOR_3<30)&&(SENSOR_2>=1))       //センサー3が30未満かつセンサー2が1以上なら
          {
           SendMessage(6);Wait(300);           //メッセージ6を3秒間送信
          }
      }
}

SASがいぢったVer.

//作成者:SAS
//作成日時:2/7,12

最終更新日:2006-02-14 (火) 05:18:24

#define up OnRev(OUT_B);until(SENSOR_2>=1);Off(OUT_B);    //ベルトコンベアを回転させて紙パックを掴むマクロ
#define down(t) OnFwd(OUT_B);Wait(t);Off(OUT_B);    //ベルトコンベアを回転させて紙パックを落とすマクロ

task main()
{
    SetSensor(SENSOR_1,SENSOR_LIGHT);    //
    SetSensor(SENSOR_2,SENSOR_TOUCH);    //
    SetSensor(SENSOR_3,SENSOR_LIGHT);    //
     
    while (true)    //
      {
       ClearMessage();    //Messageを0にする
       until (Message() != 0);    //Messageが0でなくなるまで待つ

       if ( Message() == 1 )     //Message(1)を受信したら、
        {up;}    //紙パックを掴む

       if((SENSOR_1 >= 40)&&(SENSOR_1 <= 50))    //上段の紙パックの色が緑なら
          {SendMessage(1);Wait(300);}    //Message(1)を300送る
       if(SENSOR_1 >=51)    //上段の紙パックの色が白なら
          {SendMessage(2);Wait(300);}    //Message(2)を300送る
       if(SENSOR_1 <= 39)    //上段の紙パックの色が黒なら
          {SendMessage(3);Wait(300);}    //Message(3)を300送る

       Wait(150);    //150待つ

       if((30<=SENSOR_3<=35))    //下段の紙パックの色が緑なら
          {SendMessage(4);Wait(300);}    //Message(4)を300送る
       if((35<SENSOR_3))    //下段の紙パックの色が白なら
          {SendMessage(5);Wait(300);}    //Message(5)を300送る
       if((SENSOR_3<30))    //下段の紙パックの色が黒なら
          {SendMessage(6);Wait(300);}    //Message(6)を300送る
           
       until(Message() == 2||3);    //Messageが2か3になるまで待つ
       if ( Message() == 2 )    //Message(2)を受信したら 
       {down(290);}    //紙パックを290かけて置く
       if ( Message() == 3 )    //Message(3)を受信したら  
           {down(650);}    //紙パックを650かけて置く

      }
}

 続いて足のプログラムGO!


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-02-14 (火) 05:18:24