[[2019a/Member]]

目次
#contents

*課題について [#vedfc1f4]
課題2については,[[2019a/Mission2]]を参照してください.

*ロボットについて [#i45ac605]
#ref(image6.jpeg)
上の画像は,最初の授業で作った四輪のロボットの前方につけた,ピンポン玉をつかむアームである.モーターの回転方向を変えることによって,開閉できるようになっている.また,このアームと本体の間に光センサーをつけた.

*プログラムについて [#ye0cec95]
**定義について [#z2b9487a]
 #define rightKAITEN OnFwd(OUT_A);OnRev(OUT_C); //右旋回
 #define rightMAGARI OnFwd(OUT_A);Off(OUT_C); //右折
 #define leftKAITEN OnFwd(OUT_C);OnRev(OUT_A); //左旋回
 #define leftMAGARI OnFwd(OUT_C);Off(OUT_A); //左折
 #define middle 47 //閾値
**ライントレースのプログラム [#sa797568]
 sub followline() 
 {
     SetSensor(SENSOR_2,SENSOR_LIGHT);
     ClearTimer(0);
     while(FastTimer(0)<=30)     //左折,左旋回,右折,右回転の継続時間がが0.3秒以内のときループ
     {
         if(SENSOR_2>middle+5)    
         { 
             rightKAITEN
             ClearTimer(0);     //白のとき右旋回
         }
         else if(SENSOR_2>middle+3)    
         {
             rightMAGARI
             ClearTimer(0);     //白っぽいとき右折
         }
         else if(SENSOR_2>middle)   
         {
             OnFwd(OUT_AC);
             ClearTimer(0);     //中間のとき直進
         }
         else if(SENSOR_2>middle-3)    
         {
             leftMAGARI
             ClearTimer(0);          //黒っぽいとき左折
         }
         else    
         {
             leftKAITEN             //黒のとき左旋回
         }
     }
     Off(OUT_AC);
 }
**全体のプログラム [#sd97b0ee]
 task main()
 {
     followline();

 
     OnRev(OUT_C);
     Wait(30);
     Off(OUT_C);
     OnFwd(OUT_AC);
     Wait(50);
     Off(OUT_AC);          //曲がる前に戻って少し前進
  
     followline();
 
     followline();
 
     followline();
 
     OnRev(OUT_C);
     Wait(40);
     Off(OUT_C);
     OnFwd(OUT_AC);
     Wait(50);
     Off(OUT_AC);          //曲がる前に戻って少し前進
 
     followline();
 }

*まとめ [#kb2edbed]
今回の課題では,ライントレースのプログラムを作るのに,かなりの時間を使ってしまい,ロボットを凝って作ることができなかった.そのため,段階的にプログラムを試していく中で,G→Jの過程の中で,回り切れずに道を外れてしまった.次の課題もあり,迷惑はかけられないのでロボットを作り直せず,課題をクリアできなかったことは非常に悔しく思う.機会があれば,今回作りたかった,さらに小回りの利くロボットを作って挑戦してみたい.

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