目次
#contents
*課題の説明 [#fc9d48da]
    B地点をスタートしてQ付近の3/4円周上でピンポン玉をつかみ、そのピンポン玉をC地点においたゴールへシュートする (二人目)
        Bスタート → R直進 → P右折 → Q直進 → (ピンポン玉をキャッチ) → Q直進 → R右折 → P直進 → S右折 → Cへシュート
  ただし、
    なるべく速く正確に動くロボットになるように工夫して、交差点では1秒間停止すること。
    ピンポン玉はQ近くの3/4円周上ならどこにおいてもよい
    可能であればC,Dのゴールエリアライン上からシュートする
#ref(2016b/Member/pengin/Mission2/課題.jpg,150%)


黒線の左側をジグザグしながらライトレイスを行い、途中でピンポン球を拾ってそれをゴール地点まで運ぶことを目的としている。
*ロボットの説明 [#m45f1514]
**全体像 [#sb902f72]
#ref(2016b/Member/pengin/Mission2/全体像.jpg,150%)
モーターを前後の動き、アームの上げ下ろしにつか使った。センサーはライトセンサーを使用した。
**アーム部分 [#g06bc864]
#ref(2016b/Member/pengin/Mission2/アーム.jpg,150%)
ピンポン球が左右にずれないようにするために長いパーツを先端部分にとりつけた。ピンポン球を捕まえる部分はシンプルにアームを降ろすだけで捕まえられるようにした。
**本体部分 [#n44674aa]
#ref(2016b/Member/pengin/Mission2/ライト.jpg,150%) #ref(2016b/Member/pengin/Mission2/ウラ面.jpg,150%)
ライントレイスの正確性をあげるために機体とセンサーの距離を小さくするために、機体もなるべく小さくした。
*プログラミングの説明 [#k30b9e02]
 #define tyousei_migi OnFwd(OUT_A);\\ライントレイス時に右に少し調整
 #define tyousei_hidari OnFwd(OUT_C);\\ライントレイス時に左に少し調整
 #define senkai_migi OnFwd(OUT_A);OnRev(OUT_C);\\ライントレイス時に右に大きく調整
 #define senkai_hidari OnFwd(OUT_C);OnRev(OUT_A);\\ライントレイス時に左に大きく調整
 #define go_straight OnFwd(OUT_AC);\\直進する
 #define usetu OnFwd(OUT_A);Wait(100);\\交差点での右折
 #define tyokusinn OnFwd(OUT_AC);Wait(020);Off(OUT_AC);\\交差点での直進
 #define senkai OnFwd(OUT_A);OnRev(OUT_C);Wait(019);Off(OUT_AC);\\交差点での軌道修正
 #define up OnFwd(OUT_B);Wait(030);Off(OUT_B);\\アームを上げる
 #define down OnRev(OUT_B);Wait(030);Off(OUT_B);\\アームを下げる
 #define shoot  OnRev(OUT_AC);Wait(100);Off(OUT_AC);up;OnFwd(OUT_AC);Wait(100);Off(OUT_AC);\\ゴールにシュート

  sub linetrace()\\ライントレイス
  {
       SetSensor(SENSOR_2,SENSOR_LIGHT);
      ClearTimer(0);
       while(FastTimer(0)<027){
       if(SENSOR_2>50){senkai_migi;ClearTimer(0);}
       else if(SENSOR_2>47){tyousei_migi;ClearTimer(0);}
       else  if(SENSOR_2>43){go_straight;ClearTimer(0);}
       else if(SENSOR_2>37){tyousei_hidari;ClearTimer(0);}
       else if(SENSOR_2>35){senkai_hidari;}  
                  }
      Off(OUT_AC);
      PlaySound(SOUND_UP);
      Wait(100);
      senkai;
   }
       

   task main()
   {
       linetrace();\\ライントレイス
       usetu;\\交差点を右折
       linetrace();\\ライントレイス
       tyokusinn;\\交差点を直進
       tyokusinn;\\ボールを捕らえるために前進
       down;\\バーを下ろす
       linetrace();\\ライントレイス
       tyokusinn;\\交差点を直進
       linetrace();\\ライントレイス
       usetu;\\交差点を右折
       linetrace();\\ライントレイス
       tyokusinn;\\交差点を直進
       linetrace();\\ライントレイス
       usetu;\\交差点を右折
       linetrace();\\ライントレイス
       shoot;\\ピンポン球をゴールにシュート
   }
*結果 [#p976d7b0]
なんとか完走しゴールすることが出来た。しかし毎回完走できるわけではなかった。
*感想・まとめ [#t790fd68]


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS