[[2006a/B2]]
#contents
*マシンの構造 [#u35d6d57]
**ロボットの外形 [#xf22438a]
 今回の課題のロボットは、いつにないほどシンプルです。。光センサーの数は、二つだとたまに変な動きをするのでひとつに。

&ref(oto1.jpg);   ←左後ろからみたマシン

&ref(oto2.jpg);   ←右前からのマシン

 今までは小さい方のタイヤが前輪、大きいほうが後輪だったが、今回は逆にしました。

&ref(oto3.jpg);
&ref(oto4.jpg);

 ↑↑光センサーは、マシンのフロント中央部分に設置しました。

*曲は?? [#j181cff4]
 自分は音楽経験がないからどうなることになるかと思いきや、たかがピアノ経験者!!ということで曲はまかせます♪
**曲のプログラム  [#yea1dd40]
 「チューリップ」
 
 製作日:// 06-06-31
 製作者:// たか
 
 #define Do 523
 #define Re 587
 #define Mi 659
 #define Fa 698
 #define So 784
 #define Ra 880
 #define Si 988 
 
 task play_music()
 {
   while(true)
  {
    PlayTone(Do,33);Wait(33);
   PlayTone(Re,33);Wait(33);
   PlayTone(Mi,40);Wait(70);  
 
   PlayTone(Do,33);Wait(33);
   PlayTone(Re,33);Wait(33);
   PlayTone(Mi,40);Wait(70);
   
   PlayTone(So,30);Wait(30);
   PlayTone(Mi,30);Wait(30);
   PlayTone(Re,30);Wait(30);
   PlayTone(Do,30);Wait(30);
   PlayTone(Re,30);Wait(30);
   PlayTone(Mi,30);Wait(30);
   PlayTone(Re,40);Wait(70);
   
   PlayTone(Do,33);Wait(33);
   PlayTone(Re,33);Wait(33);
   PlayTone(Mi,40);Wait(70);
   
   PlayTone(Do,33);Wait(33);
   PlayTone(Re,33);Wait(33);
   PlayTone(Mi,40);Wait(70);
   
   PlayTone(So,30);Wait(30);
   PlayTone(Mi,30);Wait(30);
   PlayTone(Re,30);Wait(30);
   PlayTone(Do,30);Wait(30);
   PlayTone(Re,30);Wait(30);
   PlayTone(Mi,30);Wait(30);
   PlayTone(Do,40);Wait(70);
   
   PlayTone(So,30);Wait(35);
   PlayTone(So,30);Wait(35);
   PlayTone(Mi,30);Wait(35);
   PlayTone(So,30);Wait(35);
   PlayTone(Ra,30);Wait(35);
   PlayTone(Ra,30);Wait(35);
   PlayTone(So,30);Wait(70);
   
   PlayTone(Mi,30);Wait(35);
   PlayTone(Mi,30);Wait(35);
   PlayTone(Re,30);Wait(35);
   PlayTone(Re,30);Wait(35);
   PlayTone(Do,30);Wait(35);
   Wait(20);
  }
 }

*本番プログラム共 [#y06ad2f5]
**『チューリップ』を演奏しながら回転して光をさがし回るプログラムです☆★ [#j9957949]


 製作日:// 06-07-03
 製作者:// Blue
 
 #define Do 523
 #define Re 587
 #define Mi 659
 #define Fa 698
 #define So 784
 #define Ra 880
 #define Si 988
 #define Do 523   //ドと定義
 #define Re 587   //レと定義
 #define Mi 659   //ミと定義
 #define Fa 698   //ファと定義
 #define So 784   //ソと定義
 #define Ra 880   //ラと定義
 #define Si 988   //シと定義
 
 task play_music()
 {
  while(true)
 {
   PlayTone(Do,33);Wait(33);
   PlayTone(Re,33);Wait(33);
   PlayTone(Mi,40);Wait(70);
  
   PlayTone(Do,33);Wait(33);
   PlayTone(Re,33);Wait(33);
   PlayTone(Mi,40);Wait(70);
   
   PlayTone(So,30);Wait(30);
   PlayTone(Mi,30);Wait(30);
   PlayTone(Re,30);Wait(30);
   PlayTone(Do,30);Wait(30);
   PlayTone(Re,30);Wait(30);
   PlayTone(Mi,30);Wait(30);
   PlayTone(Re,40);Wait(70);
   
   PlayTone(Do,33);Wait(33);
   PlayTone(Re,33);Wait(33);
   PlayTone(Mi,40);Wait(70);
   
   PlayTone(Do,33);Wait(33);
   PlayTone(Re,33);Wait(33);
   PlayTone(Mi,40);Wait(70);
   
   PlayTone(So,30);Wait(30);
   PlayTone(Mi,30);Wait(30);
   PlayTone(Re,30);Wait(30);
   PlayTone(Do,30);Wait(30);
   PlayTone(Re,30);Wait(30);
   PlayTone(Mi,30);Wait(30);
   PlayTone(Do,40);Wait(70);
   
   PlayTone(So,30);Wait(35);
   PlayTone(So,30);Wait(35);
   PlayTone(Mi,30);Wait(35);
   PlayTone(So,30);Wait(35);
   PlayTone(Ra,30);Wait(35);
   PlayTone(Ra,30);Wait(35);
   PlayTone(So,30);Wait(70);
   
   PlayTone(Mi,30);Wait(35);
   PlayTone(Mi,30);Wait(35);
   PlayTone(Re,30);Wait(35);
   PlayTone(Re,30);Wait(35);
   PlayTone(Do,30);Wait(35);
   }
  }  
 
 int Light=0;
 int turn_time=90;
 
  
 task main()
 {
  SetSensor(SENSOR_1,SENSOR_LIGHT);
  SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1が光センサーと宣言
  ClearTimer(0);
  
 
 
   while(Timer(0)<=turn_time)
     {
        if(SENSOR_1>Light)
          {
              Light=SENSOR_1;
          }
 
       OnFwd(OUT_A);
       OnRev(OUT_C);
     }
 
   OnFwd(OUT_A);
   OnRev(OUT_C);
   start play_music;
   until(SENSOR_1>=Light);
 
  while(true)
     {
        if(SENSOR_1<Light)
          {
              OnFwd(OUT_A);
              OnRev(OUT_C);
              until(SENSOR_1>=Light);
          }
       else
          {
              OnFwd(OUT_A+OUT_C);
              stop play_music;
              until(SENSOR_1<Light);
          }
     }
 } 
 

** [#ae597f5d]





 #define Do 523
 #define Re 587
 #define Mi 659
 #define Fa 698
 #define So 784
 #define Ra 880
 #define Si 988
 
 task play_music()
 {
   while(true)
  {
   PlayTone(Do,33);Wait(33);
   PlayTone(Re,33);Wait(33);
   PlayTone(Mi,40);Wait(70); 
 
   PlayTone(Do,33);Wait(33);
   PlayTone(Re,33);Wait(33);
   PlayTone(Mi,40);Wait(70);
   
   PlayTone(So,30);Wait(30);
   PlayTone(Mi,30);Wait(30);
   PlayTone(Re,30);Wait(30);
   PlayTone(Do,30);Wait(30);
   PlayTone(Re,30);Wait(30);
   PlayTone(Mi,30);Wait(30);
   PlayTone(Re,40);Wait(70);
   
   PlayTone(Do,33);Wait(33);
   PlayTone(Re,33);Wait(33);
   PlayTone(Mi,40);Wait(70);
   
   PlayTone(Do,33);Wait(33);
   PlayTone(Re,33);Wait(33);
   PlayTone(Mi,40);Wait(70);
   
   PlayTone(So,30);Wait(30);
   PlayTone(Mi,30);Wait(30);
   PlayTone(Re,30);Wait(30);
   PlayTone(Do,30);Wait(30);
   PlayTone(Re,30);Wait(30);
   PlayTone(Mi,30);Wait(30);
   PlayTone(Do,40);Wait(70);
   
   PlayTone(So,30);Wait(35);
   PlayTone(So,30);Wait(35);
   PlayTone(Mi,30);Wait(35);
   PlayTone(So,30);Wait(35);
   PlayTone(Ra,30);Wait(35);
   PlayTone(Ra,30);Wait(35);
   PlayTone(So,30);Wait(70);
  
   PlayTone(Mi,30);Wait(35);
   PlayTone(Mi,30);Wait(35);
   PlayTone(Re,30);Wait(35);
   PlayTone(Re,30);Wait(35);
   PlayTone(Do,30);Wait(35);
   Wait(20);
  }
 }  
 
 #define turn_left OnFwd(OUT_C);OnRev(OUT_A);
 #define turn_right OnFwd(OUT_A);OnRev(OUT_C);
 #define turn_stop Float(OUT_A+OUT_C);
 #define TURN_TIME 500
 task main ()
 {   
 	SetSensor(SENSOR_1,SENSOR_LIGHT); 
 	int light_max=0,time_max=0; 
 	turn_right;
 	start play_music;
 	ClearTimer(0);
 
 	while(FastTimer(0) < TURN_TIME)
  {
 	   if(SENSOR_1 > light_max)
     {
  		    light_max=SENSOR_1;
 		    time_max=FastTimer(0);
 		 }
 	 }
 		turn_stop;
 		Wait(50);
 		turn_left;
 		Wait(TURN_TIME-time_max);
 		turn_stop;
 		stop play_music;
 		while(true)
    {
       if(SENSOR_1<=light_max)
       {
            OnFwd(OUT_A+OUT_C);
       }
       if(SENSOR_1>80)
       {
            Off(OUT_A+OUT_C);
        } 
       if(SENSOR_1<40)
       {
            Wait(100);
            int light_max=0,time_max=0;
            turn_right;
            start play_music;
            ClearTimer(0);
            while(FastTimer(0) < TURN_TIME)
            {
               if(SENSOR_1 > light_max)
               {
                  light_max=SENSOR_1;
                  time_max=FastTimer(0);
               }
            }
             turn_stop;
             Wait(50);
             turn_left;
             Wait(TURN_TIME-time_max);
             turn_stop;
             stop play_music;
            }
   }
 }


*考察 [#s9196385]
**工夫した点 [#ea12336a]
 今回の課題は回転動作が多いので、前輪のタイヤを大きいタイヤにした。それによって、スムーズな回転が実現!
 
 曲を送り込むプログラム作成は、コピー/ペーストが使いやすかったので、自分のwindowsのパソコンで打ち込んだ。
**苦労した点 [#y32f1d21]
-光を探すプログラムが全くわからなかった。
 ホームページや、プログラミングに強い人に聞きまくって、なんとかかんとか完成。
-光を感知したはずなのに、光を追いかけない
 光センサーの値をいじって、なんとか追いかけるようになったが、まだまだ十分とはいえない。
**感想 [#dcf7ffe2]
 またも時間がなかった。。徹夜で課題二つをこなしたから、結果的にはよかったが、健康面にやや障害が...泣

 個人的な事情だが、レポートなど課題をこなすのに精一杯でホームページ制作がかなり先延ばしになってしまった。
 先生、TAの方々、ご迷惑をおかけしました↓↓


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