[[2009a]]へ
#contents

*ロボコン [#w553c1b8]
詳しくは[http://yakushi.shinshu-u.ac.jp/robotics/?2009a%2F%A5%ED%A5%DC%A5%B3%A5%F3 こちら]

*ロボコンの構想とか [#h1e55bd4]
**概要 [#pf6fa7b1]
-母艦を作って、その上に小型機を乗せる。
-牛乳パックの乗っている壁の、一か所だけ低くなっている部分(下図で言うと茶色の部分)まで来たら母艦から小型機を射出
-小型機は壁の向こう側で頑張る
**母艦(親機) [#d27c601c]
-親機の役目は子機を壁の向こう側まで送り込むことのみ
-親機にある程度の高さを持たせて、段差の上に橋を掛ける。その上を子機が渡る
**小型機(子機) [#z7700714]
-小型機の役目はパックをゴールの枠の中に入れること
-腕でパックを掴み、運搬する

**フィールド全体図 [#r08eac8a]
#ref(2009a/ロボコン/robocon2009a-1.png,100%,フィールド)

**構想についての話し合いの場(掲示板) [#rf976d8b]
- ロボコンの構想について話し合いの場作ってみた(`・ω・´)ゞ ピシッ! -- [[俺]] &new{2009-07-17 (金) 21:44:44};
- いつか集まりたいと思うけど、みんないつなら大丈夫? -- [[KEI]] &new{2009-07-23 (木) 22:15:10};
- ちなみに俺は7月31日と8月3、4日ならOK -- [[KEI]] &new{2009-07-23 (木) 22:16:40};
- 今のところ7/31〜8/5までは空いてる -- [[俺]] &new{2009-07-24 (金) 15:20:00};
~(この後、3,4あたりに集まることが決まる)
- 母艦がスタート側からパックを子機側に押し出して、子機の上にパックを落とし、運搬するやり方も -- [[俺]] &new{2009-07-24 (金) 17:43:12};
- 日曜はロッカーと教室開いてなかった(´・ω・`) 科学の祭典やってた -- [[俺]] &new{2009-08-02 (日) 09:56:20};
- 月曜日はロボットを大体完成させた。火曜日は主にプログラム -- [[俺]] &new{2009-08-04 (火) 11:11:29};
- 親機のプログラム完成 -- [[俺]] &new{2009-08-04 (火) 17:19:34};

#comment
~~
*全体図 [#q1b56577]
**親機 [#e240e1fc]
-とにかく子機を壁の向こう側にやることだけを考えた。そのために、余分な部品は極力削った
-なおかつ、親機は子機をしっかりと支えられるようにした。
-二枚の板を重ねただけでは縦からの圧力に耐えられないので、その板同士を縦方向に棒で挟む構造を作った。
#ref(2009a/A5/ロボコン/oyaki03.jpg,100%,親機01)
-橋を掛けた状態
-前輪を取り外すことで、床との摩擦を少なくした
~~
#ref(2009a/A5/ロボコン/oyaki04.jpg,100%,親機02)
-橋をしまった状態
~~
#ref(2009a/A5/ロボコン/oyaki05.jpg,100%,親機03)
-光センサー
-タッチセンサーでは動作があまりに不安定なため、光センサーを採用した
~~
#ref(2009a/A5/ロボコン/oyaki06.jpg,100%,親機04)
-二機重ねた状態
~~
#ref(2009a/A5/ロボコン/oyaki07.jpg,100%,親機05)
~
----
-旋回時に、前輪は左右に動かないので、余計な摩擦がかかってしまう。このため前輪は外した
-以下の画像は、前輪を取り外す前の画像
#ref(2009a/A5/ロボコン/oyaki01.jpg,100%,親機改良前01)
~
#ref(2009a/A5/ロボコン/oyaki02.jpg,100%,親機改良前02)
**子機 [#i0b7e574]
-後ろにタイヤを取り付けることでバランスを取り、重心を後方にもってきた
#ref(2009a/A5/ロボコン/koki01.JPG,100%,子機01)
~
#ref(2009a/A5/ロボコン/koki02.JPG,100%,子機02)
~
#ref(2009a/A5/ロボコン/koki03.JPG,100%,子機03)
~
#ref(2009a/A5/ロボコン/koki04.JPG,100%,子機04)
~
#ref(2009a/A5/ロボコン/koki05.JPG,100%,子機05)
~
#ref(2009a/A5/ロボコン/koki06.JPG,100%,子機06)
~
#ref(2009a/A5/ロボコン/koki07.JPG,100%,子機07)
-改良前ギア部。輪ゴムを使用していた
~
#ref(2009a/A5/ロボコン/koki08.JPG,100%,子機08)
~
#ref(2009a/A5/ロボコン/koki09.JPG,100%,子機09)
~
#ref(2009a/A5/ロボコン/koki10.JPG,100%,子機10)
~
#ref(2009a/A5/ロボコン/koki11.JPG,100%,子機11)
~
#ref(2009a/A5/ロボコン/koki12.JPG,100%,子機12)
-最終的にギア部には輪ゴムの代わりに、空回りするギアを採用した
~
#ref(2009a/A5/ロボコン/koki13.JPG,100%,子機13)
-親機と同じように、光センサーで線を辿るようにした。
-タッチセンサーだと、少しの揺れで反応してしまう。それを改善させるための構造を作るのにはそれなりのパーツが必要だが、余りは少なくなる見通しであったため、光センサーを採用した
-全体像
*プログラム [#mf257811]
**親機 [#x1187374]
 #define THERESHOLD 40 //闘値
 #define KAI_S 100 //回転する秒数
 
 task main () //親機の動作
 {
      int kousa=0; //交差点の数を数える変数
      SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1は光学センサー
      SetSensor(SENSOR_3,SENSOR_LIGHT); //センサー3は光学センサー
      while(GO<1){
           if (SENSOR_1>THERESHOLD){
                if (SENSOR_3>THERESHOLD){
                     OnFwd(OUT_A+OUT_C);
                } else {
                     Off(OUT_C);
                     OnFwd(OUT_A);
                }
           } else {
                if (SENSOR_3>THERESHOLD){
                     OnFwd(OUT_C);
                     Off(OUT_A);
                } else { //交差点に突入
                     kousa=kousa+1;
                     if (kousa==1){
                          Off(OUT_A+OUT_C);
                          OnFwd(OUT_A+OUT_C); //前進
                          Wait(30);
                          Off(OUT_A+OUT_C);
                     }
                     if (kousa==2){
                          OnFwd(OUT_A+OUT_C); //前進
                          Wait(40);
                          Off(OUT_A+OUT_C);
                          usetsu(); //右折
                     }
                     if (kousa==3){
                          OnRev(OUT_A+OUT_C); //後退
                          Wait(30);
                          Off(OUT_A+OUT_C);
                          usetsu(); //右折
                          OnFwd(OUT_A+OUT_C); //前進
                          Wait(145);
                          Off(OUT_A+OUT_C);
                          sasetsu(); //左折
                          OnFwd(OUT_A+OUT_C); //前進
                          Wait(50);
                          Off(OUT_A+OUT_C);
                          PlaySound(SOUND_UP) ; //ここまで来たら音で知らせる
                          Wait(500);
                          OnRev(OUT_A+OUT_C); //後退し、橋を回収する
                          Wait(500);
                          Off(OUT_A+OUT_C);
                     }
                }
           }
      }
 }
 
 sub usetsu() //右折
 {
      OnFwd(OUT_A);
      OnRev(OUT_C);
      Wait(95);
      Off(OUT_A+OUT_C);
 }
 
 sub sasetsu() //左折
 {
      OnRev(OUT_A);
      OnFwd(OUT_C);
      Wait(KAI_S);
      Off(OUT_A+OUT_C);
 }
**子機 [#haae400a]

 #define A OUT_A 
 #define B OUT_B 
 #define C OUT_C
 task main()
 {  
   SetSensor(SENSOR_1,SENSOR_LIGHT);
   SetSensor(SENSOR_3,SENSOR_LIGHT);
      Wait(1200);               //待機時間
      OnFwd(B);Wait(30);OnFwd(A+C);Wait(400);OnRev(B);Off(A+C); Wait(150);   //壁を越える
      OnRev(A+C);Wait(70);Off(A+C);Wait(30);OnFwd(C);OnRev(A);Wait(80);Off(A+C);OnFwd(A+C);Wait(70);Off(A+C);Wait(40);
      OnRev(A);OnFwd(C);Wait(60);;Off(A+C);OnFwd(A+C);Wait(60);Off(A+C);Wait(20);OnFwd(B);Wait(30);OnRev(A+C);Wait(40);Off(A+C);Wait(30);    /パックをつかむ
      start hanten;    //ゴールにいれる。
      
    
  }
           
   
         
     
    task hanten()
       {
        OnRev(A);OnFwd(C);Wait(150);Off(A+C);OnFwd(A+C);Wait(200);Off(A+C+B);
       }    

*コメントをどうぞ [#a4728fe5]
#comment

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