目次

ロボットについて

今回の目的

200801102052000.jpg

 今回のロボットは“全方向から懐中電灯の方向を探しだし、懐中電灯に向けてブロックを投げる。”ことと“懐中電灯をゆっくり動かしたとき懐中電灯に向かって進む。”ことを目的としたものである。また、今回はモーター,タッチセンサー,光センサーをそれぞれ二つまでしか使用できない。そのため、一つのモーターでロボットを左右に回転させることが可能な“ディファレンシャルギア”を用いた。

ディファレンシャルギアとは?

ディファレンシャル・ギア(機構)_02.JPG

 先にも述べたように、一つのモーターでロボットを時計回り又は反時計回りに回転させることができるものである。よって、今回の目的の一つである“全方向から懐中電灯の方向を探しだし、懐中電灯に向けてブロックを投げる。”という行為を行うことができるのである。

ディファレンシャル・ギア_02.JPG

 ディファレンシャル・ギアの内部に三つのギアを組み込み、その中の二つのギアにシャフトを接続する。すると、片方のシャフトが回転したときに接続されているギアも同時に回転し、シャフトがつけられていないギアがその回転を継いでもう片方のシャフトが接続されているギアにつなげ、最初に回転していない方のシャフトがもう片方のシャフトとは逆の回転をする。

光センサーについて

光センサー拡大(加工)_01.JPG

 二つの光センサーの間に衝立代わりとして黒い棒を置いて各々を独立させることにより、反応しやすいようにした。

ブロックの投擲方法

投擲方法_01.JPG

 今回のロボットで使用可能なモーターは二つであり、一つは移動用に、もう一つは投擲用に使用している。投擲方法はいたってシンプルで、モーターに投擲台をつけ、モーターが回転すれば投擲が可能になるようにした。

プログラム

全方向から懐中電灯の方向を探しだし、懐中電灯に向けてブロックを投げる。

 #define THRESHOLD 70              //光の明るさを定義
 
 task main()
 {
      SetSensor(SENSOR_1, SENSOR_LIGHT);       //光センサーを定義
      
      while(true)
      {
           if(SENSOR_1 < THRESHOLD)         //定義した光よりも暗い場合
           {
                OnFwd(OUT_A);              //時計周りに回転する
           }
           else                     //定義した光よりも明るい場合
           {
                Off(OUT_A);               //タイヤの動きを止める
                OnFwd(OUT_C);             //ブロックを投げる
                Wait(5);
                Off(OUT_C);
            }
      }
 }

懐中電灯をゆっくり動かしたとき懐中電灯に向かって進む。

 #define THRESHOLD 70             //光の明るさを定義
 
 task main()
 {
 SetSensor(SENSOR_1, SENSOR_LIGHT);      //光センサーを定義
 SetSensor(SENSOR_3, SENSOR_LIGHT);
 
    while(true)
    {
           if(SENSOR_1< THRESHOLD)         //定義した光よりも光センサー1が暗い場合
           {
                if(SENSOR_3< THRESHOLD)       //定義した光よりも光センサー3が暗い場合
                     {
                     OnFwd(OUT_A);            //時計回りに回転する
                   
                     }
                     else                 //定義した光よりも光センサー3が明るい場合
                     {
                     OnRev(OUT_A);            //反時計回りに回転する
                     }
             }
             if(SENSOR_1> THRESHOLD)        //定義した光よりも光センサー1が明るい場合
             {
                  if(SENSOR_3< THRESHOLD)      //定義した光よりも光センサー3が暗い場合
                  {
                       OnFwd(OUT_A);           //時計回りに回転する
                  }
                  if(SENSOR_3> THRESHOLD)      //定義した光よりも光センサー3が明るい場合
                  {
                  OnRev(OUT_A);             //反時計回りに回転する
                  }
              }
         }
 }              

 ディファレンシャルギアを用いると、モーターをどのように回してもロボットは後退ができなくなる。そのため、モーターの正回転と逆回転を繰り返せば、ロボットは時計回りと反時計回りの動きを繰り返すので自ずと前進する。

工夫した点

苦労した点

コメントをお願いします。



添付ファイル: file投擲方法_01.JPG 572件 [詳細] file光センサー拡大(加工)_01.JPG 572件 [詳細] fileディファレンシャル・ギア(機構)_02.JPG 624件 [詳細] fileディファレンシャル・ギア_02.JPG 725件 [詳細] fileディファレンシャル・ギア_01.JPG 282件 [詳細] file200802011811000.jpg 237件 [詳細] file200801151447002.jpg 223件 [詳細] file200801151447001.jpg 269件 [詳細] file200801151447000.jpg 261件 [詳細] file200801151446002.jpg 261件 [詳細] file200801151446001.jpg 216件 [詳細] file200801151446000.jpg 249件 [詳細] file200801151445002.jpg 231件 [詳細] file200801151445001.jpg 233件 [詳細] file200801102057000.jpg 245件 [詳細] file200801102056001.jpg 247件 [詳細] file200801102056000.jpg 250件 [詳細] file200801102055001.jpg 223件 [詳細] file200801102055000.jpg 189件 [詳細] file200801102054001.jpg 206件 [詳細] file200801102054000.jpg 213件 [詳細] file200801102053002.jpg 235件 [詳細] file200801102053001.jpg 230件 [詳細] file200801102052001.jpg 206件 [詳細] file200801102052000.jpg 532件 [詳細] file200801102053000.jpg 240件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-02-09 (土) 11:43:00