&size(40){ロボット課題3};
#contents
*設計 [#gbe63518]
**車体 [#p3f5477d]

#ref(CIMG0938.JPG)
   ↑↑全体~
写真中央にあるのが発射台です。~
左上の青いブロックが光センサーで懐中電灯の光を感知します。~
#ref(CIMG0939.JPG)
   ↑↑RCX
-目標を探すための回す部分
-誤差を完全回避ための設計
-発射部分が重くて動きにくいのは欠点
#ref(CIMG0940.JPG)
   ↑↑ギアの取り付け部分(後ろ側より)
#ref(CIMG0941.JPG)
   ↑↑ギアの取り付け部分(前側より)~
#ref(3-1.jpg)
-A(1)->B->C->D->E->F->2順
-一つのモータは二つ違う方向の伝送に責任を負う設計
-発射するため早い初速度が必要ため、1まずブロックを押し、2もだんだん棒を抜き出す
-「あ」は発射台を固定するための棒で、「い」は前進するためのモータとギア
 
#ref(003.jpg)
   ↑↑光センサーです。~
~
中立な稲妻のこだわりでオリジナルにこだわりました。~
結構大きいものになりました。~
見た目で感じてもらえると思います!!~

*プログラム [#qc3c2d87]
**1.懐中電灯に向かって投げる [#ee210217]
 #define TURN_TIME    400               //1周の時間を設定
 #define  throw      OnFwd(OUT_A);Wait(1);Off(OUT_A); //投げるときの定義

 task main ()
 {
 SetSensor(SENSOR_1,SENSOR_LIGHT);  // センサ−1をライトセンサーと設定
 SetPower(OUT_C,2);                 //モーターCの出力を制限
 int light_max=0;                   //光の最大値
 int t_max=0;                       //最大値のときの時間
 ClearTimer(0);                     //タイマーを0にして
 OnFwd(OUT_C);                      //探し始めます

 while(FastTimer(0)<TURN_TIME){   //回っている間
    if(SENSOR_1>light_max)        //最大値の光を見つけたら
    {
     light_max=SENSOR_1;          //最大値の光と設定
      t_max=FastTimer(0);         //タイマーを入れる
    }
                              }
 Off(OUT_C);       
 Wait(50);
 OnFwd(OUT_C);
 Wait(t_max);             //最大値の光までまわる
 Off(OUT_C);
 throw                    //投げる
 }

作成者:竹
**2.懐中電灯に近づいて投げる [#r1be70c8]
 #define TURN_TIME   400                                                 //  1周の時間を設定
 #define  throw      OnFwd(OUT_A);Wait(1);Off(OUT_A);                    // 投げるときの定義
 #define straight    Off(OUT_C);Wait(10);OnFwd(OUT_C);Wait(20);OnRev(OUT_C);Wait(20);  // 近づくときの定義

 task main ()
 {
 SetSensor(SENSOR_1,SENSOR_LIGHT);  // センサ−1をライトセンサーと設定
 SetPower(OUT_C,2);                 //モーターCの出力を制限
 int light_max=0;                   //光の最大値
 int t_max=0;                       //最大値のときの時間
 ClearTimer(0);                     //タイマーを0にして
 OnFwd(OUT_C);                      //探し始めます

 while(FastTimer(0)<TURN_TIME){       //1周しているとき
   if(SENSOR_1>light_max){           //最大値の光にあったら
    light_max=SENSOR_1;               //最大値の光と設定
    t_max=FastTimer(0);               //最大値の光のところまでの時間をはかる
                        }
                              }   
 Off(OUT_C);
 Wait(50);
 OnFwd(OUT_C);
 Wait(t_max);       //最大値の光まで回って
 Off(OUT_C);
 straight           //近づいて
 throw              //投げる
 }

作成者:中立な稲妻
*感想 [#vf513274]
**竹 [#udfb96b2]
 前回の課題よりは難しくなかったですが、タイマーを使ったプログラムは初めてだったのでちょっと大変でした。
 また移動させるためのモーター一つというのも難しい課題でした。
**中立な稲妻 [#rc28ad64]
 かなり難しい課題ですよね。
 直接投げる方は簡単ですけど、人並みの設計が嫌いですので、独特な面白い(たぶん?)ロボットを作りました。
 輪ゴムを使ったら一番早い初速度を得られるかもしれないですけど、切れたら面倒ですのでその方案を放棄しました。
*コメント [#s84efe2d]
お願いします。
- ロボットの方も工夫しているのは良いと思います。2つ目の課題では懐中電灯は懐中電灯が逃げていくので、それを追っていく課題です。過去のページも参考にしてみてください -- [[FI]] &new{2009-08-05 (水) 08:06:05};

#comment

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