練習問題

1. ハート形を描くロボット(必須)

ロボットにペンを取り付けA3用紙にハート型を描くロボットを作成しなさい。

task main() {

OnFwd(OUT_A+OUT_C);
Wait(071); // 1/100単位で調節
Off(OUT_A);
Wait(238);
OnRev(OUT_A);
Wait(120);
Off(OUT_A);
Wait(238);
OnFwd(OUT_A);
Wait(071);
Off(OUT_A+OUT_C);

}

感想<オーハラ 理想値から微調整を繰り返した。意外に鉛筆って抵抗あるんだね〜 (^^)b

2. 台から落ちないロボット(必須)

机の上で動き回るロボットを作成しなさい。 ただし方向変換は机の端に来たときに行うこと。

task main() {

SetSensor(SENSOR_1,SENSOR_TOUCH); 
SetSensor(SENSOR_3,SENSOR_TOUCH);

OnFwd(OUT_A+OUT_C); while(true)

 {
 
  if(SENSOR_1 == 1) 
   {
     Off(OUT_A+OUT_C);
     Wait(80);     //時間を置くことでセンサーがきちんと作動するのを待つ      if(SENSOR_1 == 1 && SENSOR_3 == 1)
     {
      OnRev(OUT_A);OnFwd(OUT_C);
      Wait(120);
      OnFwd(OUT_A);
     }
     if(SENSOR_1 == 1)     
     {
      OnRev(OUT_A+OUT_C);
      Wait(35);
      OnFwd(OUT_A);
      Off(OUT_C);
      Wait(40);  //ココと
      OnFwd(OUT_C);
     }
    } 
  if(SENSOR_3 == 1)
   {
     Off(OUT_A+OUT_C);     
     Wait(80);   //時間を置くことでセンサーがきちんと作動するのを待つ\(^O^)/
     if(SENSOR_1 == 1 && SENSOR_3 == 1)
     {
      OnRev(OUT_C);OnFwd(OUT_A);
      Wait(120);
      OnFwd(OUT_C);
     }
     if(SENSOR_3 == 1)
     {
      OnRev(OUT_A+OUT_C);
      Wait(30);
      OnFwd(OUT_C);
      Off(OUT_A);
      Wait(30);  //ココの値を変えることでループ防止Σ( ̄□ ̄;)
      OnFwd(OUT_A);
     }
  
   }
  }

}

感想>オーハラ センサー敏感すぎ

3. ライントレースをするロボット(必須)

できるだけ速いロボットを作成すること

#define THRESHOLD 38

task main () { SetPower(OUT_A,1); SetPower(OUT_C,1);

   SetSensor(SENSOR_2, SENSOR_LIGHT);
   
   while ( true )
   {
       if (SENSOR_2 < THRESHOLD)
{
           OnFwd(OUT_C);
           Off(OUT_A);
       }
else
{
           Off(OUT_C);
           OnFwd(OUT_A);
       }
       
   }

}

感想<オーハラ まあ、強いていえばストレート仕様(使わなかったけどさΣ( ̄□ ̄;))を作ったことかな?

4. 光を追いかけるロボット(必須)

まず最初に一回転してもっとも明るい方向(懐中電灯の方向)を探し、次に懐中電灯の光を追いかけて進むようなロボットを作成しなさい。

int light_max=30; int time=5;

task main()
{
  SetSensor(SENSOR_1, SENSOR_LIGHT);

  ClearTimer(0);
  while(Timer(0)<50)
 repeat(true)
 {
  {
    OnFwd(OUT_A);
    OnRev(OUT_C);
    if(SENSOR_1>light_max)
    {
       light_max = SENSOR_1;
       time = Timer(0);        
    }
  }
  ClearTimer(0);
  while(Timer(0)<time)
   {
    OnRev(OUT_A);
    OnFwd(OUT_C);
   }
 Off(OUT_A+OUT_C); 
 Wait(10);
    OnFwd(OUT_A);
    OnFwd(OUT_C);
  }
}

5. 演奏ロボット(必須)

インストラクション(説明書)の最後にある「Top Secret」を参考に、音楽を演奏しながら前進し障害物にぶつかったら(あるいは明るい光にあたったら)後退しながら方向を変えるロボットを作成しなさい。ただし移動のためのモータはひとつだけ使うものとし、また前進しているときと後進している時で違う音楽を演奏すること。


#define Do 523

#define Re 587

#define Mi 659

#define Fa 698

#define Sol 784

#define Ra 880 //ラの音を作ってみた(*^o^*)ノ

task play_music() {

   while (true)
   {
       PlayTone(Do,25); Wait(20);  
       PlayTone(Re, 5); Wait(20);  
       PlayTone(Mi,25); Wait(20);  
       PlayTone(Do, 5); Wait(20);
       PlayTone(Mi,25); Wait(20);
       PlayTone(Do, 5); Wait(20);
       PlayTone(Mi,35); Wait(40);
       PlayTone(Re,25); Wait(20);
       PlayTone(Mi,10); Wait(20);
       PlayTone(Fa,10); Wait(20);
       PlayTone(Fa,10); Wait(20);
       PlayTone(Mi,10); Wait(20);
       PlayTone(Re,15); Wait(20);
PlayTone(Fa,35); Wait(40);
       
PlayTone(Mi,25); Wait(20);
       PlayTone(Fa, 5); Wait(20);
       PlayTone(Sol,25); Wait(20);
       PlayTone(Mi, 5); Wait(20);
       PlayTone(Sol,25); Wait(20);
       PlayTone(Mi, 5); Wait(20);
       PlayTone(Sol,35); Wait(40);

PlayTone(Fa,25); Wait(20);
       PlayTone(Sol,10); Wait(20);
       PlayTone(Ra, 5); Wait(20);
       PlayTone(Ra, 5); Wait(20);
       PlayTone(Sol,10); Wait(20);
       PlayTone(Fa, 5); Wait(20);
       PlayTone(Ra,35); Wait(40);

PlayTone(Sol,25); Wait(20);
       PlayTone(Do, 5); Wait(20);
       PlayTone(Re,10); Wait(20);
       PlayTone(Mi,10); Wait(20);
       PlayTone(Fa,10); Wait(20);
       PlayTone(Sol,10); Wait(20);
PlayTone(Ra,35); Wait(40);

   }   

}

task main() {

   SetSensor(SENSOR_1, SENSOR_TOUCH);
   start play_music ;    
   OnFwd(OUT_A+OUT_B);   
   until (SENSOR_1 == 1);
   stop play_music ;     
   Off(OUT_A+OUT_B);     

}


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-02-09 (水) 12:05:57