ロボティクス入門ゼミ

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

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

task main()
{
   OnFwd(OUT_A+OUT_C); Wait(030);
   Off(OUT_A); Wait(070);  
   OnRev(OUT_A); Off(OUT_C); Wait(070);
   OnRev(OUT_C); Wait(030);
   Off(OUT_A+OUT_C);
}

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

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

task main()
{
   SetSensor(SENSOR_1,SENSOR_TOUCH);
   SetSensor(SENSOR_3,SENSOR_TOUCH);
   OnFwd(OUT_A+OUT_C);
   repeat(10)
    {
       until(SENSOR_1==0); 
       OnRev(OUT_A+OUT_C);Wait(50);
       OnFwd(OUT_A);OnRev(OUT_C);Wait(50);
       OnRev(OUT_A+OUT_C);
       until(SENSOR_3==0);
       OnFwd(OUT_A+OUT_C);Wait(50);
       OnFwd(OUT_A);OnRev(OUT_C);Wait(50);
       OnFwd(OUT_A+OUT_C);
    }
   Off(OUT_A+OUT_C);
}

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

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

task main()
{
   SetSensor(SENSOR_1,SENSOR_LIGHT);
   OnFwd(OUT_A+OUT_C);
   while(true)
    {
      if(SENSOR_1<40)
      {
      OnFwd(OUT_A+OUT_C);
      }else{
       ClearTimer(0);
        OnRev(OUT_A);OnFwd(OUT_C);until((SENSOR_1<40)||(Timer(0)>2));
       if(Timer(0)>2)
       {
        OnFwd(OUT_A);OnRev(OUT_C);until(SENSOR_1<40);
       }
      }
    }
}

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

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

task main()
{
   SetSensor(SENSOR_2,SENSOR_LIGHT);
  
   while(true)
   {
     OnFwd(OUT_A);until(SENSOR_2<40);
     OnRev(OUT_A);until(SENSOR_2>40);
   }
}

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

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

#define Re  587
#define RE 622
#define Fa  698
#define So 784
task play_music()
{
    while (true)
    {
        PlayTone(So,10); Wait(20);
        PlayTone(So,10); Wait(20);
        PlayTone(So,10); Wait(20);
        PlayTone(RE,80); Wait(80);
        PlayTone(Fa,10); Wait(20);
        PlayTone(Fa,10); Wait(20);
        PlayTone(Fa,10); Wait(20);
        PlayTone(Re,80); Wait(80);
        Wait(20);
    }
}
task main()
{
    SetSensor(SENSOR_1, SENSOR_TOUCH);
    OnFwd(OUT_A+OUT_C);until (SENSOR_1 == 1);
    start play_music ;
    Off(OUT_A+OUT_C);
}

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

7. その他(自由)

(1) 他のロボットとの通信

task main()
{
  while(true)
  {
    ClearMessage();
    until (Message() != 0); 
    if (Message()==1) 
      {
       PlaySound(SOUND_UP) ; Wait(150);
       SendMessage(2); Wait(500);
      }
    if (Message()==3) 
      {
       PlaySound(SOUND_LOW_BEEP) ; Wait(150);
       SendMessage(4); Wait(500);
      }
  }
}

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-01-13 (木) 17:57:20 (5335d)