2015a/Member

課題について

 今回の課題はロボットを一回転させ、懐中電灯のある方にボールをシュートする。明るさのピークを正確に見つけることが重要である。

ロボットについて

_10501.jpg _10502.jpg _10503.jpg _10504.jpg _10505.jpg _10506.jpg

ロボットの基本構造

 本体は課題2を参照(課題2の時より少し軽量化している)。アームは新しく作った。ボールを上から軽く押さえつけ、左右に移動しても両端のブロックがアームからボールが離れないようにしている。後ろに下がってもアームの押さえつける角度からボールが離れることはない。

プログラムについて

 ・定義

#define Time 380  //一回転する時間
#define spin_R OnFwd(OUT_A); OnRev(OUT_C);   //右回転
#define spin_L OnRev(OUT_A); OnFwd(OUT_C);   //左回転
#define shoot OnRev(OUT_B); Wait(20); Off(OUT_B);  //シュート

 ・メインプログラム:  変数をおき、回転しながら最も明るい点を探す。

task main() {
  SetSensor(SENSOR_2,SENSOR_LIGHT);
  int most_light = 0;     //最も明るい時のしきい値を記録するための変数
  ClearTimer(0);
 while(FastTimer(0) <= Time){   //一回転して最も明るい点を見つける。
     spin_R;                      //右回りで一回転
     if(SENSOR_2 > most_light){     //最も明るければそのしきい値を記録する
        most_light = SENSOR_2;
      }
     }
  Off(OUT_AC);    //小休止
  Wait(200);

 先程と違い、逆回転する。そして、最も明るい点にシュートする

 ClearTimer(1);
 while(FastTimer(1) <= Time){       //逆回転して最も明るい点で止まり、シュートする
   spin_L;                            //左回りで一回転
   if(SENSOR_2 > most_light - 1){       //最も明るいなら停止してシュート
         Off(OUT_AC);
         Wait(100);
         shoot;
         Off(OUT_AC);
         Wait(400);
     }
  }
 Off(OUT_AC);
}

反省

よかった点

 ・懐中電灯に向かってシュートできた。

 ・停止を入れることで安定して動かせた。

悪かった点

 ・車の動きが少し早かったのでシュートする位置が少しずれてしまった。


添付ファイル: file_10506.jpg 85件 [詳細] file_10505.jpg 81件 [詳細] file_10504.jpg 74件 [詳細] file_10503.jpg 72件 [詳細] file_10502.jpg 85件 [詳細] file_10501.jpg 88件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-07-30 (木) 22:43:32