[[2008a/MemberOnly/進行状況A]]

*目次 [#oc70f701]
#contents

*課題 [#v2854fdb]
ライントレースロボット~
黒い線の上を通るロボットの作成 

*ロボットの説明 [#r34040d4]

&ref(080619_1759~01[1].JPG);
上から見たロボットの全体図です。
&ref(080619_1800~01[1].JPG);
前から見た図です。センサーが線をなぞるようになっています。
&ref(080619_1800~02[1].JPG);
後ろから見た図です。曲りやすいように三輪にしました。
*コースについて  [#p42a5df3]


&ref(080619_1801~01[1].JPG);
交差点が二つのコースにしました。多少コーナーが急になっています。
*プログラムについて [#f6246dda]
プログラム
 #define THRESHOLD 40 
 #define THRESHOLD 40 // 閾値
 #define RUN_TIME 1200   //  3周の時間 (接触なしの場合)  
 task main()
 {
 SetSensor(SENSOR_2,SENSOR_TOUCH);
 SetSensor(SENSOR_1,SENSOR_LIGHT);
 SetSensor(SENSOR_3,SENSOR_LIGHT);
 
 ClearTimer ( 0 ) ;
 ClearTimer ( 0 ) ;//タイマースタート
 
 while(Timer (0)  <=  RUN_TIME)
 { if (SENSOR_2==1){OnRev(OUT_A+OUT_C);Wait(40);}
 { if (SENSOR_2==1){OnRev(OUT_A+OUT_C);Wait(40);}//前方のロボットにぶつかったら、4秒下がる。
    else{ if (SENSOR_1<THRESHOLD){if (SENSOR_3< THRESHOLD){OnFwd(OUT_A+OUT_C);}
 else {OnFwd(OUT_C);OnRev(OUT_A);}}
          else {if (SENSOR_3< THRESHOLD){OnFwd(OUT_A);OnRev(OUT_C);}
                else{Off(OUT_A+OUT_C);Wait(50);OnFwd(OUT_A+OUT_C);Wait(70);}
//センサー1と3が線の上にあるなら前進する。
 else {OnFwd(OUT_C);OnRev(OUT_A);}}//センサー1だけ線の上にある時、左に曲がる。
          else {if (SENSOR_3< THRESHOLD){OnFwd(OUT_A);OnRev(OUT_C);}//センサー3だけ線の上にある時、右に曲がる。
                else{Off(OUT_A+OUT_C);Wait(50);OnFwd(OUT_A+OUT_C);Wait(70);}//両方のセンサーが線の上にない時、5秒止まって7秒進む。
                }
                }
                }
   Off(OUT_A+OUT_C);
   Off(OUT_A+OUT_C);//3周したら止まる。
         }


*問題点  [#rcdf6b33]
コーナーでうまく回りきれなくて、線を出てしまったりした。
*解決策 [#daf848e7]
三輪にすることで、コーナーを回りやすくした。
*感想 [#d76af606]
前回に比べて、納得できるロボットができた。
プログラムもうまく作れたと思う。
時間があったら、音楽も入れてみたかった。


*コメントをどうぞ [#dd55719f]

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS