[[2006a/A5]]

目次(ー。ー)v
#contents
*課題2 黒い線に沿って動くロボット [#k6cb2dcc]
**制作者 ドラ ヤマヒロ 和知 サット [#bc459e91]
**ロボット名 どすこい! [#f078b908]
&ref(2006a/A5/課題2右/P1010004.JPG,75%,どすこい!);
**経緯 [#u760fa18]
&ref(2006a/A5/課題2右/FB1AD085.jpg,75%,今回コースにしたデザイン);→→→→→→&ref(2006a/A5/課題2右/P1010005.JPG,75%,今回のコース);
 今回のロボットはスピードを出さいないで、正確にライントレースするように
 ギアによる4駆のマシンにしたよ♪
 マシン自体の重さも軽くしてみた。若干重心が前のめりになっちゃったけど(;´口`) 
 ライントレースするマークは今回W杯のデザインにした。
 そうしたら、ライントレース自体はプログラミングで簡単に成功した!!
 しかぁし!!タッチセンサーのプログラミングが上手く起動しなかったのである
                 _
 ガックシ... ○||_

 
**ロボットの頭の中その1♪(追い抜きプログラム) 制作者:ドラ&ヤマヒロ [#l7f8f8e9]
  	
 	task main ()
 {
     SetSensor(SENSOR_1,SENSOR_LIGHT);
     SetSensor(SENSOR_2,SENSOR_TOUCH);
     SetSensor(SENSOR_3,SENSOR_LIGHT);
     
     while(true)
     {
         if(SENSOR_1<50)    //もし光センサ−1の感度
         {           が50以下ならAが動いてC止まる
            OnFwd(OUT_A);
            Off(OUT_C);
         }else
         {
            Off(OUT_A);  
            OnFwd(OUT_C);
         }
         if(SENSOR_3<45)     //もし光センサー3の感度
         {               が45以下ならCが動いてA止まる
             OnFwd(OUT_C);
             Off(OUT_A);
         }else
         {
              Off(OUT_C);
              OnFwd(OUT_A);
         }
          if(SENSOR_2==1)    //もしタッチセンサー2が       
          {              感知したらバックして
                             右斜め方向にある程度進み、
                     その後にライントレースに戻          
                     るように左斜めに進んで
                     追い抜く             
         OnRev(OUT_A+OUT_C);
                Wait(150); 
                OnFwd(OUT_C);
                
                Wait(40);
                Off(OUT_C+OUT_A);
                OnFwd(OUT_A+OUT_C);
                Wait(150);
                Off(OUT_C);Wait(100);
                OnFwd(OUT_C);
                Wait(100);
               
                
                }
                }
                }

**ロボットの頭の中その2♪(方向転換プログラム)制作者:ドラ&ヤマヒロ [#i6a5c4e3]
 task main ()
 {
 SetSensor(SENSOR_1,SENSOR_LIGHT);
 SetSensor(SENSOR_2,SENSOR_TOUCH);
 SetSensor(SENSOR_3,SENSOR_LIGHT);
 while(true)
 {
 if(SENSOR_1<50)      //その1のプログラミングと同じでふ
 {                 ↓
 OnFwd(OUT_A);           ↓
 Off(OUT_C);            ↓
  }else               ↓
 {                                  ↓
 Off(OUT_A);            ↓
 OnFwd(OUT_C);           ↓
 }                                  ↓
 if(SENSOR_3<45)           ↓
 {                 ↓
 OnFwd(OUT_C);           ↓
 Off(OUT_A);            ↓
 }else               ↓
 {                 ↓
 Off(OUT_C);            ↓
 OnFwd(OUT_A);           ↓
 }
 if(SENSOR_2==1)        //もしタッチセンサー
                               が感知したら      
 {                             AとCがそれぞれ逆回転して
 OnFwd(OUT_A);        方向転換する
 OnRev(OUT_C);
 Wait(180);
 }
 }
 }


**問題点 [#r1708e43]
 初め光センサーを1つだけしか使わなかったら、カーブのたびに脱線して暴走してしまった。。。 
 そこで、脱線しないように光センサーを2つ使ったら今度はタッチセンサーが
 シングルバンパーになってしまった。
 結果、棒状のバンパーだと正確に感知しないことがあった。
 その上プログラミングがヘタレだったので
 せっかく上手にライントレースしていたマシンが暴走し始めてしまった!!!
**工夫した点 [#t026ae5c]
&ref(2006a/A5/課題2右/P10100012.JPG,75%,どすこい!);      &     &ref(2006a/A5/課題2右/P1010003.JPG,75%,どすこい!);
 光センサーは2つ接着するようにくっ付けて、広範囲で光を感知するようにした。
 またシングルバンパーの棒を1枚の板にしてワンタッチでより正確に感知するようにした♪ 
    <(`⌒´)> エヘン!!
**反省&感想 [#i1063d6b]
 今回は早めに取り組んだことによって、思った以上に楽しんで課題に取り組むことができた。
 しかし、プログラミングの内容がイマイチ上手くいかなくて苦労した。。。
 本当はもっと急カーブのライントレースがしたかったが、スピードと光センサーの問題があって、
 実現できなかったのが残念である。
 (_´口`)ノあぁぁぁ。。。
 これからもっとプログラミングのスキルをあげたい
**コメントしてくんれ [#xaa0329e]
-if や while のブロックは字下げして書くと、プログラムの構造が見やすくなります。 -- [[松本(教員)]] &new{2006-06-21 (水) 14:50:53};
-もう少し変化に富んだコースだと面白かったかもしれません。 -- [[松本(教員)]] &new{2006-06-21 (水) 14:51:29};

#comment
おねげぇします

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