目次
#contents
*ライントレースするロボット [#b256a8af]
#ref(2006a/B3/課題2左/Image0026.jpg,100%)
*メンバー [#o8acc2ee]
竹原 プログラム
#br
荒起 寝てた(後にHP編集等)
#br
村松  ホームページ

*特徴 [#o6a382dd]
●センサーを二つ使い、ライン上を確実にトレースする

右のセンサーがライン上にのったとき左に曲がり、同様に左のセンサーがライン上にのったとき右に曲がり、両方のセンサーがライン上にのっていないときは直進するというもの。センサーの数が2つあることによって、1つのものよりも速い速度でライントレースをすることが可能。
#br
●バンパーで障害物を察知

バンパーを大きくすることによって、範囲が広がり確実に障害物に反応することが可能。
#br
●障害物にあたると反転する

ライントレース中に障害物にあたると少々後退した後、180°回転してあたる前とは逆向きにライントレースを開始する。


*苦労した点  [#u83cd59d]
●センサーが二つなのでプログラムを組むのが大変だった。
   if(SENSOR_1>40){OnFwd(OUT_C);OnRev(OUT_A);}
   else{OnFwd(OUT_A+OUT_C);}
   
   if(SENSOR_3>40){OnFwd(OUT_A);OnRev(OUT_C);}
   else{OnFwd(OUT_A+OUT_C);}
プログラムを作った当初はこのようなプログラムだったのだが、例えば、センサー1がライン上にあるときモーターAを逆回転し曲がるはずなのだが、センサー3が反応しているしていないに関わらずモーターAを正回転させているので、打ち消し合ってしまいうまくいかなかった。当然逆にモーターCについても言える。そこで、センサ−1のプログラムのelse内からはOUT_Cを、センサー3の方からはOUT_Aを削除することによって解決した。
#br
●バンパーで障害物を避けなければいけないことを知らなかったので、急遽作らなければならなかった。

短時間で本体、プログラム共に作り直さなければならなかった。
#br
●ワールドカップ、バイト、テスト等で体がボロボロだった。(ソウマ)

不可抗力です(笑)

*プログラム [#wbe3288c]
 task main()
 {
  SetSensor(SENSOR_1,SENSOR_LIGHT);  //センサーを定義
  SetSensor(SENSOR_2,SENSOR_TOUCH);
  SetSensor(SENSOR_3,SENSOR_LIGHT);
  
  while(true)
  {
   if(SENSOR_1>40){OnFwd(OUT_C);OnRev(OUT_A);}   //通常時直進 ラインにあたると進行方向をかえる
   else{OnFwd(OUT_A+OUT_C);}
   else{OnFwd(OUT_A);}
   
   if(SENSOR_3>40){OnFwd(OUT_A);OnRev(OUT_C);}   //通常時直進 ラインにあたると進行方向をかえる
   else{OnFwd(OUT_C+OUT_A);}
   else{OnFwd(OUT_C);}
   
   until(SENSOR_2 == 1);              //タッチセンサーにあたると反転する
   OnRev(OUT_A+OUT_C);Wait(100);
   OnRev(OUT_A);OnFwd(OUT_C);Wait(195);
   
   }
 }
*コメント [#c97142f8]
一言お願いします。
-特長、苦労した点について、もう少し具体的に書くようにしましょう。どのように確実にトレースできるようにしたのか、どんな点が大変だったのか、等を記述すると、読み応えのあるレポートになります。 -- [[ゆき(TA)]] &new{2006-07-07 (金) 15:08:34};

#comment



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