- 追加された行はこの色です。
- 削除された行はこの色です。
[[2006b/A6/L Room]]
#contents
*課題3 光を追いかけるロボット[#lb25a669]
懐中電灯などの光源を用意する。まず明るさに比例した周波数の音を出しながら全方角の中から光源のある方角を探し、探した後は、光源の光を追いかけて進むロボットを作成
*ロボット [#qd848e4e]
#ref(2006b/A6/L Room/06-12-22_16-23.jpg,65%,あおP-Z 外観)
**工夫した点 [#m510eb38]
前輪の直径を後輪のより大きくしたことで、前につんのめらないようにした。これにより、多少高いところから光を照射してもしっかり光を捉えられるようにした。~
センサーを前方に突き出して、光を捉えやすいようにした。~
#ref(2006b/A6/課題3左/06-12-22_16-28.jpg,50%,あおP-Z センサー)
外観デザインにこだわった。愛くるしい(?)目が特徴!無駄なものと言えばそのとおりです...~
観デザインにこだわった。愛くるしい(?)目が特徴!無駄なものと言えばそのとおりです...~
#ref(2006b/A6/課題3左/06-12-22_16-24.jpg,50%,あおP-Z め)
**苦労した点 [#mb6e10ea]
**苦労した点 [#mb6e10ea]
基本的な形は前回の課題のものをそのまま引き継いだのだが、光センサーを1つにするか2つにするかで悩んだ。結局1つでいくことにした。~
*プログラム [#f99b2b13]
#define turn_time 420
task play_music()
{
SetSensor(SENSOR_1,SENSOR_LIGHT); //光センサーを設置
while (true)
{
PlayTone(10*SENSOR_1,10);Wait(7); //センサー1の値の10倍の周波数の音を奏でる
}
}
task main()
{
while(true)
{
int light_max=0,time_max; //明るさの最大値と時間を変数で定義
ClearTimer(0);
OnFwd(OUT_A);OnRev(OUT_C); //その場で回転し、光源の方向を確認
start play_music;
while(FastTimer(0)<turn_time)
{
if(SENSOR_1>light_max)
{
light_max=SENSOR_1;
time_max=FastTimer(0); //回転し始めた地点から光源確認までの時間(*)を計る
}
}
OnRev(OUT_A);OnFwd(OUT_C);
Wait(turn_time - time_max); //1回転の時間から(*)の時間を引いた分逆回転する⇒光源の方向を向く
stop play_music;
OnFwd(OUT_A+OUT_C);
Wait(300); //光源の方向へ走る
}
}
*プログラム2(たぶん失敗)byサエグサ [#a743d698]
int lightmax=0; //lightmaxを定義
int timemax=0; //timemaxを定義
#define turn_time 420 //turn_timeを420と定義
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
while(true)
{ ClearTimer(0); //タイマーをリセット
OnFwd(OUT_A);OnRev(OUT_B) //回転と電源探し
start Play_music;
while(FastTimer(0)<turn_time)
{
if(SENSOR_1>light_max)
{
light_max=SENSOR_1;
timemax=turn_time-FastTimer(0);
}
}
OnFwd(OUT_A+OUT_C);//光源の方向に走る
少し違うプログラムを作ってみました。でも、ロボットがないのでどんな動きをするか不明。前のプログラムよりも若干容量が軽くなったのでは?
**苦労した点 [#xcb0d2f5]
松本先生が最初に提示して下さったヒントのプログラムの意味を理解するだけでだいぶ時間がかかってしまった。~
**工夫した点 [#z9a02512]
音そのものにはあまりこだわらず、全体的にすっきりしたプログラムになるようにした。~
**反省・感想 [#u66dd822]
『明るさに比例した周波数の音』をどのように発生させるかということに見当もつかず、最終的には他のチームの考えをかなり参考にさせていただいた。~
今回の課題は年末に出され、提出期限が年明け早々だったので、実験する時間がなくめちゃめちゃキツかった・・・(´δ`;)~
毎回思うことだが、課題は早めに取り組んだ方がいいと思う。。。
この課題にから、難易度が一気に上がりましたね;もうついていくだけで一杯一杯でした・・・(いや、ついていけてたのだろうか@@;)
**リンク [#e768998a]
**意見など、こちらにお願い致します [#haed9116]
-
-光源を移動してもロボットが追従してくるようにプログラムを改良しましょう。 -- [[松本(教員)]] &new{2007-01-09 (火) 13:49:50};
-松本先生のコメントに対して返答いたします。現プログラムでも、光源の位置を移動しても旋回して移動した光源に向かって追従していきます。もっとなめらかにするとなると難しいです。 -- [[あおっぺ]] &new{2007-01-12 (金) 14:01:19};
-(光源を見失った時以外は)一回転して探さなくても光源に向かってくるようにプログラムを変更してみてください。 -- [[松本(教員)]] &new{2007-01-12 (金) 15:06:45};
#comment