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
Last-modified: 2005-02-10 (木) 20:38:17