[[ライントレースをするロボット]]

 ・移動形式  タイヤ

 ・概略 ロボットの形は初期のロボットにセンサーを取り付けるための部品を取り付けた簡単で規模の小さいものであります。ちょっともの足りないかもしれませんのでご了承下さい。。。

ロボットの前部に光センサーを取り付けそれより前にタッチセンサーをつける。光センサー1つ、タッチセンサー2つの計3つを車両の前方に取り付けてみました。
光センサーは、コースである黒い線を認識するプログラム。
前方につけたバンパーにはタッチセンサーが取り付けてあり、バンパーが前にいる車に接触する事でタッチセンサーが押され、前にいる車に接触した事を認識する事でその後のプログラムに移行します。

なぜ光センサーが1つでタッチセンサーが2つなのかというのについては、いろいろなグループ内での葛藤があって話せば長くなるんです。人にはなかなか言えない何かが色々あったんです。
 
 

 今回は例の規模の小さい簡単に作成できるロボットの写真を撮り忘れたようで写真はありません。申し訳ない。



・マシン作成の流れ

いろいろな繰り返しの中で作り上げたこのマシンを説明させていただきたいと思います。。。

+ 最初に作ったロボはキャタピラだったので回転するスピードが遅くなり、比較的ゆるやかなカーブや、曲がりやすいコースでもすぐにコースアウトしてしまった。
+ 車体の横幅を小さくしたほうがすばやい旋回が出来る事に気づ。。。キャタピラでは不可能だ!!!!!!
+ キャタピラへの熱い想いを捨て去り、ついにタイヤに切り替える事を決意!!ここにグループの結束が高まる。。。
+ 結局普通のドライブベースが一番無難という意見にまとまる。
+ 光センサーの取り付け位置は結構重要。2〜3cmずらすだけで、マシンが生まれ変わる。
+↑妥協。。。結局適当につけてみた。





 ・前にある障害物にあたると反転して戻るプログラム

 制作者 祇園 安部
 

 #define hi 45
  task main()
  {
  SetSensor(SENSOR_1,SENSOR_LIGHT);
  SetSensor(SENSOR_2,SENSOR_TOUCH);
  SetSensor(SENSOR_3,SENSOR_TOUCH);
  while(true){
   if(SENSOR_1 < hi)    //黒線上にいるとき
    {
     OnFwd(OUT_A);     //左回転
     Off(OUT_C);
     }
     else          //黒線上にいないとき
      {
       Off(OUT_A);      //右回転
       OnFwd(OUT_C);
       }
  
  if((SENSOR_2 ==1) || (SENSOR_3 ==1))  //障害物にあたったとき
 
  {
  OnRev(OUT_A+OUT_C);    //後退
  Wait(100);
  OnFwd(OUT_A);       //左回転
  Wait(250);
  OnFwd(OUT_C);       //前進
  }
  }
  }      





  ・前にある障害物にあたると追い抜くプログラム
  
 
 制作者 祇園 高野


 #define hi 45
  task main()
  {
  SetSensor(SENSOR_1,SENSOR_LIGHT);
  SetSensor(SENSOR_2,SENSOR_TOUCH);
  SetSensor(SENSOR_3,SENSOR_TOUCH);
  while(true){
   if(SENSOR_1 < hi)         //黒線上にいるとき
   {
    OnFwd(OUT_A);      //左回転 
    Off(OUT_C);
    }
    else           //黒線上にいないとき 
    {
     Off(OUT_A);       //右回転
     OnFwd(OUT_C);
      }
  
   if((SENSOR_2 ==1) || (SENSOR_3 ==1))    //障害物にあたったとき
 
    { 
     OnRev(OUT_A+OUT_C);      //後退
     Wait(100);
     OnFwd(OUT_A);         //左回転
     Wait(150);
     OnFwd(OUT_C);         //前進
     Wait(150);
     Off(OUT_A);          //右回転
     Wait(150);
     OnFwd(OUT_A);         //前進
     Wait(150);
   Off(OUT_A);                    //右回転
     Wait(150);
     OnFwd(OUT_A);                 //前進
     Wait(150);
     }
     }
     }

 ・苦労した点  メンバーの一人が風邪を引いてしまいロボットを作ったりプログラムを作る時間がなかった。タッチセンサーをつけて反応させるようにするプログラミングが難しかった。特にifを使ったところが難しかった。

マシン作成でも何度もマシンを作り直したりして、最初の方はタッチセンサーが一つだったり、光センサーが二つだったりといろいろ試したが、バランスなどを考慮して結局は今の形に落ち着きました。

 ・今後の仮題
  
光センサーを一つしか使ってないので光をなかなか感知できないので動きがぎこちないし時間がかかるのでタッチセンサーを一つにして光りセンサーを二つにしてみる。

 ・担当者
  
  本体&プログラム&ホームページ 全員
  
 

コメントをどうぞ 
-苦労した点等を、もう少し具体的に記述してください。 -- [[ゆき(TA)]] &new{2006-06-30 (金) 14:49:23};

#comment

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