[[2007a/A2/課題3右]] **課題3の1 [#xc67549c] 担当:いっせー 『全方向から懐中電灯の方向を探しだし、懐中電灯に向けてブロックを投げる。懐中電灯は動かさない。』という課題にそったプログラムを作成した。 ***実際のプログラム [#gb214d20] #define THRESHOLD 65 //光の強さの境界を65に設定 #define RUN_TIME50 //今回は使用しない sub straight() //前進するためのプログラム。今回は使用しない { OnFwd(OUT_A); Wait(23); Off(OUT_A); OnRev(OUT_A); Wait(12); Off(OUT_A); } sub throw() //モノを投げるためのプログラム { Off(OUT_A); OnRev(OUT_C); Wait(20); Off(OUT_C); } task main () //課題1をこなすためのプログラム { SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1を光センサーに設定 SetSensor(SENSOR_3,SENSOR_LIGHT); //センサー3を光センサーに設定 while((SENSOR_1<THRESHOLD)&&(SENSOR_3<THRESHOLD)){ //両方のセンサーが反応なしの時 OnRev(OUT_A); //旋回 } while(SENSOR_1>=THRESHOLD) { //センサー1が反応したとき Off(OUT_A); OnFwd(OUT_A); Wait(20); //向きを調節。少し右を向く throw(); //投げる } while(SENSOR_3>=THRESHOLD){ //センサー3が反応した時 Off(OUT_A); OnRev(OUT_A); Wait(10); //向きを調節。少し左を向く throw(); //投げる } while((SENSOR_1>=THRESHOLD)&&(SENSOR_3>=THRESHOLD)) { //両方のセンサーが反応したとき Off(OUT_A); throw(); //投げる } } ***工夫点 [#eaf640f9] ●今後の作課題を楽にするためサブルーチンを積極的に活用した。 ***苦労した点 [#n3780b2d] ●この段階では特になし。 ***改善点 [#p4e59e23] ●光が当たっても、反応しない時がある。旋回速度が早すぎるのだろうか? ●他の班をみていると関数や変数(?)を使用しているところがある。研究して利用してみたい。 ***感想 [#e7a67eee] ●とりあえず課題はこなせた。時間があったらさらに高度なプログラムに挑戦したい。