[[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/ロボコン/oyaki01.jpg,100%,親機01)
#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/ロボコン/oyaki02.jpg,100%,親機02)
-橋をしまった状態

----
#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)
*プログラム [#mf257811]
**親機 [#x1187374]
 #define THERESHOLD 40
 #define KAI_S 100
 
 task main () //親機の動作
 {
      int kousa=0; //交差点の数を数える変数
      int GO=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(100);
                          Wait(145);
                          Off(OUT_A+OUT_C);
                          sasetsu(); //左折
                          OnFwd(OUT_A+OUT_C); //前進
                          Wait(30);
                          Wait(50);
                          Off(OUT_A+OUT_C);
                          GO=1; //GOに1を代入
                          SendMessage(GO);
                          PlaySound(SOUND_UP) ;
                          Wait(500);
                          OnRev(OUT_A+OUT_C); //後退
                          Wait(100);
                          Wait(500);
                          Off(OUT_A+OUT_C);
                     }
                }
           }
      }
 }
 
 sub usetsu() //右折
 {
      OnFwd(OUT_A);
      OnRev(OUT_C);
      Wait(180);
      Wait(95);
      Off(OUT_A+OUT_C);
 }
 
 sub sasetsu() //左折
 {
      OnRev(OUT_A);
      OnFwd(OUT_C);
      Wait(180);
      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