[[2014a/Member]] *¼è¤êÁȤó¤À²ÝÂê¤ÎÀâÌÀ [#s4124420] ¡¡º£²ó¼è¤êÁȤó¤À²ÝÂê¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï&ref(http://yakushi.shinshu-u.ac.jp/robotics/?2014a%2FMission2);¤ò»²¾È *¥á¥ó¥Ð¡¼ [#l2d34f74] ¡¦tacchan ¡¦yukiyamaneko ¡¦monodoll ¡¦nari *Àïά [#g8622225] &ref(2014a/Member/tacchan/Mission2/2014a-mission2.png,70%); ¡¦¤³¤Î²ÝÂê¤ò°Ê²¼¤Î¼ê½ç¤Ç¹¶Î¬¤¹¤ë¤Ä¤â¤ê¤Ç¤¢¤Ã¤¿¡£ ¡¥³¥Ã¥×A¤ò¼è¤ê¤Ë°ÜÆ°¤·¥³¥Ã¥×¤Î¼±Ê̤ò¤¹¤ë¡£ ¢A¤¬¤¢¤Ã¤¿ÃÏÅÀ¤ò´ð½àÅÀ¤È¤·¼±Ê̤µ¤ì¤¿¥³¥Ã¥×¤òÆþ¤ì¤ë¾ì½ê¤Þ¤Ç°ÜÆ°¤·¥¢¡¼¥à¤ò²¼¤í¤¹¡£ £AÃÏÅÀ¤Þ¤ÇÌá¤ê¼¡¤Î¥³¥Ã¥×¤ò¼è¤ê¤Ë¤¤¤ºÆ¤ÓAÃÏÅÀ¤Þ¤ÇÌá¤ê¢¤ò·«¤êÊÖ¤¹¡£ ¤£¤Î·«¤êÊÖ¤·¡£ Âç²ñÅöÆü¤Ç¤Ï¥³¥Ã¥×A¤ò¼è¤ê¼±Ê̤·Âбþ¤¹¤ë¥³¥Ã¥×¤Ë¤«¤Ö¤»ºÆ¤ÓAÃÏÅÀ¤Þ¤ÇÌá¤Ã¤Æ¤¯¤ë¤È¤³¤í¤Þ¤Ç¤·¤«¥×¥í¥°¥é¥à¤¬´°À®¤·¤Ê¤«¤Ã¤¿¡£ *¥í¥Ü¥Ã¥È [#ld469458] &ref(2014a/Member/tacchan/Mission2/front.jpg); &ref(2014a/Member/tacchan/Mission2/left.jpg); &ref(2014a/Member/tacchan/Mission2/under.jpg); * [#s055c902] ---Main:ËÜÂÎÀ©¸æ #define bri 55 #define s1 50 //¹â® #define s2 30 //Äã® #define OnRL(x,y) OnFwd(OUT_A,x); OnFwd(OUT_C,y); #define go OnFwdSync(OUT_AC,s2,0); //ľ¿Ê #define left1 OnRL(-s2,s2); //º¸Àû²ó #define left0 OnRL(0,s2); //º¸ÀÞ #define right0 OnRL(s2,0); //±¦ÀÞ #define right1 OnRL(s2,-s2); //±¦Àû²ó #define step 1 #define nMAX 300 //nMAX¤òĶ¤¨¤¿»þ¸òº¹ÅÀ¤ÈȽÃǤ¹¤ë #define short_break Off(OUT_AC); Wait(500); //¾®µÙ·Æ #define cross_line go;Wait(200);short_break; //¸òº¹ÅÀ¤òÅϤë #define open 4 #define motiageru 1 #define tukamu 2 #define hanasu 3 #define time1 2000 //»Ï¤á¤ÎÀû²ó¡¢¤Á¤ç¤¦¤É90¡ëÀû²ó¤Ç¤¤ë»þ´Ö¡¢Í×ÀßÄê #define part2 15000 //A¤òÄϤó¤Ç¤«¤é£±¤ËÃÖ¤¯¤Þ¤Ç¤Î»þ´Ö¡¢Í×ÀßÄê #define part3 10000 //A¤òÄϤó¤Ç¤«¤é£²¤ËÃÖ¤¯¤Þ¤Ç¤Î»þ´Ö¡¢Í×ÀßÄê #define part4 15000 //A¤òÄϤó¤Ç¤«¤é£³¤ËÃÖ¤¯¤Þ¤Ç¤Î»þ´Ö¡¢Í×ÀßÄê #define song PlaySound(SOUND_CLICK);//²»¤òÌĤ餹 task main() { SetSensorLight(S2); //¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤¹¤ë¥é¥¤¥È¥»¥ó¥µ¡¼¤òÀßÃÖ SetSensorLight(S3); //»æ¥³¥Ã¥×¤ò¼±Ê̤¹¤ë¤¿¤á¤Î¥é¥¤¥È¥»¥ó¥µ¡¼¤òÀßÃÖ go; Wait(4500);//4.5ÉôÖľ¿Ê song; left1;//º¸¤ËÀû²ó Wait(time1);//90Åٲ󞤹¤ë¤Þ¤Ç³¤±¤ë song; go;//ľ¿Ê Wait(800); song; SendRemoteNumber(1,0,open); song; go; Wait(3000); SendRemoteNumber(1,0,tukamu);//¤Ä¤«¤à song; int n1 = 0;//n1¤È¤¤¤¦´Ø¿ô¤òÀßÃÖ int rooot = 0;//rooot¤È¤¤¤¦´Ø¿ô¤òÀßÃÖ /*¤³¤Ã¤«¤éȽÊ̤ËÆþ¤ë*/ while(rooot = 0){ if(SENSOR_3 < 42){ rooot = 3;}//¥»¥ó¥µ¡¼¤¬42̤Ëþ¤Î¾ì¹ç¥ë¡¼¥È3¤Ø else if(SENSOR_3 < 50){ rooot = 2;}//¥»¥ó¥µ¡¼¤¬50̤Ëþ¤Î¾ì¹ç¥ë¡¼¥È2¤Ø else{ rooot = 1;}//¤½¤ì°Ê³°¤Î¾ì¹ç¥ë¡¼¥È1¤Ø } Wait(1000); song; SendRemoteNumber(1,0,motiageru); //»Òµ¡¤ËÁ÷¿®¤·¥¢¡¼¥à¤ò²ÔƯ¤·»ý¤Á¾å¤²¤ë song; go;//ľ¿Ê Wait(1000);//1ÉôÖ³¤±¤ë left0;//º¸ÀÞ Wait(1000); until(SENSOR_2 <45);//¥é¥¤¥ó¥È¥ì¡¼¥¹¤¹¤ë¥»¥ó¥µ¡¼¤¬45̤Ëþ¤Ë¤Ê¤ë¤Þ¤Ç³¤±¤ë long line = 0;//long line¤È¤¤¤¦´Ø¿ô¤òÀßÃÖ long t1 = CurrentTick();//t1¤È¤¤¤¦´Ø¿ô¤òÀßÃÖ while(rooot = 1){ //rooot¤¬1¤Î´Ö¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò³¤±¤ë while(CurrentTick()-t1 <= part2){ //t1¤¬part2¤è¤êÂ礤¯¤Ê¤ë¤Þ¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò³¤±¤ë while (line < nMAX) { // line¤¬nMAX°Ê¾å¤Ë¤Ê¤ë¤Þ¤Ç³¤±¤ë if (SENSOR_2 < 40) { right1; line = line + 10; //¸òº¹ÅÀ¤òÈ´¤±¤ä¤¹¤¯¤¹¤ë } else { if (SENSOR_2 < 45) { right0; } else if (SENSOR_2 < 55) { go; } else if (SENSOR_2 < 60) { left0; } else { left1; } line=0; } Wait(step); } short_break; right1; Wait(200); cross_line; line=0; } SendRemoteNumber(1,0,hanasu); rooot = 0; OnRev(OUT_AC,50); //AÃÏÅÀÉÕ¶á¤Þ¤ÇÌá¤ë Wait(500); left1; Wait(time1*2); go; Wait(4000); } while(rooot = 2){ while(CurrentTick()-t1 <= part3){ if(SENSOR_2 < 40){ left1;} else if(SENSOR_2 < 45){ left0;} else if(SENSOR_2 < 55){ go;} else{ right0;} //±¦Àû²ó¤Ï¤Ê¤·¡¢£²¤Ë¸þ¤«¤¦¤Ë¤Ï¸òº¹ÅÀȽÃǤâɬÍפʤ¤ Wait(step); } SendRemoteNumber(1,0,hanasu); rooot = 0; OnRev(OUT_AC,50); //AÃÏÅÀÉÕ¶á¤Þ¤ÇÌá¤ë Wait(500); left1; Wait(time1); go; until(SENSOR_2 < 45); } while(rooot = 3){ while(CurrentTick()-t1 <= part4){ //±¦¥é¥¤¥ó¥È¥ì¡¼¥¹ if(SENSOR_2 < 40){ right1;} else if(SENSOR_2 < 45){ right0;} else if(SENSOR_2 < 55){ go;} else if(SENSOR_2 < 60){ left0;} else{ left1;} } SendRemoteNumber(1,0,hanasu); rooot = 0; OnRev(OUT_AC,50); //AÃÏÅÀÉÕ¶á¤Þ¤ÇÌá¤ë Wait(500); right1; Wait(time1 + 300); go; Wait(3000); go; until(SENSOR_2 < 45); } //¤³¤³¤«¤é£²¤ÄÌܤò¤Ä¤«¤ß¤Ë¤«¤«¤ë //2ËçÌܤΥ¹¥¿¡¼¥ÈÃÏÅÀ¤Ë¸þ¤«¤¦¡¢±ßµ°Æ»¤Ë¾è¤Ã¤Æ¤ëÅÓÃæ¡¢±¦¤Ë¶Ê¤¬¤Ã¤Æ¥¹¥¿¡¼¥ÈÃÏÅÀ¤Ë¹Ô ¤¯Á°¤Ë //BÃÏÅÀ¤Ë¥·¥ç¡¼¥È¥«¥Ã¥È¤¹¤ë } ---slave:¥¢¡¼¥àÀ©¸æ #define on 1 task main() { int moterOn; while(true){ ReceiveRemoteNumber(0,true,moterOn); if(moterOn == 4){ OnFwd(OUT_B,50); Wait(300); Off(OUT_B); Wait(500); } if(moterOn == 1){ OnRev(OUT_B,30); Wait(1000); Off(OUT_B); int moterOn =0; } else if(moterOn == 2){ OnRev(OUT_B,30); Wait(1000); Off(OUT_B); int moterOn =0; } else if(moterOn == 3){ OnFwd(OUT_B,30); Wait(1000); Off(OUT_B); int moterOn = 0; } } }