[[2011a]] [[2011a/A6/課題4右]] *目次 [#bd2a7c43] #contents *課題4の内容 [#cdce30da] サッカーゲーム!! ディフェンス(空缶)をどける→テニスボールをゴールにシュートする。 ちなみにうちの班はロボットは一体だけ。 *メンバー紹介 [#q0b1cee9] Ku☆ra 様&keisuke&イーノック&mika *ロボット [#ydfa2d62] お名前: **本体 [#a4eb62f5] **アーム部分 [#fd4a55bf] ** タッチセンサー部分[#mc1c6d38] *プログラミング [#ffd0862f] #define THRESHOLD 40 #define RUN_TIME 10 #define BALL_CATCH 1 #define END_CATCH 2 #define Turn_R(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);Off(OUT_A+OUT_C); #define Turn_L(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);Off(OUT_A+OUT_C); #define GO_ST(t) OnRev(OUT_A+OUT_C); task main() { SetSensor(SENSOR_3, SENSOR_TOUCH); SetSensor(SENSOR_2, SENSOR_LIGHT); SetSensor(SENSOR_1, SENSOR_LIGHT); OnFwd(OUT_A+OUT_C);Wait(100);Off(OUT_A+OUT_C); while(SENSOR_3 == 0) { if (SENSOR_1 > THRESHOLD && SENSOR_2 > THRESHOLD) {OnFwd(OUT_A);} else if(SENSOR_1 < THRESHOLD && SENSOR_2 > THRESHOLD) {OnFwd(OUT_C);Off(OUT_A);} else if(SENSOR_1 > THRESHOLD && SENSOR_2 < THRESHOLD) {OnFwd(OUT_A);Off(OUT_C);} else if (SENSOR_1 > THRESHOLD && SENSOR_2 > THRESHOLD) {OnFwd(OUT_A+OUT_C);} } Off(OUT_A+OUT_C); SendMessage(BALL_CATCH); ClearMessage(); until (Message() == END_CATCH); OnRev(OUT_A+OUT_C);Wait(200); Off(OUT_A+OUT_C); Turn_L(60); Wait(50); OnRev(OUT_A+OUT_C);Wait(120); Off(OUT_A+OUT_C); Wait(50); Turn_R(60); Wait(50); GO_ST(100); Wait(50); Turn_L(20); GO_ST(30); Turn_R(20); repeat(3){ OnFwd(OUT_B);Wait(70); Off(OUT_B); OnRev(OUT_B);Wait(70); Turn_R(30); Turn_L(30); GO_ST(30;) OnFwd(OUT_A+OUT_C);Wait(30); Off(OUT_C+OUT_A); Wait(100); } #define THRESHOLD 40 #define RUN_TIME 40 #define BALL_CATCH 1 #define END_CATCH 2 #define Turn_R(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);Off(OUT_A+OUT_C); #define Turn_L(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);Off(OUT_A+OUT_C); #define GO_ST(t) OnRev(OUT_A+OUT_C); task main () { ClearMessage(); until (Message() == BALL_CATCH); PlaySound(SOUND_UP); OnFwd(OUT_C);Wait(100);Off(OUT_C);//台座を下ろす OnFwd(OUT_B);Wait(460);Off(OUT_B);//アームを出す OnFwd(OUT_A);Wait(350);Off(OUT_A); //ハンド下ろす OnRev(OUT_B);Wait(180); OnRev(OUT_A);Wait(60);//アームを引く Off(OUT_B+OUT_A); OnFwd(OUT_B);Wait(200);Off(OUT_B); OnRev(OUT_C);Wait(120);Off(OUT_C);//台座を上げる OnRev(OUT_A);Wait(250);Off(OUT_A); OnRev(OUT_B);Wait(150);Off(OUT_B); SendMessage(END_CATCH); } } *工夫した点&苦労した点。 [#uc4a038d] *感想&反省 [#gcc055a8] **Ku☆ra 様 [#r4b4685a] **keisuke [#acc439ec] **イーノック [#bfe9c41e] **mika [#yd2b4992] 最終課題。 *コメントどーぞ [#sc22266c] #comment