[[2005/A5]] *課題4 &color(green){光を追いかけるロボット}; [#oa6a3ff5] 製作者:SAS そーむ 巻き舌宇宙 製作日:12/12 ロボット名:ブロッケン翁 ver.L &ref(NEC_0039.JPG,nolink); &ref(NEC_0040.JPG,nolink);~ ↑何かいい感じに写真撮れたなぁ こういうのレンズフレアっていうんだっけ?~ &ref(NEC_0041.JPG,nolink); &ref(NEC_0042.JPG,nolink); &ref(NEC_0043.jpg,nolink);~ &size(18){&color(red){''可動するセンサーヘッド!!''};};(手動だけど…)~ あ、動画も置いといたんで見てやって下せえ &size(25){[[''これ'':http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&pcmd=open&file=%A5%D6%A5%ED%A5%C3%A5%B1%A5%F3%B2%A7%A1%A1ver.L.wmv&refer=2005%2FA5%2F%B2%DD%C2%EA%A3%B4%BA%B8]]};←さぁ今すぐクリックだ! **プログラム [#y2320f88] 製作者:巻き舌宇宙 製作日:1/5 #define front OnFwd(OUT_A+OUT_C); //前進するマクロ #define turn_r OnFwd(OUT_A);OnRev(OUT_C); //右旋回のマクロ #define turn_l OnFwd(OUT_C);OnRev(OUT_A); //左旋回のマクロ int max; int time; task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); //センサー1,2 SetSensor(SENSOR_3,SENSOR_LIGHT); //の定義 SetPower(OUT_A+OUT_C,1); //トルク設定 max=SENSOR_1; //センサー1が最大 time=Timer(0); //timeをタイマー0に設定 ClearTimer(0); //タイマーをクリアー while(Timer(0)<=12) //12秒間 { turn_r //右旋回 if(SENSOR_1>max) //センサー1が最大値 { //以上なら ClearTimer(1); //タイマー1を消去 max=SENSOR_1; //最大値を更新 } else //そうでなければ { max=max; //最大値はそのまま time=Timer(1); //timeをタイマー1に } } ClearTimer(1); //タイマー1を消去 while(Timer(1)<=time) //timeまで {turn_l} //左旋回 while(true) // { front //最大値-20より while((SENSOR_1>=max-20)&&(SENSOR_3>=max-20)); //明るければ前進 if((SENSOR_1<max-15)&&(SENSOR_3>=max-15)) //左が暗くなったら { turn_r //両方明るくなる until((SENSOR_1>=max-15)&&(SENSOR_3>=max-15));//まで右旋回 } if((SENSOR_1>=max-15)&&(SENSOR_3<max-15)) //右が暗くなったら { turn_l //両方明るくなる until((SENSOR_1>=max-15)&&(SENSOR_3>=max-15));//まで左旋回 } if((SENSOR_1<max-15)&&(SENSOR_3<max-15)) //両方暗いなら { turn_l //両方明るくなる until((SENSOR_1>=max-15)&&(SENSOR_3>=max-15)); //まで左旋回 } } } * 反省など [#ka88abb7] ロボット自体は一瞬で出来上がってしまった。・・・が!プログラムがどう頑張っても進まなかった。 結局完成したもロボも大して反応してくれずに何回かに一回はただただくるくる回る始末。残念! ただ動画を見ればとりあえず光を追うロボットに仕上がっていることがわかっていただけるかな。 **不特定多数から物申されよう!のコーナー [#t2fe8b09] コメントをどうぞ! #comment