#contents
*課題 [#n450ff84]
半径1m以内にある懐中電灯を探して、懐中電灯にピンポン玉を当てるロボットを製作しなさい。 ただし、ピンポン玉を放つ距離は10〜30cmとする。 ロボット本体が懐中電灯に接触しない限りどこからピンポン玉を放ってもよい。
*ロボットの説明 [#dec4faa5]
&ref(./robo.jpg,140%,);
モーターは左右のタイヤと、ピンポン玉がどこかに転がってしまわないようにするためのアームに使いました。
まず最初に一回転して一番明るいところを探し、そして逆回転をして一番明るい方に向きアームを上げロボットを前に進ませピンポン玉を転がすように作りました。
*プログラムの説明 [#p47e4f24]
**定義文 [#o75afc22]
#define TURN_TIME 540//一回転する時間
#define up OnRev(OUT_B);Wait(15);Off(OUT_B);//アームを上げる
**作成したプログラム [#j670c33a]
task main(){
SetSensor(SENSOR_2, SENSOR_LIGHT);
light_max = 0;
time_max = 0;
OnFwd(OUT_A);//右回り
OnRev(OUT_C);
///lightセンサーが最大になる時の値、及び時間決定///
ClearTimer(0);//タイマーを初期化
while (FastTimer(0) <= TURN_TIME) {//一回転して一番明るいところを探す
if (SENSOR_2 > light_max){
light_max=SENSOR_2;//SENSOR_2の値が現在のlight_maxより大きい
time_max=FastTimer(0);//SENSOR_2が最大の時の時間を記録
}
}
//回転して//
if (time_max <= TURN_TIME) {
OnRev(OUT_A);//左に回る
OnFwd(OUT_C);
Wait(TURN_TIME-time_max);
}
//シュート//
up;
OnFwd(OUT_AC);
Wait(100);
Off(OUT_AC);
}
*ロボットの進み方 [#g9dfa570]
まず一番明るいところを見つけるために一周と少し回転させます。その後一番明るいところまで逆回転をします。そしてピンポン玉をおさえていたアームを上げてロボットを進ませます。
*問題点 [#e672e3e1]
�.蹈椒奪箸�ちょうど一周まわらなく一番明るいところと少しずれる。
*解決法 [#sbbb3428]
�‐�し余分に一周まわしてから逆回転をしてとちょうどよく一番明るいところに進ませる。
*まとめ・感想 [#u8e530e5]
わからないところは友達に相談をするなどして頑張ってプログラムを完成させました。