- 追加された行はこの色です。
- 削除された行はこの色です。
[[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]
●とりあえず課題はこなせた。時間があったらさらに高度なプログラムに挑戦したい。
←戻る[[2007a/A2/課題3右/投げる装置]]
→進む[[2007a/A2/課題3右/プログラム2]]