課題3 中央線のノート

プログラム

*まだ音を鳴らすプログラムを組み込んでません…;

#define turn_right OnFwd(OUT_A);OnRev(OUT_C); //左右回転、直進の定義 
#define turn_left OnRev(OUT_A);OnFwd(OUT_C);
#define Stop_turning Off(OUT_A+OUT_C);
#define TURN_TIME 200
 #definego_straightOnFwd(OUT_A+OUT_C);Wait(50);Off(OUT_A+OUT_C);Wait(50);

#define Do 523 //音程の定義
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
#define Ra 880

task kirakira*() //キラキラ星
{
   while (true)
   {
       PlayTone(Do,30); Wait(40);
       PlayTone(Do,30); Wait(40);
       PlayTone(So,30); Wait(40);
       PlayTone(So,30); Wait(40);
       PlayTone(Ra,30); Wait(40);
       PlayTone(Ra,30); Wait(40);
       PlayTone(So,70); Wait(80);
       PlayTone(Fa,30); Wait(40);
       PlayTone(Fa,30); Wait(40);
       PlayTone(Mi,30); Wait(40);
       PlayTone(Mi,30); Wait(40);
       PlayTone(Re,30); Wait(40);
       PlayTone(Re,30); Wait(40);
       PlayTone(Do,70); Wait(80);        
   }
}
 
task kerokero() //カエルの歌
{
   while (true)
   {
       PlayTone(Do,30); Wait(40);
       PlayTone(Re,30); Wait(40);
       PlayTone(Mi,30); Wait(40);
       PlayTone(Fa,30); Wait(40);
       PlayTone(Mi,30); Wait(40);
       PlayTone(Re,30); Wait(40);
       PlayTone(Do,70); Wait(80);
       PlayTone(Mi,30); Wait(40);
       PlayTone(Fa,30); Wait(40);
       PlayTone(So,30); Wait(40);
       PlayTone(Ra,30); Wait(40);
       PlayTone(So,30); Wait(40);
       PlayTone(Fa,30); Wait(40);
       PlayTone(Mi,40); Wait(80);                
       PlayTone(Do,60); Wait(70);
       PlayTone(Do,60); Wait(70);
       PlayTone(Do,60); Wait(70);
       PlayTone(Do,60); Wait(70);                
       PlayTone(Do,15); Wait(20);
       PlayTone(Do,15); Wait(20);
       PlayTone(Re,15); Wait(20);
       PlayTone(Re,15); Wait(20);
       PlayTone(Mi,15); Wait(20);
       PlayTone(Mi,15); Wait(20);
       PlayTone(Fa,15); Wait(20);
       PlayTone(Fa,15); Wait(20);
       PlayTone(Mi,30); Wait(40);
       PlayTone(Re,30); Wait(40);
       PlayTone(Do,40); Wait(50);

   }
} 
 
task main() //光を追うプログラム
{
   SetSensor(SENSOR_2,SENSOR_LIGHT);
   int light_max=30,time_max=0;
   while(true){ 
  
OnFwd(OUT_C);OnRev(OUT_A);Wait(100);Off(OUT_A+OUT_C);Wait(10);
   turn_right;
   ClearTimer(0);
   while(FastTimer(0)<TURN_TIME){
      if(SENSOR_2>light_max){
          light_max=SENSOR_2;
          time_max=FastTimer(0);
          }
     }
     Stop_turning;Wait(100);
     turn_left;     
     Wait(TURN_TIME-time_max);
     Stop_turning;
     go_straight;      
     light_max=30;
     time_max=0;
     }
}
#define turn_right OnFwd(OUT_A);OnRev(OUT_C); 
#define turn_left OnRev(OUT_A);OnFwd(OUT_C);
#define Stop_turning Off(OUT_A+OUT_C);
#define go_straight OnFwd(OUT_A+OUT_C);Wait(30);
#define torch 40

#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
#define Ra 880

task kirakira()
{
   while (true)
   {
       PlayTone(Do,30); Wait(40);
       PlayTone(Do,30); Wait(40);
       PlayTone(So,30); Wait(40);
       PlayTone(So,30); Wait(40);
       PlayTone(Ra,30); Wait(40);
       PlayTone(Ra,30); Wait(40);
       PlayTone(So,70); Wait(80);
       PlayTone(Fa,30); Wait(40);
       PlayTone(Fa,30); Wait(40);
       PlayTone(Mi,30); Wait(40);
       PlayTone(Mi,30); Wait(40);
       PlayTone(Re,30); Wait(40);
       PlayTone(Re,30); Wait(40);
       PlayTone(Do,70); Wait(80);        
   }
}

task kerokero()
{
   while (true)
   {
       PlayTone(Do,30); Wait(40);
       PlayTone(Re,30); Wait(40);
       PlayTone(Mi,30); Wait(40);
       PlayTone(Fa,30); Wait(40);
       PlayTone(Mi,30); Wait(40);
       PlayTone(Re,30); Wait(40);
       PlayTone(Do,70); Wait(80);
       PlayTone(Mi,30); Wait(40);
       PlayTone(Fa,30); Wait(40);
       PlayTone(So,30); Wait(40);
       PlayTone(Ra,30); Wait(40);
       PlayTone(So,30); Wait(40);
       PlayTone(Fa,30); Wait(40);
       PlayTone(Mi,40); Wait(80);                
       PlayTone(Do,60); Wait(70);
       PlayTone(Do,60); Wait(70);
       PlayTone(Do,60); Wait(70);
       PlayTone(Do,60); Wait(70);                
       PlayTone(Do,15); Wait(20);
       PlayTone(Do,15); Wait(20);
       PlayTone(Re,15); Wait(20);
       PlayTone(Re,15); Wait(20);
       PlayTone(Mi,15); Wait(20);
       PlayTone(Mi,15); Wait(20);
       PlayTone(Fa,15); Wait(20);
       PlayTone(Fa,15); Wait(20);
       PlayTone(Mi,30); Wait(40);
       PlayTone(Re,30); Wait(40);
       PlayTone(Do,40); Wait(50);

   }
} 

task main()
{
   SetSensor(SENSOR_1,SENSOR_LIGHT);
   SetSensor(SENSOR_3,SENSOR_LIGHT);
   while(true){ 

     if((SENSOR_1 > torch) && (SENSOR_3 <= torch) && (SENSOR_1 > SENSOR_3)){

               turn_left;

               }

     if((SENSOR_1 <= torch) && (SENSOR_3 > torch) && (SENSOR_1 < SENSOR_3)){
                
               turn_right;
                
               }

     if((SENSOR_1 >= torch) && (SENSOR_3 >= torch)){
                                
               go_straight;
                
               }
  
     if((SENSOR_1 < torch) && (SENSOR_3 < torch)){

               turn_right;

               }
}

センサーを二つに変更して音を鳴らすプログラムを組み込みました。

#define turn_right OnFwd(OUT_A);OnRev(OUT_C);
#define turn_left OnRev(OUT_A);OnFwd(OUT_C);
#define Stop_turning Off(OUT_A+OUT_C);
#define go_straight OnFwd(OUT_A+OUT_C);Wait(30);
#define torch 40
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
#define Ra 880

task music()
{
   while (true)
   {
   if ((SENSOR_1 >= torch) || (SENSOR_3 >= torch)){
       PlayTone(Do,30); Wait(40);
       PlayTone(Do,30); Wait(40);
       PlayTone(So,30); Wait(40);
       PlayTone(So,30); Wait(40);
       PlayTone(Ra,30); Wait(40);
       PlayTone(Ra,30); Wait(40);
       PlayTone(So,70); Wait(80);
       PlayTone(Fa,30); Wait(40);
       PlayTone(Fa,30); Wait(40);
       PlayTone(Mi,30); Wait(40);
       PlayTone(Mi,30); Wait(40);
       PlayTone(Re,30); Wait(40);
       PlayTone(Re,30); Wait(40);
       PlayTone(Do,70); Wait(80);
   }
   if ((SENSOR_1 < torch) && (SENSOR_3 < torch)){
       PlayTone(Do,30); Wait(40);
       PlayTone(Re,30); Wait(40);
       PlayTone(Mi,30); Wait(40);
       PlayTone(Fa,30); Wait(40);
       PlayTone(Mi,30); Wait(40);
       PlayTone(Re,30); Wait(40);
       PlayTone(Do,70); Wait(80);
       PlayTone(Mi,30); Wait(40);
       PlayTone(Fa,30); Wait(40);
       PlayTone(So,30); Wait(40);
       PlayTone(Ra,30); Wait(40);
       PlayTone(So,30); Wait(40);
       PlayTone(Fa,30); Wait(40);
       PlayTone(Mi,40); Wait(80);
       PlayTone(Do,60); Wait(70);
       PlayTone(Do,60); Wait(70);
       PlayTone(Do,60); Wait(70);
       PlayTone(Do,60); Wait(70);
       PlayTone(Do,15); Wait(20);
       PlayTone(Do,15); Wait(20);
       PlayTone(Re,15); Wait(20);
       PlayTone(Re,15); Wait(20);
       PlayTone(Mi,15); Wait(20);
       PlayTone(Mi,15); Wait(20);
       PlayTone(Fa,15); Wait(20);
       PlayTone(Fa,15); Wait(20);
       PlayTone(Mi,30); Wait(40);
       PlayTone(Re,30); Wait(40);
       PlayTone(Do,40); Wait(50);
   }
}

task main()
{
   SetSensor(SENSOR_1,SENSOR_LIGHT);
   SetSensor(SENSOR_3,SENSOR_LIGHT);
   start music;
   while(true){
     if((SENSOR_1 > torch) && (SENSOR_3 <= torch) && (SENSOR_1 > SENSOR_3)){
               turn_left;
               }
     if((SENSOR_1 <= torch) && (SENSOR_3 > torch) && (SENSOR_1 < SENSOR_3)){
               turn_right;
               }
     if((SENSOR_1 >= torch) && (SENSOR_3 >= torch)){
               go_straight;
               }
     if((SENSOR_1 < torch) && (SENSOR_3 < torch)){
               turn_right;
               }
}

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-07-14 (金) 16:19:21