2004/B4

目次

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

ユースケ&コタジマ
task main()
  {
 OnFwd(OUT_A);
   Wait(360);
 OnFwd(OUT_C);
   Wait(120);
 OnFwd(OUT_A); 
 OnRev(OUT_C);
   Wait(80);  
 OnFwd(OUT_C);
   Wait(120);
 Off(OUT_C);
   Wait(360);
 Off(OUT_A+OUT_C);
   }

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

作成中

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

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

高橋 さとし様
#define THRESHOLD 40   // 閾値
#define RUN_TIME 150   // トレースする時間(単位 1/10 秒)
task main ()
{
    SetSensor(SENSOR_1, SENSOR_LIGHT);

    ClearTimer(0);                    // Timer(0) をリセット

    while ( Timer(0) <= RUN_TIME ) {  // タイマー0がRUN_TIME以下の時に繰り返す
        if (SENSOR_1 < THRESHOLD) {   // 黒線上にいるとき
            OnFwd(OUT_A);
            Off(OUT_C);
        } else {                      // 黒線から外れたとき
            Off(OUT_A);
            OnFwd(OUT_C);
        }
    }
}


しゅうへい作
未完成

task main(){
  int flag;
  SetSensor(SENSOR_2, SENSOR_LIGHT);
 

  while(1){ //黒い線の上にいるあいだは前進する。
    OnFwd(OUT_A+OUT_C);
    until(SENSOR_2 > 52);
    Off(OUT_A+OUT_C);
  }

  ClearTimer(0);
  flag = 0;

  while((200 - Timer(0)) > 0){ //右に旋回しながら黒い線を探す
    OnFwd(OUT_A);
    until(SENSOR_2 < 40);
  }
    
  Off(OUT_A+OUT_C);
    
  if(Timer(0) < 200){ //黒い線の上に居るときはflag=1にする
    flag = 1;
  }


  while((600 - Timer(0)) > 0){ //左に旋回しながら黒い線を探す
    if(flag == 1){ //既に黒い線の上にいる場合(flag==1),ループを抜ける
      break;
    }

    OnFwd(OUT_C);
    until(SENSOR_2 < 40);
  }
}

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

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

アグン 未完成
#define LIGHT 0
#define POINT 0
sub turn_left ()
{
 OnFwd (OUT_A); 
}
sub move_foward ()
{
OnRev (OUT_A);
}
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
while (true)
{
 move_foward (); Wait (200);
 ClearTimer(0);
 turn_left (); Wait (1200);
 if (SENSOR_1 > LIGHT)
 {
  LIGHT == SENSOR_1;
  POINT == Timer (0);
 } 
 turn_left (); Wait (POINT);
}
}

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

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

高橋サトシ様様
#define Do  523
#define Re  587
#define Mi  659
#define Fa  698
#define Sol 784

task play_music()   // 音楽を演奏するタスク
{
    while (true)
    {
        PlayTone(Do,50); Wait(55);  // Wait の時間の方を少し長くして
        PlayTone(Mi, 50); Wait(55);  // 同じ音を続けて鳴らす場合にも
        PlayTone(Fa,50); Wait(55);  // 一つの音にならないようにしている
        PlayTone(Sol,50); Wait(55);

        PlayTone(Do,50); Wait(55);  // Wait の時間の方を少し長くして
        PlayTone(Mi, 50); Wait(55);  // 同じ音を続けて鳴らす場合にも
        PlayTone(Fa,50); Wait(55);  // 一つの音にならないようにしている
        PlayTone(Sol,50); Wait(55);
PlayTone(Do,50); Wait(55);  // Wait の時間の方を少し長くして
        PlayTone(Mi, 50); Wait(55);  // 同じ音を続けて鳴らす場合にも
        PlayTone(Fa,50); Wait(55);  // 一つの音にならないようにしている
        PlayTone(Sol,50); Wait(55);

PlayTone(Mi,50); Wait(55);
PlayTone(Do,50);Wait(55);
        
        PlayTone(Mi,50); Wait(55);
PlayTone(Re,50); Wait(55);

        
        PlayTone(Mi,30); Wait(35);
        PlayTone(Mi,30); Wait(35);

        PlayTone(Re,50); Wait(55);
        PlayTone(Do,70); Wait(80);
        PlayTone(Do,30); Wait(35);

        PlayTone(Mi,30); Wait(35);
        PlayTone(Sol,50); Wait(55);
        PlayTone(Sol,50); Wait(55);
        PlayTone(Fa,70); Wait(80);

        PlayTone(Mi,50); Wait(55);
        PlayTone(Fa,50); Wait(55);
        PlayTone(Sol,50); Wait(55);

        PlayTone(Mi,50); Wait(55);
        PlayTone(Do,50); Wait(55);
        PlayTone(Re,50); Wait(55);
        PlayTone(Do, 50); Wait(55);

       
    }
}

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);     // 動きも停止
}

6. 二足歩行ロボット(自由)

作成中

7. ★型を描くロボット(自由課題)

作成中

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2004-12-17 (金) 18:06:26