[[2006a/B7]] **今回のメンバー [#m3c997be] クーロン茶、tako(ru-)、おかじ * 光を追いかけるロボット [#q50edd42] **命名:希望の光を追っかける、明るい未来に夢見る演奏ロボット 『みゅーじっ君<Hope&Lightばーじょん>』byおかじ ゝ( ´ ∇`) √ [#z8109ced] 光を探している時だけチャルメラの音楽を鳴らすプログラムです。 1、これがチャルメラの音楽ベースです。 #define Sol 784 //ソの音階 #define Ra 880 //ラの音階 #define Si 988 //シの音階 void play_music() //VOIDのプログラム(チャルメラ)です。 { PlayTone(Sol,20);Wait(25); //ソを演奏 PlayTone(Ra,20);Wait(25); //ラを演奏 PlayTone(Si,60);Wait(65); //シを演奏 PlayTone(Ra,20);Wait(25); //ラを演奏 PlayTone(Sol,15);Wait(30); //ソを演奏 PlayTone(Sol,15);Wait(20); //ソを演奏 PlayTone(Ra,15);Wait(20); //ラを演奏 PlayTone(Si,15);Wait(20); //シを演奏 PlayTone(Ra,15);Wait(20); //ラを演奏 PlayTone(Sol,15);Wait(20); //ソを演奏 PlayTone(Ra,60);Wait(65); //ラを演奏 } 2、そしてこれが完成形!課題1のプログラムです。 #define Sol 784 //ソの音階 #define Ra 880 //ラの音階 #define Si 988 //シの音階 void play_music() { PlayTone(Sol,20);Wait(25); //ソを演奏 PlayTone(Ra,20);Wait(25); //ラを演奏 PlayTone(Si,60);Wait(65); //シの音階 PlayTone(Ra,20);Wait(25); //ラを演奏 PlayTone(Sol,15);Wait(30); //ソを演奏 PlayTone(Sol,15);Wait(20); //ソを演奏 PlayTone(Ra,15);Wait(20); //ラを演奏 PlayTone(Si,15);Wait(20); //シの音階 PlayTone(Ra,15);Wait(20); //ラを演奏 PlayTone(Sol,15);Wait(20); //ソを演奏 PlayTone(Ra,60);Wait(65); //ラを演奏 } task main() //メインタスク { SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1がライトセンサーであると宣言 while(true) //以下を無限ループ { if (SENSOR_1>=50){ //閾値が50以上の時 OnFwd(OUT_A+OUT_C); //前に進む }if (SENSOR_1<50){ //閾値が50未満の時 OnFwd(OUT_A); //モーターA前進 OnRev(OUT_C); //モーターC後退 {play_music();} //チャルメラ演奏 } } } 次は課題2、『光を探している時に音楽をならし、光を見つけたら別の音楽を鳴らしながら進むプログラム』です。 #define Lre 400 #define Hsi 988 define GO OnFwd(OUT_A+OUT_C);Wait(300); #define TRUN OnFwd(OUT_A);OnRev(OUT_C);Wait(152); #define Do 523 #define Do2 554 #define Re 587 #define Re2 622 #define Mi 659 #define Fa 698 #define Fa2 740 #define So 784 #define So2 831 #define Ra 880 #define Ra2 932 #define Si 950 #define Do1 1047 #define Re1 1175 void play_music() { PlayTone(Do,20);Wait(50); PlayTone(Do,20);Wait(50); PlayTone(Do,20);Wait(50); PlayTone(Lre,60);Wait(100); PlayTone(Do,20);Wait(50); PlayTone(Do,20);Wait(50); PlayTone(Do,20);Wait(50); PlayTone(Lre,60);Wait(100); PlayTone(Do,20);Wait(50); PlayTone(Do,20);Wait(50); PlayTone(Do,20);Wait(50); PlayTone(Hsi,40);Wait(100); } void clasic_music() { { PlayTone(So,55); Wait(60); PlayTone(Re1,55); Wait(60); PlayTone(Si,75); Wait(80); PlayTone(Ra,45); Wait(50); PlayTone(So,35); Wait(40); PlayTone(Si,35); Wait(40); PlayTone(Ra,35); Wait(40); PlayTone(So,35); Wait(40); PlayTone(Fa2,35); Wait(40); PlayTone(Ra,35); Wait(40); PlayTone(Re,55); Wait(60); PlayTone(So,40); Wait(45); PlayTone(Re,40); Wait(45); PlayTone(Ra,40); Wait(45); PlayTone(Re,40); Wait(45); PlayTone(Si,45); Wait(50); PlayTone(Ra,28); Wait(33); PlayTone(So,28); Wait(33); PlayTone(Ra,35); Wait(40); PlayTone(Re,52); Wait(57); PlayTone(So,50); Wait(55); PlayTone(Re,28); Wait(33); PlayTone(So,28); Wait(33); PlayTone(Ra,45); Wait(50); PlayTone(Re,28); Wait(33); PlayTone(Ra,28); Wait(33); PlayTone(Si,45); Wait(50); PlayTone(Ra,28); Wait(33); PlayTone(So,28); Wait(33); PlayTone(Ra,40); Wait(45); PlayTone(Re,28); Wait(33); PlayTone(Re1,28); Wait(33); PlayTone(Do1,28); Wait(33); PlayTone(Si,28); Wait(33); PlayTone(Ra,28); Wait(33); PlayTone(So,28); Wait(33); PlayTone(Si,28); Wait(33); PlayTone(Ra,28); Wait(33); PlayTone(So,28); Wait(33); PlayTone(Fa2,28); Wait(33); PlayTone(Ra,28); Wait(33); PlayTone(So,43); Wait(48); Wait(50); } } task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_LIGHT); while(true) { if(SENSOR_1>=50){ OnFwd(OUT_A+OUT_C); {clasic_music();} } if (SENSOR_1<50){ {play_music();} GO; TRUN; GO; TRUN; GO; TRUN; GO; TRUN; } } } **工夫した点 [#adc011e4] 1、足回り。タイヤだと回転するスピードが早く、光を追いかけにくくなるので、スピードが落ち着いていて、かつ小回りが効くキャタピラを使用した。 2、ロボットの車体は安定性を重視して、マニュアルどおりの車体を採用。 3、プログラムに関して、音楽とメインタスクとを混合する所が何度試してもうまくいかず音楽が流れなかった。そこで過去の先輩達のプログラムを見ていた所、一昨年のプログラムに、VOIDなるものを発見しました。これは使えると思いすぐに実践したところ、なんと大成功!先輩達に感謝しています。 **苦労した点 [#l0107bfc] 1、小フーガの音階。一見簡単そうに見えますが、音階を合わせるのはかなり難しかった。これが1番苦労した。 2、プログラムにVOIDを使いました。これが一番スムーズに起動しました。 3、写真をみてもわかるように、前後にライトセンサーを装着しました。そうすることで死角をすくなくしました。 **反省点 [#if253234] 1、今回VOIDを使うことで音楽とサーチライトを複合することに成功しました。しかしほんとうならLIGHTMAXを使いたかったのですが、なぜかプログラムに組み込むと音楽が流れず、しかも光を感知せずグルグル回るだけになってしまいました。私達にもう少し技術があればもっと質のよいプラグラムが作れたと思います。我らなが 情けないです。m(==)m 2、小フーガに関してですが、本当なら光を探す音楽を第2楽章にしたかったのですが、容量が重いせいか光の感知が鈍くなり、うまく反応してくれなくなってしまいました。どうにかしてほかの容量をうまく削って第2楽章をいれたかったのですが、期限に間に合いませんでした。すいません。