[[2005/B4]] #contents * 課題5(音に合わせて指揮、ダンスをするプログラム) [#w2752b9e] //課題5(最初に指揮をする側) // // #define Do 523 #define Do_s 554 #define Re 587 #define Re_s 622 #define Mi 659 #define Fa 698 #define Fa_s 740 #define Sol 784 #define Sol_s 831 #define La 880 #define La_s 932 #define Si 988 #define Do_up 1047 #define Re_up 1175 task Move(){//ダンスのタスク ClearMessage();//次に受信するためにメッセージクリア while(Message()==0){//音楽がおわるまで踊り続ける OnFwd(OUT_A); OnRev(OUT_C); Wait(120); OnFwd(OUT_C); OnRev(OUT_A); Wait(120); OnFwd(OUT_C); OnRev(OUT_A); Wait(120); OnFwd(OUT_A); OnRev(OUT_C); Wait(120); } SendMessage(1);//相手が踊るように送信 } task play_music(){//音を鳴らしながら指揮をするタスク while(true){//音楽は大塚愛の「さくらんぼ」 ClearMessage();//メッセージクリア PlayTone(La,15);OnFwd(OUT_B);Wait(20);//指揮と音 PlayTone(Si,15);OnRev(OUT_B);Wait(20); PlayTone(La,15);OnFwd(OUT_B);Wait(20); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(Sol,50);OnFwd(OUT_B);Wait(60); PlayTone(Si,25);OnRev(OUT_B);Wait(30); PlayTone(Re_up,25);OnFwd(OUT_B);Wait(30); PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20); PlayTone(Fa_s,50);OnFwd(OUT_B);Wait(55); PlayTone(Sol,50);OnRev(OUT_B);Wait(55); OnFwd(OUT_B);Wait(15); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(Si,25);OnFwd(OUT_B);Wait(30); PlayTone(Re,15);OnRev(OUT_B);Wait(20); PlayTone(Re,50);OnFwd(OUT_B);Wait(55); PlayTone(Mi,25);OnRev(OUT_B);Wait(30); PlayTone(Sol,25);OnFwd(OUT_B);Wait(30); PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20); PlayTone(Sol,15);OnFwd(OUT_B);Wait(20); PlayTone(La,15);OnRev(OUT_B);Wait(20); PlayTone(Re,15);OnFwd(OUT_B);Wait(20); PlayTone(Si,25);OnRev(OUT_B);Wait(30); PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20); PlayTone(Sol,25);OnRev(OUT_B);Wait(30); PlayTone(Re,15);OnFwd(OUT_B);Wait(20); PlayTone(Do,25);OnRev(OUT_B);Wait(30); PlayTone(Re,25);OnFwd(OUT_B);Wait(30); PlayTone(Mi,25);OnRev(OUT_B);Wait(30); PlayTone(Sol,15);OnFwd(OUT_B);Wait(20); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(La,15);OnFwd(OUT_B);Wait(20); PlayTone(La,15);OnRev(OUT_B);Wait(20); PlayTone(La,15);OnFwd(OUT_B);Wait(20); PlayTone(Si,15);OnRev(OUT_B);Wait(20); PlayTone(La,15);OnFwd(OUT_B);Wait(20); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(Sol,50);OnFwd(OUT_B);Wait(55); PlayTone(Si,15);OnRev(OUT_B);Wait(20); PlayTone(Re_up,25);OnFwd(OUT_B);Wait(30); PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20); PlayTone(Fa_s,50);OnFwd(OUT_B);Wait(55); PlayTone(Sol,50);OnRev(OUT_B);Wait(55); OnFwd(OUT_B);Wait(15); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(Si,25);OnFwd(OUT_B);Wait(30); PlayTone(Re,15);OnRev(OUT_B);Wait(20); PlayTone(Re,50);OnFwd(OUT_B);Wait(55); PlayTone(Mi,25);OnRev(OUT_B);Wait(30); PlayTone(Sol,25);OnFwd(OUT_B);Wait(30); PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20); PlayTone(Sol,15);OnFwd(OUT_B);Wait(20); PlayTone(La,15);OnRev(OUT_B);Wait(20); PlayTone(Re,15);OnFwd(OUT_B);Wait(20); PlayTone(Si,25);OnRev(OUT_B);Wait(30); PlayTone(Do_up,25);OnFwd(OUT_B);Wait(30); PlayTone(Si,25);OnRev(OUT_B);Wait(30); PlayTone(La,25);OnFwd(OUT_B);Wait(30); PlayTone(Mi,25);OnRev(OUT_B);Wait(30); PlayTone(Sol,15);OnFwd(OUT_B);Wait(20); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(La,15);OnFwd(OUT_B);Wait(20); PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20); PlayTone(Sol,25);OnFwd(OUT_B);Wait(30); Off(OUT_B);Wait(25); ClearTimer(0); while(Timer(0)<=50){SendMessage(2);} break; } } task main(){ SendMessage(1);//最初に相手を踊らすためにSend start play_music;//音楽スタート while(true){//交代しながら永久に動く until(Message()!=0);//メッセージがくるまで待つ if(Message()==1){//1なら踊る start Move;} if(Message()==2){//2なら指揮 start play_music; } } } -音符の入力が疲れた。 -音を鳴らしながらモーターを動かせたのでそこはやりやすかった。 -交代の部分が難しかった。 * 課題5-2 [#vdc37db2] //Sound_kadai5_2(最初に踊る) // // #define Do 523 #define Do_s 554 #define Re 587 #define Re_s 622 #define Mi 659 #define Fa 698 #define Fa_s 740 #define Sol 784 #define Sol_s 831 #define La 880 #define La_s 932 #define Si 988 #define Do_up 1047 #define Re_up 1175 task Move(){ ClearMessage(); while(Message()==0){ OnFwd(OUT_A); OnRev(OUT_C); Wait(120); OnFwd(OUT_C); OnRev(OUT_A); Wait(120); OnFwd(OUT_C); OnRev(OUT_A); Wait(120); OnFwd(OUT_A); OnRev(OUT_C); Wait(120); } SendMessage(1); } task play_music(){ while(true){ PlayTone(La,15);OnFwd(OUT_B);Wait(20); PlayTone(Si,15);OnRev(OUT_B);Wait(20); PlayTone(La,15);OnFwd(OUT_B);Wait(20); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(Sol,50);OnFwd(OUT_B);Wait(60); PlayTone(Si,25);OnRev(OUT_B);Wait(30); PlayTone(Re_up,25);OnFwd(OUT_B);Wait(30); PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20); PlayTone(Fa_s,50);OnFwd(OUT_B);Wait(55); PlayTone(Sol,50);OnRev(OUT_B);Wait(55); OnFwd(OUT_B);Wait(15); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(Si,25);OnFwd(OUT_B);Wait(30); PlayTone(Re,15);OnRev(OUT_B);Wait(20); PlayTone(Re,50);OnFwd(OUT_B);Wait(55); PlayTone(Mi,25);OnRev(OUT_B);Wait(30); PlayTone(Sol,25);OnFwd(OUT_B);Wait(30); PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20); PlayTone(Sol,15);OnFwd(OUT_B);Wait(20); PlayTone(La,15);OnRev(OUT_B);Wait(20); PlayTone(Re,15);OnFwd(OUT_B);Wait(20); PlayTone(Si,25);OnRev(OUT_B);Wait(30); PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20); PlayTone(Sol,25);OnRev(OUT_B);Wait(30); PlayTone(Re,15);OnFwd(OUT_B);Wait(20); PlayTone(Do,25);OnRev(OUT_B);Wait(30); PlayTone(Re,25);OnFwd(OUT_B);Wait(30); PlayTone(Mi,25);OnRev(OUT_B);Wait(30); PlayTone(Sol,15);OnFwd(OUT_B);Wait(20); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(La,15);OnFwd(OUT_B);Wait(20); PlayTone(La,15);OnRev(OUT_B);Wait(20); PlayTone(La,15);OnFwd(OUT_B);Wait(20); PlayTone(Si,15);OnRev(OUT_B);Wait(20); PlayTone(La,15);OnFwd(OUT_B);Wait(20); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(Sol,50);OnFwd(OUT_B);Wait(55); PlayTone(Si,15);OnRev(OUT_B);Wait(20); PlayTone(Re_up,25);OnFwd(OUT_B);Wait(30); PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20); PlayTone(Fa_s,50);OnFwd(OUT_B);Wait(55); PlayTone(Sol,50);OnRev(OUT_B);Wait(55); OnFwd(OUT_B);Wait(15); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(Si,25);OnFwd(OUT_B);Wait(30); PlayTone(Re,15);OnRev(OUT_B);Wait(20); PlayTone(Re,50);OnFwd(OUT_B);Wait(55); PlayTone(Mi,25);OnRev(OUT_B);Wait(30); PlayTone(Sol,25);OnFwd(OUT_B);Wait(30); PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20); PlayTone(Sol,15);OnFwd(OUT_B);Wait(20); PlayTone(La,15);OnRev(OUT_B);Wait(20); PlayTone(Re,15);OnFwd(OUT_B);Wait(20); PlayTone(Si,25);OnRev(OUT_B);Wait(30); PlayTone(Do_up,25);OnFwd(OUT_B);Wait(30); PlayTone(Si,25);OnRev(OUT_B);Wait(30); PlayTone(La,25);OnFwd(OUT_B);Wait(30); PlayTone(Mi,25);OnRev(OUT_B);Wait(30); PlayTone(Sol,15);OnFwd(OUT_B);Wait(20); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20); PlayTone(Sol,15);OnRev(OUT_B);Wait(20); PlayTone(La,15);OnFwd(OUT_B);Wait(20); PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20); PlayTone(Sol,25);OnFwd(OUT_B);Wait(30); Off(OUT_B);Wait(25); ClearTimer(0); while(Timer(0)<=50){SendMessage(2);} break; } } task main(){ while(true){ until(Message()!=0); if(Message()==1){ start Move;} if(Message()==2){ start play_music; } } } -コメントは前のプログラム参照 #ref(2005/B4/課題5/060113_1711~02.jpg,指揮) #comment