練習問題で作成したプログラム (14班)

メンバー: 片岡、長谷川、征矢、野村

version 01
Last modified: 2003年2月7日(金)


[必須] ロボットに鉛筆またはペンを取り付け、 A3 用紙の上に ★型を描かせなさい (練習問題 3.3)。

task main()
{
    repeat(5){
        OnFwd(OUT_A+OUT_C); Wait(150) ; 
        OnFwd(OUT_A) ;
	OnRev(OUT_C) ;
        Wait(135) ;          
       }

 Float(OUT_A+OUT_C) ;                 
}

工夫した点:
ペンをよりロボットの中心近くに取り付けられるように、組み立てました。

[必須] 机の上で動き回るロボットを作成しなさい。 ただし方向変換は机の端に来たときに行うこと (練習問題 4.2)。

task main()
{
    SetSensor(SENSOR_1, SENSOR_TOUCH) ;

    while(true)
    {
        OnFwd(OUT_A+OUT_C) ;
        until (SENSOR_1 == 1) ;
        OnRev(OUT_A) ; 
    Wait(100); 
        OnFwd(OUT_A+OUT_C) ;
    }
}

工夫した点:
ロボットが机から落ちそうになる前に、反応させるためにロボットの先端を長くして対応しました。

[必須] 前向きに光センサーを取り付けたロボットを作成し、 そのロボットがもっとも明るい方向 (例えば照らした懐中電灯の方向) を向くようにしなさい。 さらにそのロボットが、 懐中電灯の光を追いかけて進むようにプログラムを改良しなさい (練習問題 4.5.1, 4.5.2)

task main ()
{
    int light_time ;
    int Light_max=0 ;
    int time_max=0 ;

       SetSensor(SENSOR_1, SENSOR_LIGHT) ;
       
       while(true)
       {
             ClearTimer(0) ;
             OnFwd(OUT_A) ;
                 
             while ( Timer(0) <= 10) 
             { 
                   if (SENSOR_1 > Light_max)
                   {   
                          Light_max=SENSOR_1 ;
                          time_max=Timer(0) ;
                   }
             }

             Off(OUT_A+OUT_C) ;
             Wait(100) ;
             OnFwd(OUT_A+OUT_C) ;
             Wait(250) ;
             Float(OUT_A+OUT_C) ;
             Wait(100) ;
       } 
}  

工夫した点:

[必須] 明るいところでは、長調で、暗いところでは短調で、 曲を演奏するプログラムを作成しなさい (曲は何でもよい) (練習問題 5.2)。

task play_music1()
{
	#define Do  523
        #define Re  587
        #define Mi  659
        #define Fa  698
        #define Sol 784

   while (true)
                {
                    PlayTone(Mi,25); Wait(30);  
                    PlayTone(Re, 5); Wait(10);  
                    PlayTone(Do,15); Wait(20);  
                    PlayTone(Re,15); Wait(20);

                    PlayTone(Mi,15); Wait(20);
                    PlayTone(Mi,15); Wait(20);
                    PlayTone(Mi,35); Wait(40);

                    PlayTone(Re,15); Wait(20);
                    PlayTone(Re,15); Wait(20);
                    PlayTone(Re,35); Wait(40);

                    PlayTone(Mi,15); Wait(20);
                    PlayTone(Sol,15); Wait(20);
                    PlayTone(Sol,35); Wait(40);

                    PlayTone(Mi,25); Wait(30);
                    PlayTone(Re, 5); Wait(10);
                    PlayTone(Do,15); Wait(20);
                    PlayTone(Re,15); Wait(20);

                    PlayTone(Mi,15); Wait(20);
                    PlayTone(Mi,15); Wait(20);
                    PlayTone(Mi,35); Wait(40);

                    PlayTone(Re,15); Wait(20);
                    PlayTone(Re,15); Wait(20);
                    PlayTone(Mi,25); Wait(30);
                    PlayTone(Re, 5); Wait(10);

                    PlayTone(Do,55); Wait(60);
                    Wait(20);
                }
}





 task play_music2()
{
	#define Do  262	
        #define Re  294	  	
        #define Mi  330	          	
        #define Fa  349
        #define Sol 392
        

   while (true)
                {
                    PlayTone(Mi,25); Wait(30);  
                    PlayTone(Re, 5); Wait(10);  
                    PlayTone(Do,15); Wait(20);  
                    PlayTone(Re,15); Wait(20);  

                    PlayTone(Mi,15); Wait(20);
                    PlayTone(Mi,15); Wait(20);
                    PlayTone(Mi,35); Wait(40);

                    PlayTone(Re,15); Wait(20);
                    PlayTone(Re,15); Wait(20);
                    PlayTone(Re,35); Wait(40);

                    PlayTone(Mi,15); Wait(20);
                    PlayTone(Sol,15); Wait(20);
                    PlayTone(Sol,35); Wait(40);

                    PlayTone(Mi,25); Wait(30);
                    PlayTone(Re, 5); Wait(10);
                    PlayTone(Do,15); Wait(20);
                    PlayTone(Re,15); Wait(20);

                    PlayTone(Mi,15); Wait(20);
                    PlayTone(Mi,15); Wait(20);
                    PlayTone(Mi,35); Wait(40);

                    PlayTone(Re,15); Wait(20);
                    PlayTone(Re,15); Wait(20);
                    PlayTone(Mi,25); Wait(30);
                    PlayTone(Re, 5); Wait(10);

                    PlayTone(Do,55); Wait(60);
                    Wait(20);
                }
}


task main()
{                      	
	SetSensor(SENSOR_1, SENSOR_LIGHT); 
	OnFwd(OUT_A+OUT_C); 

	if(SENSOE_1 < 45){
	stop play_music2;
	start play_music1; 

	}else{
	stop play_music1; 
	start play_music2; 

}

工夫した点:
最初、長調と短調の意味がわからず、小学校のころまじめに音楽に取り組んでいればよかったと後悔してしまった。

[自由課題] 黒い線に沿って速く走るロボットを作成せよ (例題の改良)。

task main ()
{
    SetSensor(SENSOR_1, SENSOR_LIGHT);
    ClearTimer(0);                   

    while ( true )
   {  
        if (SENSOR_1 < 45) 
        {   
            OnFwd(OUT_A);
            Off(OUT_C);
        } else {                     
            OnFwd(OUT_C);
            Off(OUT_A);
        }
    }
}

工夫した点:
速く進ませることがなかなかできなかった。


Yasutoshi Nomura