[[2010a]] *課題 [#q40116a3] ***構想 [#p91f2cce] **発射方法 [#tf97038f] &ref(P1010042.JPG); &ref(P1010044.JPG); **ロボット [#g494c040] &ref(P1010044.JPG); &ref(P1010045.JPG); &ref(P1010046.JPG); **完成したロボット [#j7aec092] &ref(P1010047.JPG); &ref(P1010048.JPG); **その他工夫したところ [#f26bb74c] ***土台 [#f1fcb863] &ref(robo 土台.jpg); ***光センサー [#e7d106fd] &ref(P1010049.JPG); &ref(robo 光.jpg); **問題点 [#b983e2b3] **使用した懐中電灯 [#e7c1e595] *プログラム [#me17f1a5] **YUのプログラム(課題2) [#e955dfe2] #define LL 45 //光量の最低値を45に設定 #define LH 60 //最大値を60に設定 #define TURN_TIME 10 //すばやく光を追う。 弾を発射、3発連射 void ranch (){ PlaySound(SOUND_UP) ; PlaySound(SOUND_UP); Wait(150);// ピロピロ〜と高い音で合図をする。 OnFwd(OUT_B); Wait(19); Off(OUT_B); PlaySound(SOUND_CLICK); OnFwd(OUT_B); Wait(19); Off(OUT_B); PlaySound(SOUND_CLICK); OnFwd(OUT_B); Wait(19); Off(OUT_B); PlaySound(SOUND_CLICK); } 左にライトが動いたとき void turn_left(){ OnRev(OUT_C); OnFwd(OUT_A); Wait(TURN_TIME); Off(OUT_A+OUT_C); } 右にライトが動いたとき void turn_right(){ OnFwd(OUT_C); OnRev(OUT_A); Wait(TURN_TIME); Off(OUT_A+OUT_C); } task main(){ SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_LIGHT); while(true){ if((SENSOR_3>LL)&&(SENSOR_1>LL)){ //ライトが前にあるなら OnFwd(OUT_A+OUT_C);Wait(30); //前進する } else if((SENSOR_1>LL)&&(SENSOR_3<LL)){ //右に移動したら turn_right();} //右折す else if((SENSOR_1<LL)&&(SENSOR_3>LL)){ //左に移動したら turn_left();} //左折する else if((SENSOR_1>LH)&&(SENSOR_3>LH)){ //ある程度近づいたら Off(OUT_A);Wait(400);} //ライトが動かないことを確認 else if((SENSOR_1>LH)&&(SENSOR_3>LH)){ //動いていなければ ranch (); break;} //弾を発射する } Off(OUT_A+OUT_C); } ***問題点 [#x0cc2ec0] ***工夫したところ [#md59c81a] **HIDAKAのプログラム (課題1) [#a754246c] #define shot(t) OnFwd(OUT_B);Wait(t);Off(OUT_B); #define sTop(T) Off(OUT_A+OUT_C);Wait(T); sub turn_right() {OnFwd(OUT_A);OnRev(OUT_C);} task main(){ SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_LIGHT); C=0; while(true) { turn_right(); until(SENSOR_3 > 40); sTop(100) turn_right(); until(SENSOR_1 > 40); sTop(100) shot(42) turn_right(); Wait(50); } } ***問題点[#qb36e301] ***工夫したところ [#r88c28b2] *コメント [#u1600bd5] コメントをどうぞ! #comment