[[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楽章をいれたかったのですが、期限に間に合いませんでした。すいません。

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS