♪目次♪

課題3の内容

  1. 光を感知しその光源を追っかける。その際  ゴジラのテーマ曲を流す。
  2. 次に光源を見失った場合、車体を回転させ  光を探す。その時はピンクパンサーの曲を流す。
  3. 以上、追撃、探索で2つの曲を使い分けて光を追いかけるロボット

ロボットの説明

今回は、ロボットの前に光センサーを2つ、しかも前向きに設置
これで光源の光を探知する。

光を追いかけるプログラム (試作) 作成者:ガリ

task main(){
SetSensor(SENSOR_1,SENSOR_LIGHT);     //センサー1を光センサーと定義
SetSensor(SENSOR_2,SENSOR_LIGHT);     //センサー2を光センサーと定義
while(true)
{if(SENSOR_1>43){OnRev(OUT_A);until(SENSOR_1<43);Off(OUT_A);};
             //光が左からあたったとき、右の車輪を動かし、車体を右に
if(SENSOR_2>43){OnFwd(OUT_C);until(SENSOR_2<43);Off(OUT_C);};};
             //光が右からあたったとき、左の車輪を動かし、車体を左に
}

 ☆試作の段階ではうまく光りに反応してくれる時とそうでない  時があったので、光センサーの値をいろいろと変えてみると  幾分よい具合になった。

光を追いかけるプログラム (完成版) 作成者:ガリ

task main(){
SetSensor(SENSOR_1,SENSOR_LIGHT);     //センサー1を光センサーと定義
SetSensor(SENSOR_2,SENSOR_LIGHT);     //センサー2を光センサーと定義
while(true)
{if(SENSOR_1>55){OnRev(OUT_A);until(SENSOR_1<43);Off(OUT_A);};
            //光が左からあたったとき、右の車輪を動かし、車体を右に
if(SENSOR_2>55){OnFwd(OUT_C);until(SENSOR_2<43);Off(OUT_C);};};
            //光が右からあたったとき、左の車輪を動かし、車体を左に
}

プログラム(♪ゴジラ) 作成者:ガリ

#define Sol 196        
#define Ra   220
#define Si    247
#define Do  262   //音の定義
task main()   // 音楽を演奏するタスク
{
   while (true)
   {
       PlayTone(Do,20); Wait(25);  // Wait の時間の方を少し長くして
       PlayTone(Si,20); Wait(25);  // 同じ音を続けて鳴らす場合にも
       PlayTone(Ra,40); Wait(45);  // 一つの音にならないようにしている
       
       PlayTone(Do,20); Wait(25);
       PlayTone(Si,20); Wait(25);
       PlayTone(Ra,40); Wait(45);
       
       PlayTone(Do,20); Wait(25);
       PlayTone(Si,20); Wait(25);
       PlayTone(Ra,20); Wait(25);
       PlayTone(Sol,20); Wait(25);
       PlayTone(Ra,20); Wait(25);
       PlayTone(Si,20); Wait(25);
       PlayTone(Do,20); Wait(25);
       PlayTone(Si,20); Wait(25);
       PlayTone(Ra,40); Wait(45);
        }
}               

工夫した点(♪ゴジラ)

ゴジラのテーマらしく音の定義を低めの音に設定して迫力をだした!!

プログラム(♪ピンクパンサーのテーマ)試作  作成者:ガリ

#define Sol  831
#define Ra   880
#define Si   988
#define Do   1047
#define Mi   1319
#define Fa   1397
#define Raa  1976
#define Soll 1661   //音の定義
task main()
 {
  while (true)
  {
      PlayTone(Sol,20); Wait(25);
      PlayTone(Ra,20); Wait(50);
      PlayTone(Si,20); Wait(25);
      PlayTone(Do,20); Wait(50);
      PlayTone(Sol,20); Wait(25);
      PlayTone(Ra,20); Wait(35);
      PlayTone(Si,20); Wait(25);
      PlayTone(Do,20); Wait(35);
      PlayTone(Fa,20); Wait(25);
      PlayTone(Mi,20); Wait(35);
      PlayTone(Do,20); Wait(25);
      PlayTone(Mi,20); Wait(35);
      PlayTone(Raa,20); Wait(25);
      PlayTone(Soll,80); Wait(90);
       }
}                

プログラム(♪ピンク)改善点

USBを使えない状況でつくったので音の長さや音程が確認できず、オンチなプログラムとなった。その後高いAの音を改善し、音の長さを改善し完成版となった。

プログラム(♪ピンクパンサーのテーマ)完成版   作成者:ガリ

#define Sol  831
#define Ra   880
#define Si   988
#define Do   1047
#define Mi   1319
#define Fa   1397
#define Raa  1760
#define Soll 1661     //音の定義
task main()
{
 while (true)
 {
     PlayTone(Sol,20); Wait(25);
     PlayTone(Ra,20); Wait(100);
     PlayTone(Si,20); Wait(25);
     PlayTone(Do,20); Wait(100);
     PlayTone(Sol,20); Wait(25);
     PlayTone(Ra,20); Wait(35);
     PlayTone(Si,20); Wait(25);
     PlayTone(Do,20); Wait(35);
     PlayTone(Fa,20); Wait(25);
     PlayTone(Mi,20); Wait(35);
     PlayTone(Do,20); Wait(25);
     PlayTone(Mi,20); Wait(35);
     PlayTone(Raa,20); Wait(25);
     PlayTone(Soll,80); Wait(120);
     }
     }               

プログラム(曲を分けて明るい方へ進む)  作成者:ガリ

#define Sol 196
#define Ra   220
#define Si    247
#define Do  262
#define Sola  831
#define Raa   880
#define Sia   988 
#define Doa   1047
#define Mia   1319
#define Faa   1397
#define Raaa  1760
#define Solla 1661    //音の定義
task play_music2()                    
{
     while(true)
     {
      PlayTone(Do,20); Wait(25);  // Wait の時間の方を少し長くして
      PlayTone(Si,20); Wait(25);  // 同じ音を続けて鳴らす場合にも
      PlayTone(Ra,40); Wait(45);  // 一つの音にならないようにしている
      PlayTone(Do,20); Wait(25);
      PlayTone(Si,20); Wait(25);
      PlayTone(Ra,40); Wait(45);       
      PlayTone(Do,20); Wait(25);
      PlayTone(Si,20); Wait(25);
      PlayTone(Ra,20); Wait(25);
      PlayTone(Sol,20); Wait(25);
      PlayTone(Ra,20); Wait(25);
      PlayTone(Si,20); Wait(25);
      PlayTone(Do,20); Wait(25);
      PlayTone(Si,20); Wait(25);
      PlayTone(Ra,40); Wait(45);    
                }
} 

task play_music1()               //仕事:音楽を演奏する             
{
  while (true)
  {
    PlayTone(Sola,20); Wait(25);
    PlayTone(Raa,20); Wait(100);
    PlayTone(Sia,20); Wait(25);
    PlayTone(Doa,20); Wait(100);
    PlayTone(Sola,20); Wait(25);
    PlayTone(Raa,20); Wait(35);
    PlayTone(Sia,20); Wait(25);
    PlayTone(Doa,20); Wait(35);
    PlayTone(Faa,20); Wait(25);
    PlayTone(Mia,20); Wait(35);
    PlayTone(Doa,20); Wait(25);
    PlayTone(Mia,20); Wait(35);
    PlayTone(Raaa,20); Wait(25);
    PlayTone(Solla,80); Wait(120);     //音の定義
     }
} 
int Light=0;
int turn_time=90; 
task main()
{
 SetSensor(SENSOR_1,SENSOR_LIGHT);   //ライトセンサーを左右にセットする
 ClearTimer(0);
 while(Timer(0)<=turn_time)
    {
       if(SENSOR_1>Light)
         {
             Light=SENSOR_1;    //センサー1が反応
         }
         
      OnFwd(OUT_A);        //Aのモーターを前に
      OnRev(OUT_C);        //Bのモーターを後ろに(車体を回転させる)
    }
    
  OnFwd(OUT_A);
  OnRev(OUT_C);
  start play_music1;        //センサー1が反応するまで曲を流す          
  until(SENSOR_1<Light);
 while(true)
    {
       if(SENSOR_1<Light)       //センサー1反応
         {
             OnFwd(OUT_A);     //Aのモーターを前へ
                        OnRev(OUT_C);    //Cのモーターを後ろへ
     stop play_music1;           //1つ目の曲を止める    
     start play_music2;            //2つ目の曲を流す
          until(SENSOR_1>=Light);
         }
      else
         {
             OnFwd(OUT_A+OUT_C);
        stop play_music2;       //2つ目の曲を止める
          start play_music1;           //センサー1の値をきるまで1の曲を流す
          until(SENSOR_1<Light);
         }  
    }
}                         

工夫したところ

今回、一番見せたかったのはやはり音楽で、少し個性的な音楽を選んだ。時間を費やした分、自分なりにはとても出来がいいと思う。

苦労したところ

光センサーに関するプログラミングがとても難しく、なかなか、思ったとおりに動いてくれなかった。自分の知識だけではできない所もあったので、友達から聞いたりして理解した。

反省点

動きはゆっくりだけどうまく動いた(笑) 光を追いかけるプログラムがよくなかったのかな(;→д←) 音楽をならすのはとてもよくできたと思う!! 曲によって音の高さを変えたところはよっかた♪懐中電灯とか光源の準備が出来なかった。あとメンバーが減ってしまったのが残念。。、

感想

今回は、自宅でプログラムを作ったりがんばった!!どんどんレベルがあがってきて、正直パソコンをいじれない自分にとってはキツくなってきた。。。次はいよいよロボコン!! 今まで学んできたことを使って、いいロボットを作りたいと思う!!みんながんばろーぜ!!

次回へ向けて

曲を鳴らす事はロボコンとは直接関係は無いけど、光センサー のプログラミングは必須! 是非とも使いこなせるようにしたい。

ロボゼミ仲間からのコメント

気軽に書いて!!



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-08-29 (火) 23:29:01