シンプルなボディとは裏腹に攻撃的な動きをする右側ロボット。 二つのセンサーは光を捉えやすく、そして追いやすい絶妙のバランスを考えた位置においた。また、極限まで軽量化をしてタイヤとギヤを替えた。シャープでしなやかな走りをとくとご賞味あれ。目から黄色のビームが!?
下のプログラムは、光が当たった時とそうでないときにミューヂックが変わります。 実際に試してみたら、光が当たると心電図のような音が鳴りますよ。
#define DO1 880 // ミューヂック1 音符を定義 #define DO01 932 #define RE1 988 #define MI1 1047 #define MI01 1109 #define FA1 1175 #define FA01 1245 #define SO1 1319 #define LA1 1397 #define LA01 1480 #define SHI1 1568 #define SHI01 1661 #define DO2 1760 #define P PlayTone #define W Wait task play_music() { // ミューヂック1 while(true) { P(RE1,10);W(10); P(MI1,10);W(10); P(FA1,10);W(10); P(SO1,10);W(10); P(LA1,10);W(20); P(LA1,10);W(10); P(SO1,10);W(10); P(FA1,10);W(10); P(MI1,10);W(10); P(RE1,10);W(20); P(RE1,10);W(10); P(MI1,10);W(10); P(FA1,10);W(10); P(SO1,10);W(10); P(LA1,5);W(5); P(LA1,5);W(10); P(LA1,10);W(10); P(SO1,10);W(10); P(FA1,10);W(10); P(MI1,10);W(10); P(DO01,25);W(30); } } #define A 123 // ミューヂック2の音符を定義 #define B 234 #define C 345 #define D 456 #define E 567 #define F 678 #define G 789 #define H 890 #define I 901 task play_music2() { // ミューヂック2 while(true) { P(E,20);W(40); P(D,20);W(30); P(C,20);W(40); P(B,10);W(30); P(A,10);W(20); P(A,20); W(30); P(C,5); W(10); P(D,20); W(25); P(F,20); W(25); P(E,20); W(25); P(D,10);W(25); P(C,5);W(10); P(C,10);W(10); P(C,5);W(10); P(C,10);W(10); } } #define turn_right OnFwd(OUT_A);OnRev(OUT_C); // 右に旋回 #define turn_left OnRev(OUT_A);OnFwd(OUT_C); // 左に旋回 #define stop_turning Off(OUT_A+OUT_C); // 停止 #define go OnFwd(OUT_A+OUT_C); // ゴーです!! #define LIGHT 50 //0.5秒 task main () { SetSensor(SENSOR_1,SENSOR_LIGHT); // センサー1がライトセンサー SetSensor(SENSOR_3,SENSOR_LIGHT); // センサー3もライトセンサー turn_right; // 右に旋回 start play_music; // ミューヂック1スタート!! while(true){ // 無限のルーツ if(SENSOR_1>LIGHT&&SENSOR_3>LIGHT) // もし1または3が明るければ { stop_turning; // 旋回停止 go; // ゴーです!! stop play_music; // ミューヂック1ストップ! start play_music2; // ミューヂック2スタート!! }else{ // それ以外のときには stop play_music2; // ミューヂック2スヨップ! start play_music; // ミューヂック1スタート!! turn_right; 右に旋回! until(SENSOR_1>LIGHT||SENSOR_3>LIGHT); // 1または3に光が当たるまで go; // ゴーです!! } } }
光を探しているとき音楽2を流し、発見したら音楽1を鳴らします。音楽はただいま作成中。。 ちなみに前方にセンサー2つつけてます。
#define LIGHT 45 //反応する光の強さ #define GO OnFwd(OUT_A+OUT_C); //前進 #define L OnFwd(OUT_C);OnRev(OUT_A); //左回り #define R OnFwd(OUT_A);OnRev(OUT_C); //右回り #define W Wait task music1() //音楽1 { while(true) { PlaySound(SOUND_UP);W(10); } } task music2() //音楽2 { while(true) { PlaySound(SOUND_LOW_BEEP);W(10); } } task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_LIGHT); while(true) { if(SENSOR_1<LIGHT&&SENSOR_3>LIGHT) //3が大きい { stop music1; start music2; R; //右旋回 Wait(20); } if(SENSOR_1>LIGHT&&SENSOR_3<LIGHT) //1が大きい { stop music1; start music2; L; //左旋回 Wait(20); } if(SENSOR_1<LIGHT&&SENSOR_3<LIGHT) //どちらも反応しない { if(SENSOR_1<LIGHT||SENSOR_3<LIGHT) //どちらかのセンサも反応していない時、 { start music1; stop music2; R; //右へ回る Wait(20); until(SENSOR_1>LIGHT||SENSOR_3>LIGHT); //どちらか反応するまで } } if(SENSOR_1>LIGHT&&SENSOR_3>LIGHT) //両方とも反応 { stop music1; start music2; GO; //前進 } } }
初めは、light_max や time_max を使っていたが訳が分からず最後に挫折してシンプルにベストにまとめてチャレンジしました。苦労した点は、プログラムを送ろうとしてエラーが立て続けに出てしまいやる気を無くさせた。しかたなく、初めから作り直しました。また、ミューヂックが思った通りにいかず変になったが、味が出ていると思う。しかしミューヂックには自信はないです。 (東京モノレール)
苦労した点 ロボティクスゼミへ割く時間がなかなかなくて、プログラムが単調かなとは思いました。あと、「作曲する」ということはやっぱり難しいと痛感しました。 工夫した点 プログラムをシンプルにして、プログラムの編集を容易にしたことです。(羽田空港第2ビル)
コンカイはあるバイトのおかげで合同製作に参加ができなかった。だがコンカイのプログラムは簡単にしようと思えば簡単にプログラムはできた。自分がライトで照らすと懸命にその光を追う姿がなんともいじらしかった…。最後に言いたいことがある。 いいかげん晴れろや! 【羽田空港第2ビル】
ゼンカイのリベンジで臨んだが結果はゼンカイよりも良くなったカナと我ながらにしみじみと痛感した。なかなかコンカイもミンナで集まれず(フタリだけど...)ヒトリでの試行錯誤の日々が続いたのだ。プログラムの難しさ、繊細さが身にしみた課題だったと思う。ロボコンをうまくやり過ごせるか不安も残るがまずは期末テストを頑張りたい。 いいかげん晴れろや!!Part2 【東京モノレール】
コメントをお願いします。