[[2015a/MemberOnly]]

*目次 [#s6072681]
&ref(./kadai3mokuzi.JPG,20%);
#contents

*Mission3〜超音波センサーの利用〜 [#ba24c159]
今回の課題は半径1m以内においた空き缶を超音波センサーで探知して、25cmの距離まで近づいてから空き缶にボールを当てる事。

ただし缶がロボットから25cm以内にある時は30cm地点まで下がってから発射する。


&ref(./14384980078OAWE8CCRZef3eT1438498005.gif,30%);
*Machine〜今回の課題で使用するロボット〜 [#s9576fb6]         
課題2                         課題3


&ref(./kadai2machine.JPG,9%);               &ref(./robot honti.JPG,10%);


課題2のロボットとの違いは、ロボットの上部に超音波センサーを取り付けた事。


少々前方が重くなってしまったが、制作の時間が省けプログラミングに専念できたで結果的に良かった。

(マシンについての細かい解説は下記URL参照↓↓)


http://yakushi.shinshu-u.ac.jp/robotics/?2015a%2FMember%2FKatuu%2FMission2

*Starategy〜課題へのアプローチ〜 [#p31b4d2c]
�^貭蟷�間回転してその中で缶との距離を測る。


�△修譴魎陲砲靴銅,硫鹽召粘未諒�を向いて止まる。


���,蚤�った缶との距離を判断して課題の条件を満たすように移動。


�ぅ轡紂璽函�
*Program〜用いたプログラム〜 [#k86b8df4]
今回使用したプログラムは、まず最初の十秒間最初の位置で旋回し続け、1メートル以内の範囲に物体を感知したときその物体までの距離を、定義しておいた変数kiteitiに代入して記憶させる。その後、またロボットを旋回させkiteitiの値と同じ距離にある物体を検知するまで動かす。これで、缶の方向をロボットが向く。更にそのまま、kiteitiが25より大きいときは缶との距離が25cmになるまで直進する。また、25より小さい時は30cmまで離れるように後退、その後プログラム「SHOT」を起動させてボールを缶に当てる。

**定義 [#a26f3ec2]
 #define KOUSOKU 30                                         
 #define TEISOKU 20                                         
 #define ARMOPEN RotateMotor(OUT_A,50,90);                 
 #define SHOT ARMOPEN;OnFwd(OUT_BC,100);Wait(100);         
 #define SEARCH OnFwd(OUT_B,KOUSOKU);OnRev(OUT_C,KOUSOKU); 
 #define KAITENZIKAN 10000                                 
 
**メインタスク [#k45206b7]
  task main()
  {
      int kiteiti=100;
     SetSensorLowspeed(S2);
      long t0 = CurrentTick();
      while(CurrentTick()-t0<=KAITENZIKAN){    
          SEARCH;
          if(SensorUS(S2)<=kiteiti){
              SensorUS(S2)=kiteiti;
          }
      }                      
      SEARCH;                   
      until(SensorUS(S2)<=kiteiti);
      Off(OUT_BC);                                
      int tyousei;                                
      while(tyousei==0){                          
          if(SensorUS(S2)<=25){         
              OnRev(OUT_BC,TEISOKU);
              until(SensorUS(S2)>=30);
              Off(OUT_BC);
              tyousei++;
          }
          else if(SensorUS(S2)>25){
              OnFwd(OUT_BC,TEISOKU);
              until(SensorUS(S3)<=25);
              Off(OUT_BC);
              tyousei++;
          }            
      }                      
      SHOT;                   
   }
  }

*My impression〜感想〜 [#k7c40434]
最初、マシンの改造はすぐできて簡単に終わらせられると思ったら課題2と同じくプログラミングに大分苦労した。3人別々にやったがわからないところを他のメンバーに聞いたり協力し合えたことが今回は良が欲を言えばもっとマシンを一から作り直してかっこよくシュートしたかった。

ロボット本体は課題2の物に超音波センサーを取り付けるだけでできてよかった。プログラミングに関しては、最初の1M以内に缶があるという条件さえ満たせばどんな状況でも作動するスマートな動きをしてくれる物が作れてしっかりとどちらでも動いてくれたのが本当によかった。心残りだった点はシュートの時にロボットの方向が缶の向きからずれてしまいたまに外してしまう問題があり確実性に難があった点の修正できなかった点だった。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS