課題2 ライントレース

目標

ロボットの製作過程

僕たちは次の流れに沿って作業を始めました。

  (1)ロボットの基礎となる土台作り
  (2)線に沿って走らせるための光センサー作り
  (3)他のロボとぶつかってもコースを外れないためのタッチセンサー作り

1. 四輪ロボ

ロボットの基礎となる土台作り

線に沿って走らせるための光センサー作り

最初に悩んだのは光センサーをどこにつけるか。
本体の近くにつけるより前のほうが少しの方向転換で曲がれそうだったので、それを意識しながら作ったのがこちら
デスクトップ デスクトップ

他のロボとぶつかってもコースを外れないためのタッチセンサー作り

タッチセンサーは前方の障害物に反応しなければならないので光センサーの前につけられるように出来るだけ前の方になるような形にしました。

デスクトップ

土台と二つのパーツをあわせ完成

デスクトップ
 

ところが•••

 

四輪のため曲がる時の摩擦が強くぎこちなくなってしまい小回りが出来なかったので残念ながらロボの形を変えることに。

 

2. 四輪から三輪ロボへ

 

スムーズに曲がるためには摩擦が少ないロボにしなければならないので土台である四輪を抵抗の少ない三輪に変更。

 

三輪用のタイヤ              三輪ロボ
デスクトップ デスクトップ

ついに完成

そして完成したロボの全体像がこちら

デスクトップ

三輪にしたのでコーナもスムーズに曲がれるようになり無駄な動きが少なくなった。

あひるっぽいコース

デスクトップ

プログラム

#define  cc 41
#define runtime 1000
int count_stop;
task main ()
{count_stop=0;
   SetSensor(SENSOR_1, SENSOR_LIGHT);
   SetSensor(SENSOR_3, SENSOR_LIGHT);
   SetSensor(SENSOR_2,SENSOR_TOUCH);
until(SENSOR_2==1);
OnFwd(OUT_A+OUT_C);
until(SENSOR_2==0);
OnFwd(OUT_A+OUT_C);
   ClearTimer(0);
#define  cc 41                         //cc(Color Change)を定義
int count_stop;            //count_stopを変数に指定
task main ()              
{ count_stop=0;
   SetSensor(SENSOR_1, SENSOR_LIGHT); //センサ−1を光センサーに
   SetSensor(SENSOR_3, SENSOR_LIGHT); //センサ−3を光センサーに
   SetSensor(SENSOR_2, SENSOR_TOUCH); //センサ−2をタッチセンサーに指定
until(SENSOR_2==1);          //Runを押しても動かず、
OnFwd(OUT_A+OUT_C);          //タッチセンサーを押すと
until(SENSOR_2==0);          //動きだすような
OnFwd(OUT_A+OUT_C);          //プログラム
   
   while (count_stop<=4)
   while (count_stop<=4)        //count_stopが4以下のとき繰り返す
   {
   if(SENSOR_2==0){
   if (SENSOR_1>cc)
   { if  (SENSOR_3>cc){
   OnFwd(OUT_A+OUT_C);
   } else { OnFwd(OUT_A);Off(OUT_C);
   if(SENSOR_2==0){          //センサ−2が触れてないとき
   if (SENSOR_1>cc)          //センサ−1が線上にあるとき 
   { if  (SENSOR_3>cc){        //センサ−3が線上にあるとき 
   OnFwd(OUT_A+OUT_C);         //直進
   } else { OnFwd(OUT_A);Off(OUT_C);  //センサ−3が線上にないとき右に曲がる
  }  
  }
  }
   else {
   else {               
  if (SENSOR_3>cc){
  OnFwd(OUT_C);Off(OUT_A);
  } else {
  Off(OUT_A+OUT_C);
  Wait(150);
  OnFwd(OUT_A+OUT_C);Wait(115);OnFwd(OUT_A);Off(OUT_C);Wait(11);
  count_stop++;
   }
   }
   }
   else {
   OnRev(OUT_A+OUT_C);Wait(50);
Off(OUT_A+OUT_C);Wait(150);
   }
}Off(OUT_A+OUT_C);
}Off(OUT_A+OUT_C); 
}

苦労した点

コメント

何かコメントがありましたらお願いします。 かくべきことはかけています。特に、ロボットの説明は良いです。
後は、プログラムやライントレースの原理を図や写真を用いて説明するともっと良くなると思います。 FI


添付ファイル: file横、光、マーク.jpg 338件 [詳細] file081201_1959~01.JPG 343件 [詳細] file081201_1829~01.JPG 357件 [詳細] file081201_1837~01.JPG 357件 [詳細] file081201_1834~01.JPG 331件 [詳細] file081201_1832~01.JPG 368件 [詳細] file081201_1830~01.JPG 203件 [詳細] file081201_1836~01.JPG 367件 [詳細] file081201_1811~01.JPG 362件 [詳細] file081127_1908~02.JPG 21件 [詳細] file081127_1908~01.JPG 330件 [詳細]

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