[[2004/C7/メンバー紹介]]

み〜た〜なぁ





 #define GREEN_LINE 42 //緑の線は42以下 
 #define BLACK_LINE 37 //黒の線は37以下
 #define WHITE 44 //白の紙は44以上
 int back_time; //下がる時間の関数定義
 sub turn1()
{
 OnFwd(OUT_A); OnRev(OUT_C); Wait(125);
 Off(OUT_A+OUT_C);
} //Uターンの定義
 sub turn_left()
 {
 OnFwd(OUT_C);
 OnRev(OUT_A);
 Wait(65);
 Off(OUT_A+OUT_C);
 } //左回り
 sub turn_right()
 {
 OnFwd(OUT_A);
 OnRev(OUT_C);
 Wait(65);
 Off(OUT_A+OUT_C);
 } //右回り
 
task main()
{
 SetSensor(SENSOR_3,SENSOR_TOUCH);
 SetSensor(SENSOR_2,SENSOR_LIGHT);
 SetSensor(SENSOR_1,SENSOR_LIGHT);
 back_time=500;
 
 
 OnFwd(OUT_A+OUT_C);
 Wait(40); //前から落下
 turn_left(); //すかさず左
 OnFwd(OUT_A+OUT_C);
 until(SENSOR_1<GREEN_LINE); //緑線まで前進
 OnFwd(OUT_A);
 OnRev(OUT_C);
 Wait(10);
 while(SENSOR_1>BLACK_LINE){
  if(BLACK_LINE<SENSOR_1<GREEN_LINE){
  OnFwd(OUT_A);
  OnRev(OUT_C);
  }
  if(SENSOR_1>WHITE){
  OnFwd(OUT_C);
  OnRev(OUT_A);
  }
 }
 
 Off(OUT_A+OUT_C);

 OnFwd(OUT_A);
 OnRev(OUT_C);
 Wait(10);

 while((SENSOR_1<BLACK_LINE)||(SENSOR_1>WHITE)){
  if(SENSOR_1<BLACK_LINE){
  OnFwd(OUT_A);
  OnRev(OUT_C);
  }
  if(SENSOR_1>WHITE){
  OnFwd(OUT_C);
  OnRev(OUT_A);
  }
 }
 
 repeat(2){
 while(SENSOR_1<BLACK_LINE){
  if(BLACK_LINE<SENSOR_1<GREEN_LINE){
  OnFwd(OUT_C);
  OnRev(OUT_A);
  }
  if(SENSOR_1>WHITE){
  OnFwd(OUT_A);
  OnRev(OUT_C);
  }
  }
 OnFwd(OUT_A+OUT_C); 
 Wait(50);
 }

 OnFwd(OUT_A+OUT_C); 
 until(SENSOR_2<BLACK_LINE);
 Off(OUT_A+OUT_C);

 OnRev(OUT_A+OUT_C);
 Wait(back_time);//通信しながらバックさせる予定
 turn_right();

 OnFwd(OUT_A+OUT_C);
 Wait(300); //右旋回して前進
 turn1(); //方向転換
 OnFwd(OUT_A+OUT_C);
 Wait(250);




新型#include "spy.nqh"

#define l_Mi 330

 

#define l_Fa 349

 

#define l_Sol 392

 

#define l_Sol_ 415

 

#define l_La 440

 

#define l_Si 494

 

#define Do 523

 

#define Do_ 554

 

#define Re 587

 

#define Re_ 662

 

#define Mi 659

 

#define Fa 698

 

#define Fa_ 740

 

#define Sol 784

 

#define Sol_ 831

 

#define La 880

 

#define Si 988

 

#define h_Do 1047

 

#define A 50

 

#define A_ 48

 

#define B 25

 

#define B_ 23

 

#define C 17

 

#define C_ 15

 

#define D 12

 

#define D_ 10

 

#define E 150

 

#define E_ 148

/*猪木のテーマを流すプログラム*/ task music_inoki() { while(true) { PlayTone(Sol,E_); Wait(E); PlayTone(l_Sol,A_); Wait(A); PlayTone(l_Sol_,E_); Wait(E);

 

PlayTone(Sol,A_); Wait(A); PlayTone(Fa_,E_); Wait(E); PlayTone(l_La,A_); Wait(A); PlayTone(l_Si,E_); Wait(E); Wait(A);

 

PlayTone(Mi,E_); Wait(E); PlayTone(l_Mi,A_); Wait(A); PlayTone(l_Fa,E_); Wait(E);

 

PlayTone(Re,A_); Wait(A); PlayTone(Do_,E_); Wait(E); PlayTone(l_Mi,A_); Wait(A); PlayTone(l_Fa,E_); Wait(E); Wait(A);

 

} }

/*『バックします』の音楽を流すプログラム*/ task music_back() { while(true) { PlayTone(Sol,15);Wait(30); PlayTone(Re,15);Wait(20); PlayTone(Re,15);Wait(20); PlayTone(Re,15);Wait(20); Wait(80); PlayTone(Si,70); Wait(90); PlayTone(Si,70); Wait(90); PlayTone(Si,70); Wait(90); PlayTone(Si,70); Wait(90); Wait(100); } }

task main() {

    while(1) {

     start music_inoki;
     
     OnRev(OUT_A);
     OnRev(OUT_B);
     until (SENSOR_1 == 1) ;
     stop music_inoki;
     start music_back;
     Off(OUT_A+OUT_B);
     Wait(200);

     OnFwd(OUT_A);
     OnFwd(OUT_B);
     until (SENSOR_2 < 20) ;
     Float(OUT_A+OUT_B);
     stop music_back;
     Wait(100);
     OnFwd(OUT_A);
     OnRev(OUT_B);     //  C 出力に接続されたモータを正回転させる
     Wait(100);        //  プログラムの実行を3秒待つ (単位は1/100秒)
                      //  この間 A と C のモータは回転したまま (現状維持)
     Off(OUT_A+OUT_B); //  A と C 出力のモータを止める
     Wait(100);
    }
}

のぐ失敗プロ



#include "spy.nqh"

int touch;

int A;

sub turn_left(){
    OnRev(OUT_A);
    OnFwd(OUT_C);
    Wait(100);
}
    

sub turn_right(){
    OnFwd(OUT_A);
    OnRev(OUT_B);
    Wait(100);
}
   
    
sub go(){
    OnRev(OUT_A);
    OnRev(OUT_B);
    }

sub go_back(){
    OnFwd(OUT_A);
    OnFwd(OUT_B);
    }

task main()
{
  touch == 0 ;

  go();
  until(SENSOR_1 == 1) ;
  touch ++ ;

  while(touch < 4){
  go_back();
  Wait(50);
  turn_right();
  go();
  until(SENSOR_1 == 1) ;
  touch ++ ;
  }
 
A == 0 ;
while(A <= 3){ 
 go_back(); 
 until (SENSOR_2 < 10);
 A ++ ;

 if(A < 3){
  go();
  Wait(200);
  turn_left();
  }
 }

while(true){
Off(OUT_A+OUT_B);
Wait(100);

 touch == 0 ;
while(touch < 4){
  go();
  until(SENSOR_1 == 1) ;
  touch ++ ;

 if(touch < 3){
  go_back();
  Wait(50);
  turn_right();
  }
 }

A == 0 ;
while(A < 4){ 
 go_back(); 
 until (SENSOR_2 < 10) ;
 A ++ ;

 if(A < 3){
  go();
  Wait(200);
  turn_left();
  }
 }
}
}


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