&size(40){ロボット課題3}; #contents *設計 [#gbe63518] **車体 [#p3f5477d] #ref(CIMG0938.JPG) ↑↑全体~ 写真中央にあるのが発射台です。~ 左上の青いブロックが光センサーで懐中電灯の光を感知します。~ #ref(CIMG0939.JPG) ↑↑RCX #ref(CIMG0940.JPG) ↑↑ギアの取り付け部分(後ろ側より) #ref(CIMG0941.JPG) ↑↑ギアの取り付け部分(前側より)~ #ref(003.jpg) ↑↑光センサーです。~ ~ 中立な稲妻のこだわりでオリジナルにこだわりました。~ 結構大きいものになりました。~ 見た目で感じてもらえると思います!!~ *プログラム [#qc3c2d87] **1.懐中電灯に向かって投げる [#ee210217] #define TURN_TIME 400 //1周の時間を設定 #define throw OnFwd(OUT_A);Wait(1);Off(OUT_A); //投げるときの定義 task main () { SetSensor(SENSOR_1,SENSOR_LIGHT); // センサ−1をライトセンサーと設定 SetPower(OUT_C,2); //モーターCの出力を制限 int light_max=0; //光の最大値 int t_max=0; //最大値のときの時間 ClearTimer(0); //タイマーを0にして OnFwd(OUT_C); //探し始めます while(FastTimer(0)<TURN_TIME){ //回っている間 if(SENSOR_1>light_max) //最大値の光を見つけたら { light_max=SENSOR_1; //最大値の光と設定 t_max=FastTimer(0); //タイマーを入れる } } Off(OUT_C); Wait(50); OnFwd(OUT_C); Wait(t_max); //最大値の光までまわる Off(OUT_C); throw //投げる } 作成者:竹 **2.懐中電灯に近づいて投げる [#r1be70c8] #define TURN_TIME 400 // 1周の時間を設定 #define throw OnFwd(OUT_A);Wait(1);Off(OUT_A); // 投げるときの定義 #define straight Off(OUT_C);Wait(10);OnFwd(OUT_C);Wait(20);OnRev(OUT_C);Wait(20); // 近づくときの定義 task main () { SetSensor(SENSOR_1,SENSOR_LIGHT); // センサ−1をライトセンサーと設定 SetPower(OUT_C,2); //モーターCの出力を制限 int light_max=0; //光の最大値 int t_max=0; //最大値のときの時間 ClearTimer(0); //タイマーを0にして OnFwd(OUT_C); //探し始めます while(FastTimer(0)<TURN_TIME){ //1周しているとき if(SENSOR_1>light_max){ //最大値の光にあったら light_max=SENSOR_1; //最大値の光と設定 t_max=FastTimer(0); //最大値の光のところまでの時間をはかる } } Off(OUT_C); Wait(50); OnFwd(OUT_C); Wait(t_max); //最大値の光まで回って Off(OUT_C); straight //近づいて throw //投げる } 作成者:中立な稲妻 *感想 [#vf513274] **竹 [#udfb96b2] 前回の課題よりは難しくなかったですが、タイマーを使ったプログラムは初めてだったのでちょっと大変でした。 また移動させるためのモーター一つというのも難しい課題でした。 **中立な稲妻 [#rc28ad64] *コメント [#s84efe2d] お願いします。 #comment