[[2009b]] #contents *課題3 [#vc5171e0] ~ 懐中電灯に向かってブロックを投げるロボットを作ろう!~ *チーム [#jcf2f834] チーム名「 株式会社 とだ 」~ 社長:とだ~ 社員:なかみう~ *ロボット [#k8d080ba] *プログラム [#hb34a8d7] **とだのプログラム [#xeb637c4] **なかみうのプログラム [#rfb2a5d9] 今回は(も?)、頑張った。 2つのプログラムを考えた。 最初に考えたのはこちら。~ #define fo 300 #define ma 80 #define su 200 #define na 500 #define l_mini 60 #define l_max 85 int t = 0; task main () { SetSensor(SENSOR_1, SENSOR_LIGHT); SetSensor(SENSOR_3, SENSOR_LIGHT); while ( t < 1 ) { if (SENSOR_1 > l_mini && SENSOR_3 > l_mini ) { PlaySound(SOUND_CLICK); if(SENSOR_1 < l_max || SENSOR_3 < l_max) { OnRev(OUT_A); } else { until( SENSOR_1 >= l_max && SENSOR_3 >= l_max ); PlaySound(SOUND_DOUBLE_BEEP); Off(OUT_A); Wait(fo); t = t+1; } } else { OnRev(OUT_A); Wait(ma); OnFwd(OUT_A); Wait(su); } } Off(OUT_A); PlaySound(SOUND_FAST_UP); OnRev(OUT_C); Wait(na); Off(OUT_C); } ~ 文系な僕でしたが、数学の「場合分け」のように、ライトの明るさを中心に考えました。~ しかし、問題点が多く、~ - - - - など、山積みだった。~ そこで、M先生の助けをかり、~ もう一つのプログラムを考えた。~ #define time 700 task main() { int l_max = 0; int t_max = 0; SetSensor(SENSOR_1, SENSOR_LIGHT); ClearTimer(0); while(FastTimer(0) <= time){ OnRev(OUT_A); if(SENSOR_1 > l_max){ l_max = SENSOR_1; t_max = FastTimer(0); } } PlaySound(SOUND_DOUBLE_BEEP); OnRev(OUT_A); Wait(t_max); Off(OUT_A); if(SENSOR_1 < 100 ){ OnFwd(OUT_A); } else { Off(OUT_A); OnFwd(OUT_C); } Off(OUT_C); } *コメントのコーナー [#nd5b8867] コメントをどうぞ。 - ロボットの説明と、プログラムの説明の追加をお願いします。 -- [[こさか]] &new{2010-02-10 (水) 16:00:35}; - こさかさんと同じです。終わっていないと判断したため、採点しませんでした。レゴを返してしまって写真が難しいなら、図や説明でお願いします -- [[FI]] &new{2010-02-18 (木) 06:06:56}; #comment