[[2006a/B5]]
*光を追いかけるロボット [#ve18c0e1]
**機体 [#od4554f1]
今回は前回の機体をベースに、前のほうに光センサーを取り付けました。ただ、光をこまめに動かして、機体がちょこまか動くと、後輪が外れてしまうことがあります。

余談:今回は光センサーの都合上、毎回恒例の鼻はつけれませんでした(笑)。

#ref(2006a/B5/課題3左/D1000020.JPG)

**プログラム [#p7279669]
今回は光を探すときに音楽を流すパターンと、光の強さにあわせて音の高さが変化するパターンを作りました。

-音楽を流すパターン

編集中

-音程を変えるパターン
 int light_max=0,time_max=0,To=440+SENSOR_1*5; //光を追うための値を定義します。
                                                 音の高さは基準の値に光センサーの
                                                 感知している値に5をかけた値を足すように設定します。
 #define TURN_TIME 360 //旋回時間を定義します。
 task play_music() //音楽を流すプログラムです。
 {
  SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1を光センサーに設定します。
  while (true)
     {
         PlayTone(To,5); Wait(10); //先ほど定義した高さの音を流します。
                                    長さを短くすることでこまめに音の高さを変化させます。 
       }
  }
 task main()
 {
    SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1を光センサーに設定します。
    ClearTimer(0); //タイマーを初期化します。
    OnFwd(OUT_A);OnRev(OUT_C); //旋回します。
    start play_music; //音楽を流します。
    while(FastTimer(0)<TURN_TIME){ //旋回している間の行動を定めます。
       if(SENSOR_1>light_max){ //センサーの値がlight_maxより高いときのことを定めます。
          light_max=SENSOR_1; //センサー1の値をlight_maxに設定します。
          time_max=FastTimer(0); //この時間をtime_maxに設定します。
          }
    }
    Off(OUT_A+OUT_C); //停止します。
    stop play_music; //音楽をとめます。
    Wait(100); //1秒間静止します。
    OnFwd(OUT_C);OnRev(OUT_A); //さっきと反対周りに旋回します。
    Wait(TURN_TIME-time_max); //先ほどまでの旋回時間から最も光の強かったところまでの
                 時間を引いただけ旋回します。
    Off(OUT_A+OUT_C); //止まります。
    while(true){ //光を追尾する行動を設定します。
       if(SENSOR_1>=light_max){ //センサー1がlight_maxより大きいか、同じときの行動を設定します。
          OnFwd(OUT_A+OUT_C); //前進します。
       }else{ //光を見失ったときの行動を設定します。
          start play_music; //音楽を流します。
          OnFwd(OUT_A);OnRev(OUT_C); //旋回します。
          until(SENSOR_1>=light_max); //光を見つけるまで続けます。
          stop play_music; //音楽を止めます。
          }
       }
    }

**工夫した点 [#j417a65b]
二つのプログラムの光を探す部分のプログラムを共通のものにすることで、作業を簡略化しました。

**苦労した点 [#n89abfa9]
最後の、光を探すプログラムが少し手こずりました。二つ目の音程を変えるのもはっきりした違いが分かりずらくて大変でした。

**反省・感想 [#p0a94df1]
今回はみんなで集まってやることができたのでよかったです。機体のほうにはあまり工夫を凝らすかとができなかったので残念でした。

**コメント [#x7e8d218]
何かあったらお願いします。

#comment


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