プログラム

分別ロボ

製作日:2/7
制作者:Dezz
task main ()
{
  SetSensor(SENSOR_1,SENSOR_LIGHT);           //センサー1は光センサー
  OnRev(OUT_B);Wait(70);Off(OUT_B);                  //箱を持ち上げるバケットを伸ばす
  while ( true )
   { Wait(300);
      if ( (53<SENSOR_1)||(SENSOR_1<30) )            //何もバケットにないときは動かない
      {
        Off(OUT_A+OUT_B );
        Off(OUT_C);
      }
         if ( (47<=SENSOR_1)&&(SENSOR_1<=53) )       //白箱がバケットに乗ったとき
         {
           OnFwd(OUT_B);Wait(130);Off(OUT_B);        //バケットを持ち上げる
           OnFwd(OUT_C);Wait(100);Off(OUT_C);        //少しコンベアーを動かし箱を取り込む
           OnFwd(OUT_A);Wait(310);                   //カゴの位置まで横移動
           Off(OUT_A);
           OnFwd(OUT_C);Wait(500);                   //コンベアーを動かし箱をカゴに落とす
           Off(OUT_C);
           OnRev(OUT_A);Wait(300);Off(OUT_A);        //元の位置に戻る
           OnRev(OUT_B);Wait(100);Off(OUT_B);        //バケットを下ろす
         } 
          if ( (40<=SENSOR_1)&&(SENSOR_1<=45) )      //緑の時は移動せず
         {
           OnFwd(OUT_B);Wait(130);Off(OUT_B);
           OnFwd(OUT_C);Wait(500);Off(OUT_C);        //コンベアーを動かしカゴに落とす
           OnRev(OUT_B);Wait(100);Off(OUT_B);        
         }
         if ( (30<=SENSOR_1)&&(SENSOR_1<=35) )       //黒箱がバケットに乗ったとき,以下白の時と同様に…
         {
           OnFwd(OUT_B);Wait(130);Off(OUT_B);
           OnFwd(OUT_C);Wait(100);Off(OUT_C);
           OnRev(OUT_A);Wait(300);                   //白箱と逆の方に横移動
           Off(OUT_A);
           OnFwd(OUT_C);Wait(500);
           Off(OUT_C);
           OnFwd(OUT_A);Wait(310);Off(OUT_A);
           OnRev(OUT_B);Wait(100);Off(OUT_B);
         }
    }
}

橋ロボ

製作者:Robogon
プログラム無し。
飛び出し式のアナログ型である。

運びロボ

制作日:2/7
製作者:信之介


#define m32 120                                   //32cm進む時間
#define m16 50                                    //16cm進む時間
#define turn 52                                   //90°回転する時間
#define up 20                                     //箱を背中に乗せた後少し持ち上げる時間
#define drop 70                                   //箱を投げる時間

task main()
{
SetSensor(SENSOR_1,SENSOR_TOUCH);                 //タッチセンサーをセット

      OnFwd(OUT_A+OUT_C);   Wait(20);             //…梢福このとき押さえていた橋が開く
      OnRev(OUT_A);   Wait(turn);
      OnFwd(OUT_A+OUT_C);   Wait(m32);            //直進
      OnRev(OUT_C);   Wait(turn);
      OnFwd(OUT_A+OUT_C); 
      while(true)                                 //▼1とにかく直進。
      {                                             ifを用いて、
         if(SENSOR_1 ==1) {                         背中のセンサーが反応するとバックしながら戻る
            Off(OUT_A+OUT_C);                       後で出てくるelseを用い、
            OnFwd(OUT_B);   Wait(up);               反応するまでとにかく進む
            Off(OUT_B);
            OnRev(OUT_A+OUT_C);  Wait(m16);       //
            OnFwd(OUT_C);   Wait(turn);
            OnRev(OUT_A+OUT_C);   Wait(m32);
            OnFwd(OUT_A);   Wait(turn);
            OnRev(OUT_A+OUT_C);   Wait(m16);      //
            Off(OUT_A+OUT_C);
            OnFwd(OUT_B);   Wait(drop);           //▼0
            OnRev(OUT_B);   Wait(drop);
            Off(OUT_B);
            PlaySound(SOUND_UP);                  //箱を投げ終わると音が鳴る
                                                    これで一作業終わり
            OnFwd(OUT_A+OUT_C);   Wait(m16);      //
            OnRev(OUT_C);   Wait(turn);
            OnFwd(OUT_A+OUT_C);   Wait(m32);      //
            OnRev(OUT_A);   Wait(turn);
            OnFwd(OUT_A+OUT_C);                   //▼2
            if(SENSOR_1 ==1) {
               Off(OUT_A+OUT_C);
               OnFwd(OUT_B);   Wait(up);
               Off(OUT_B);
               OnRev(OUT_A+OUT_C);  Wait(m16);    //
               OnFwd(OUT_A);   Wait(turn);
               OnRev(OUT_A+OUT_C);   Wait(m32);
               OnFwd(OUT_C);   Wait(turn);
               OnRev(OUT_A+OUT_C);                //
               Off(OUT_A+OUT_C);
               OnFwd(OUT_B);  Wait(drop);         //▼0
               OnRev(OUT_B);   Wait(drop);
               Off(OUT_B);
               PlaySound(SOUND_UP);
            } else {
               OnFwd(OUT_A+OUT_C);
            }
          } else {
             OnFwd(OUT_A+OUT_C);
          }
       }

}
ロボの動き

 ■■■■■■■H■■■■■■■
      き│Вスタート
 →     ↑↓´ァ   、
┌─────-┴-──────┐
↑│↓  ←□ →Β   ↓│↑
  ▼1             ▼2
  □1     □       □2
  □3     □       □4
  □      □       □

H:橋  ▼:ロボ
□:箱(取る順番)

感想はこちらに

戻る


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-02-17 (金) 22:51:28 (4929d)