[[2006a/B1/課題3右]] *★光を追う&歌いだすロボット★ [#ube0accd] -6/30 みんなで曲を決めようとしたけど三人とも趣味が違うので全くまとまらない…(:;)しじみさんは‘君が代’にしたいらしいです。なんだか愛国心が非常に強いらしくてビックリしました(>△<) -7/7 今日は七夕!!ってことで、夜は晴れるといいですね。((なんか曇りらしいですが・・・。 *光を探してぐるぐる回る(課題1)光を見つけたら違う曲を演奏しながら追いかける!(課題2) [#ube0accd] #define Do 523 //この音階がベース。ド #define Re 587 //レ #define Mi 659 //ミ #define Fa 698 //ファ #define Sol 784 //ソ #define La 880 //ラ #define Ce 988 //シ #define Do2 1047 //[2]は、1オクターブ高くなるの意。高いド #define Re2 1175 //高いレ #define Mi2 1319 //高いミ #define La3 932 //[3]は、シャープ。 #ラ #define Re3 622 //#レ #define go_light OnFwd(OUT_A+OUT_C); //光を見つけてから前に進みます。 #define turn_left OnRev(OUT_A);OnFwd(OUT_C); //光を探すために旋回します。 task play_music() //1曲目、「くまのプーさん」です { while (true) { PlayTone(Mi,30); Wait(35); PlayTone(Re,20); Wait(20); PlayTone(Mi,35); Wait(45); PlayTone(Re,40); Wait(80); PlayTone(Mi,30); Wait(35); PlayTone(Re,20); Wait(20); PlayTone(Mi,35); Wait(45); PlayTone(Re,40); Wait(80); PlayTone(Do,30); Wait(35); PlayTone(Do,15); Wait(15); PlayTone(La3,30); Wait(35); PlayTone(La3,15); Wait(15); PlayTone(La,30); Wait(35); PlayTone(La,15); Wait(15); PlayTone(Sol,30); Wait(35); PlayTone(Sol,15); Wait(15); PlayTone(Fa,30); Wait(35); PlayTone(Fa,15); Wait(15); PlayTone(Mi,30); Wait(35); PlayTone(Mi,15); Wait(15); PlayTone(Re,30); Wait(35); PlayTone(Re,15); Wait(15); PlayTone(Re3,25); Wait(30); Wait(20); } } task play_music2() //2曲目、おなじみ「チューリップの歌」です { while (SENSOR_1 >50) { PlayTone(Do,25); Wait(30); PlayTone(Re,25); Wait(30); PlayTone(Mi,50); Wait(55); PlayTone(Do,25); Wait(30); PlayTone(Re,25); Wait(30); PlayTone(Mi,50); Wait(55); PlayTone(Sol,25);Wait(30); PlayTone(Mi,25); Wait(30); PlayTone(Re,25); Wait(30); PlayTone(Do,25); Wait(30); PlayTone(Re,25); Wait(30); PlayTone(Mi,25); Wait(30); PlayTone(Re,50); Wait(60); PlayTone(Do,25); Wait(30); PlayTone(Re,25); Wait(30); PlayTone(Mi,50); Wait(55); PlayTone(Do,25); Wait(30); PlayTone(Re,25); Wait(30); PlayTone(Mi,50); Wait(55); PlayTone(Sol,25);Wait(30); PlayTone(Mi,25); Wait(30); PlayTone(Re,25); Wait(30); PlayTone(Do,25); Wait(30); PlayTone(Re,25); Wait(30); PlayTone(Mi,25); Wait(30); PlayTone(Do,50); Wait(60); PlayTone(Sol,25); Wait(30); PlayTone(Sol,25); Wait(30); PlayTone(Mi,25); Wait(30); PlayTone(Sol,25); Wait(30); PlayTone(La,25); Wait(30); PlayTone(La,25); Wait(30); PlayTone(Sol,50); Wait(60); PlayTone(Mi,25); Wait(30); PlayTone(Mi,25); Wait(30); PlayTone(Re,25); Wait(30); PlayTone(Re,25); Wait(30); PlayTone(Do,75); Wait(80); Wait(20); } } task main () //ここから動作に入ります { SetSensor(SENSOR_1,SENSOR_LIGHT); //光センサーの定義をして while(true) { stop play_music2; //ここは繰り返しのための仕掛け。ここから光を探すプログラムが始まります start play_music; //プーさんが演奏されます while (SENSOR_1 <40) { turn_left; //光を探して旋回しています } stop play_music; //ここから、光を見つけた場合のプロフラムです start play_music2; //チューリップが演奏されます while (SENSOR_1 >45) { go_light; //光に向けて突進します } } } *工夫した点 [#p07e2ca1] 今回は工夫といっても特にないが、車体については、かなりコンパクトにして無駄を少なくし、プログラムについては、defineを多く使用して簡略化に努めた。 *苦労した点 [#m3c2a000] 今回苦労した点といったらなんと言っても「曲作り」ですネ。“チューリップ”は全然難しいことは無かったのですが、問題は“くまのプーさん”です。楽譜が見つからず、鍵盤も持ち合わせていない僕(タッキー)はプログラムで大体の音感と勘を頼りに、作っては失敗を繰り返してようやく出来上がり!っテ感じです。苦労しただけあって出来上がりもなかなかのものになりました♪でもその前にグループの中で曲目の案が多くあがりすぎてしまい、どれにしようかすごく迷いました(>△<)そのことで少しケンカもしてしまいました…。一応元通りの仲に戻ることができました。 苦労しました〜〜〜orz また、プログラムでwhileの位置関係がとても厄介でしたっ!!