◇課題3『光を追いかけるロボット』

  1. 光源を見失った時には曲を演奏しながらぐるっと旋回して光源を探す
  2. 光源を見失った時には明るさに比例した周波数の音を出しながら旋回して光源を探す
  3. 光源を見失っていないときにはある曲を演奏し、見失った時には別の曲を演奏しながら光源を探す
  4. 上記のいずれかに『光源に近づき過ぎると停止する』という機能を追加する

プログラム

制作者/takumi&kaz
#define turn_right OnFwd(OUT_A);OnRev(OUT_C);
#define turn_left OnFwd(OUT_C);OnRev(OUT_A);
#define go_straight OnFwd(OUT_A+OUT_C)
#define light 50
#define Sol 392
#define Do 523
#define Re 587
#define Mi 659
task play_music() //学校のチャイム
{
   while (true)
    {
     PlayTone(Do,50);Wait(35);
     PlayTone(Mi,50);Wait(35);
     PlayTone(Re,50);Wait(35);
     PlayTone(Sol,80);Wait(70);
     
     PlayTone(Do,50);Wait(35);
     PlayTone(Re,50);Wait(35);
     PlayTone(Mi,50);Wait(35);
     PlayTone(Do,80);Wait(70);
     
     PlayTone(Mi,50);Wait(35);
     PlayTone(Do,50);Wait(35);
     PlayTone(Re,50);Wait(35);
     PlayTone(Sol,80);Wait(70);
     
     PlayTone(Sol,50);Wait(35);
     PlayTone(Re,50);Wait(35);
     PlayTone(Mi,50);Wait(35);
     PlayTone(Do,80);Wait(70);
    }
}
task main(){
int max_right,time_max;
	SetSensor(SENSOR_1,SENSOR_LIGHT);//センサー1を光センサーと定義
	SetSensor(SENSOR_3,SENSOR_LIGHT);//センサ−3を光センサーと定義
	 while(true){
		if(SENSOR_1>light&&SENSOR_3<light){ //左側のセンサーが反応
  turn_left; //左回転  
  Wait(10);
 }
	 if(SENSOR_1<light&&SENSOR_3>light){	//右側のセンサーが反応
  turn_right; //右回転        
  Wait(10);
 }
	 if(SENSOR_1<light&&SENSOR_3<light){ //両方のセンサーが反応しない
	 start play_music; //音楽スタート
 while(SENSOR_1<light||SENSOR_3<light){//両方のセンサーが反応するまで…
  turn_left //左回転       
  Wait(10);	
	  until(SENSOR_1>light||SENSOR_3>light);
	 stop play_music; //音楽ストップ    		
 }
 }
	 if(SENSOR_1>light&&SENSOR_3>light){ //両方のセンサーが反応
	 go_straight;	//直進
 }
 }
 }

苦労した点とその解決

先生のプログラムをあまり参考にしなかったところ、始めは何をしたらよいかわからなく、途方に暮れていましたが、昔のグループの「タッチセンサーの光版と考えれば…」という記述を見て、そのように制作してみたところ、結構上手に完成しました。 次に苦労したのは、光を探している間、曲が流れるところで、なかなか上手くいかなかったけれど、「start play_music」と「stop play_music」の位置を変えているうちになんとか解決。どうやらストップの位置が悪かったようだ。

工夫した点

  • ロボット自体にはあまり時間をかけずにシンプルにしました。
  • 光センサーを正面につけることで反応しやすくしました。
  • プログラム マクロをたくさん使ってスッキリさせました。
  • 光センサーと音楽のプログラムを別々に作って最後に合体させた。
  • また音楽はほかのグループとかぶらないように学校のチャイムの音にしました。音階は以外に単純だったのですぐにできた。
  • 先生のプログラムを使用しないで、独力で作り上げました。

どんなロボットか

外見はこのように今までで一番シンプルです。
R0011388.JPG
スイッチ....
R0011395.JPG

オン!!

R0011397.JPG

↑上の写真で赤く光ったところが光センサーです。

そして下の画像のように光(懐中電灯など..)に反応してカエルの合唱の唄を歌いながら光を追いかけるように動きます。
R0011391-3.JPG

反省/感想

  • 反省点はみんな光を追うプログラムの作り方が説明を聞いてもあまりわからなかったことです。また作っても動かなかったりグルグル回ったりという感じでした。
  • またたまに光に反応しないことがあった。
  • 感想は一番最後の課題であり、また前とはタイプが異なっていたので非常に大変だった。
  • ロボットは特に問題はなかったが、光を追うプログラムの方に手こずった。音楽のプログラムは思いのほか簡単だったが光のプログラムと合体させるは大変だった。三人ともプログラムの方は苦手だったので協力して完成までこぎつけた。
  • 光の強弱に反応して動く様子は何かぎこちなかったけどおもしろかった。
  • 次はロボコンなのでそれまでにはプログラムを極めたいと思う。

コメントをどうぞ

  • ロボコンではプログラムもかなり複雑になると思いますので、がんばってください。 -- ゆき(TA)? 2006-07-07 (金) 17:01:15
  • 教員の説明がわかりづらい時には、遠慮しないでどしどし質問してください。 -- 松本(教員)? 2006-07-11 (火) 14:27:03


添付ファイル: fileR0011391-3.JPG 166件 [詳細] fileR0011397.JPG 178件 [詳細] fileR0011395.JPG 168件 [詳細] fileR0011388.JPG 165件 [詳細]

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