半径1m以内にある懐中電灯を探して、 懐中電灯にピンポン玉を当てるロボットを製作する。
今回のロボは、課題2のロボをほぼそのままかつようした。光センサーのむきを下向きから、水平に変更しただけのため説明は省略する。 参照http://yakushi.shinshu-u.ac.jp/robotics/?2015a%2FMember%2Fshibamasa%2FMission2
ボールははじめから保持した状態でスタート。
#define UP OnRev(OUT_B);Wait(40);Off(OUT_B); //アームを上げる
#define shot go_forward;Wait(100); //シュート
task main(){
SetSensor(SENSOR_2,SENSOR_LIGHT);
int light_max=0; //最も明るいところの時間を記憶する変数 int time_max=0; //最も明るいところのセンサーの値を記憶する変数 ClearTimer(0); //タイマーリセット
while(FastTimer(0)<400){ //一回転する間
OnFwd(OUT_A); OnRev(OUT_C); //左旋回
if(SENSOR_2>light_max){ //明るさが最大の場合
light_max = SENSOR_2; //明るさの変数更新 time_max = FastTimer(0); //時間の変数更新
}
OnRev(OUT_A); //光の最大値を感じたところまで逆回転 OnFwd(OUT_C); //右旋回 Wait(400); //一時停止 Off(OUT_AC); UP; //アームを上げる shot; //車体でボールを押し、光源にシュート
}
}
今までの課題に比べ、比較的簡単で、プログラムも複雑には感じなかった。時間がないなかだったため、工夫を凝らすことが出来なかった。プログラムは過去の先輩のものを参考にし、理解することが出来た。今回のような時間のない中でもより良いものを作れなければいけないと感じた。精度を上げるという面では、機体の動くスピードを抑えるなどしたほうがよいと感じた。