#contents *目標 [#e227aa1a] 半径1m以内にある懐中電灯を探して、懐中電灯にピンポン玉を当てるロボットを製作。 *ロボット本体 [#lfcf5fe1] 課題2とほぼ同じ。[[課題2ロボット:http://yakushi.shinshu-u.ac.jp/robotics/?2015a%2FMember%2Fshuwachan%2FMission2#l5d3a1be]] 変更点はライントレーサーの向き。 &ref(IMG_0607.JPG); *プログラム [#g973589c] **定義 [#j3a73b79] 旋回のみ。 #define turn_left OnFwd(OUT_C);OnRev(OUT_A)// 左旋回 #define turn_right OnFwd(OUT_A);OnRev(OUT_C)// 右旋回 **プログラム [#q7e1d0ea] 360度以上回転して明るさの最大値を探し、その方向を向く。そして、ボールをシュートする。 task main() { SetSensor(SENSOR_3,SENSOR_LIGHT); int lightsensor=0; // ライトセンサーの値を入力 int d_max=0; // 最大値までの時間を入力 ClearTimer(0); // タイマーをリセット turn_left; //旋回始め while (FastTimer(0) < 330) { // 設定した秒数旋回する if (SENSOR_3 > lightsensor){ // 明るさの最大値を探す lightsensor=SENSOR_3; d_max=FastTimer(0); } } Off(OUT_AC);Wait(100); turn_right; // スタート位置に戻る Wait(330); Off(OUT_AC); turn_left; Wait(d_max); // スタート位置から最大値までの秒数分、旋回 Off(OUT_AC); OnRev(OUT_B); Wait(90); // アームを開く Off(OUT_B); OnFwd(OUT_AC); Wait(50); // ボールをシュート OnRev(OUT_AC); Wait(50); Off(OUT_AC); } *考察・感想 [#q423d21b] 今回の課題は前回のロボットをほぼそのまま使えたので良かった。ラインをトレースするだけでなく光に向かって走行できることがわかった。最大値を探すということはいいアイディアだと思った。