*目次 [#vb047a36]
#contents

*はじめに [#gca5125f]
今回の課題の内容は、今までの課題で用いたライントレースなどを用い、&br;
課題2で使用したフィールド上で紙コップを移動させるというものである。&br;
今回はロボット1機を用いる。

*ロボット本体の説明 [#y97e9f0f]
#ref(059f2dc3-ba55-48d5-8b96-9e404b5edc0a.jpg)
基本的な形は、課題2のままである。&br;
#ref(c9bfa4db-ae72-4ce1-80b8-beae7e31d275.jpg)
前方にクワガタのような形にアームをつけ、右肩に光センサーを装備した。&br;
超音波センサーで紙コップを感知し、アームでつかみ移動させる。
*プログラミングの説明 [#x55c6767]
 #define BLACK 35
 #define strait(p,t) OnFwd(OUT_AB,p);Wait(t);Off(OUT_AB);
 #define roal RotateMotor(OUT_A,-60,360);RotateMotor(OUT_B,40,300);Off(OUT_AB); 
 #define turn_migi OnFwd(OUT_B,40);OnRev(OUT_A,20);
 #define turn_hidari OnFwd(OUT_A,40);OnRev(OUT_B,20);
 #define blecfast Off(OUT_AB);PlaySound(SOUND_UP);Wait(1000);
 
 sub trace() 
 {
 SetSensorLight(S4);
   int nOnline=0;
   int k=0;

      while(k==0)
 {
         while (nOnline < 200)  
  {
            if(SENSOR_4 < BLACK)
   {
               turn_migi;
               nOnline++;
   }
            else if (SENSOR_4 < BLACK+15)
   {
               turn_hidari;
               nOnline=0;
   }
            Wait(1);
  }
         
         k++;
             k++;
         nOnline=0;
 }
 }

 sub shaja()
 {
 roal;
 strait(40,500);
  trace();
   OnFwd(OUT_A,40);
   OnFwd(OUT_B,20);
   Wait(350);
  trace();
 }

 task main()
 {
 shaja(); 
 }

 #define BLACK  34
 #define WHITE 70
 #define LEFT OnFwd(OUT_B,60);OnRev(OUT_C,36);
 #define RIGHT OnFwd(OUT_C,60);OnRev(OUT_B,36);
 #define nMAX 230
 #define short_break Off(OUT_BC);Wait(1000);
 #define STEP 1
 #define GO OnFwd(OUT_BC,40);Wait(400);Off(OUT_BC);
 #define GO2 OnFwd(OUT_BC,40);Wait(500);
 #define LEFT2 OnFwd(OUT_B,60);OnRev(OUT_C,20);Wait(500); 
  sub normal ()
 
 sub normal ()
 { 
  SetSensorLight(S2);
  int nOnline=0;
  int k=0;

  while(k==0){
   while(nOnline < nMAX){
   if (SENSOR_2<BLACK) {
     RIGHT;
     nOnline++;
    } else 
   if (SENSOR_2<WHITE) {
     LEFT;
     nOnline=0;
   }
   Wait(STEP);
  }
  short_break;
  k++;
  nOnline=0;
   }
  
 }
  }

 sub normal2()
 { 
  SetSensorLight(S2);
  int nOnline=0;
  int k=0;

  while(k==0){
   while(nOnline < nMAX){
   if (SENSOR_2<BLACK) {
     LEFT;
   nOnline++;
    } else 
   if (SENSOR_2<WHITE) {
     RIGHT;
     nOnline=0;
   }
   Wait(STEP);
  }
  short_break;
  k++;
  nOnline=0;
   }
  
 }
  }


 task main()
 {
  normal2();
  LEFT2;
   normal();
  LEFT2;
  normal();
  GO2;
 }

*感想 [#bdf73b90]
最後の課題ということもあり、とても歯ごたえのあるものだった。&br;
プログラミングは同じでも、ロボットの調子によって違う動きをしたりすることがあり、&br;
ロボットの正確性に疑問を覚えた。&br;
しかし、ほかの班のロボットを見ると、それぞれユニークな形をしており、&br;
ロボットの可能性や、面白さを感じた。

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