2010a

課題3の内容

黄色いホイールを2個以上連射するロボットを作成し、以下の動きをするようにプログラムを作成せよ。ただし1,3は懐中電灯を2個使用し、ロボットの動作中は懐中電灯を動かさないがいろいろな距離や方向にある懐中電灯に対応できるロボットにすること。2は懐中電灯を1個使用し懐中電灯をゆっくり動かす。

懐中電灯の代わりに携帯のライトなどを利用してもよい。

メンバー

   田島     美斎津

ロボット

構造

問題点

工夫した点

プログラム

田島のプログラム(選択1)

#define shot OnRev(OUT_B);
             Wait(10);
             OnFwd(OUT_B);
             Wait(30);
             Off(OUT_B);
int move_time1
int move_time2
int light1
int light2
task main(){
ClearTimer(0);                    //タイマーをゼロにする
light1 = 0;                     
light2 = 0;
move_time1 = 0;
move_time2 = 0; 
SetSensor(SENSOR_3,SENSOR_LIGHT);
       OnFwd(OUT_A);                 //回転する
       OnRev(OUT_C);
while(FastTimer(0) < 450) {             //4、5秒間はwhileの中をする
   if((SENSOR_3 > light2)&&(light2 < light1)){   //もしSENSOR_3がlight2より大きくかつlight2がlight1よりも大きいとき
       light2 = SENSOR_3;                   //light2にSENSOR_3を代入する         
       move_time2 = FastTimer(0); }        //move_2にFastTimer(0)を代入する
   else if(SENSOR_3 > light1) {          //SENSOR_3がlight1より大きいとき
       light1 = SENSOR_3;             //light1にSENSOR_3を代入する
       move_time1 = FastTimer1; }         //move_tine1にFastTimer(0)を代入する
}
       Off(OUT_A+OUT_C);             //回転を止める
       Wait(50);                 //0、5秒待つ
       OnFwd(OUT_C);               //回転する
       OnRev(OUT_A);
       Wait(450 - move_time2);          //光源まで回転する
       Off(OUT_A+OUT_C);
       shot                   //弾を打つ
       OnFwd(OUT_A);               //回転する
       OnRev(OUT_C);
       Wait(move_time1);             //光源まで回る
       Off(OUT_A+OUT_C);
       shot                    //弾を打つ
}

工夫した点

問題点

美斎津のプログラム(選択2)

#define light 65 //懐中電灯の光の値
#define go_straight OnFwd(OUT_C+OUT_A);Wait(100);//まっすぐ進む
#define TURN_RIGHT OnFwd(OUT_C);OnRev(OUT_A);//右に旋回する
#define TURN_LEFT OnFwd(OUT_A);OnRev(OUT_C);//左に旋回する
#define TURN_TIME 100//90度旋回する時間
#define shoot 80//弾を打つときの光の値
#define shot OnRev(OUT_B);Wait(10);OnFwd(OUT_B);Wait(30);Off(OUT_B);//玉を打つ
task main()
{
 SetSensor(SENSOR_3, SENSOR_LIGHT);//センサー3を光センサーとする
 int count=0;//弾を打った回数
 ClearTimer(0);// Timer(0) をリセット
 while(count<2)//弾を二回打つまで繰り返す
 {
  if(SENSOR_3 > shoot)//光センサーが懐中電灯に近づいたとき
   {
   Off(OUT_C+OUT_A);//1秒止まる
   Wait(100);
   shot;//弾を打つ
   count++;//弾を打った回数を増やす
   ClearTimer(0);// Timer(0) をリセット
   }
  else if(SENSOR_3 > light)//光センサーが懐中電灯に反応したとき
   {
   ClearTimer(0);// Timer(0) をリセット
   go_straight;//まっすぐ進む
   }
   else if((SENSOR_3 < light)&&(Timer(0) > TURN_TIME))//光センサーに反応がないまま1秒たったとき
  {
  TURN_LEFT;//左に旋回する
  }
  else if(SENSOR_3 < light)//光センサーに反応がないとき
   {
   ClearTimer(0);// Timer(0) をリセット
   TURN_RIGHT;//右に旋回する
   }
 }
 Off(OUT_C+OUT_A);//弾を二回打ったときロボットを停止させる
}

工夫した点

問題点

感想

田島

今回はテスト前ということもあり、あまり時間が無く、完成させることが出来なかった。なので、プログラムが未完成でうまく作動しない。自分としても、どのようにすればうまく動かすことが出来るのかわからず、とても困った。ロボットの方は、美斎津君にまかせっきりで、手を出していない。最後のロボコンは、精一杯がんばりたいと思う。

美斎津

コメント


 


添付ファイル: fileF1000492.JPG 328件 [詳細] fileF1000491.JPG 206件 [詳細] fileF1000490.JPG 302件 [詳細] fileF1000489.JPG 327件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-08-11 (水) 20:03:51