¥í¥Ü¥Ã¥È¤ÎËÜÂΤϻ°¤Ä¤Ëʬ¤«¤ì¤Æ¤¤¤Þ¤¹¡£¤Þ¤º¤ÏËÜÂΡÊÁ°¸å¤Î°ÜÆ°¡Ë¡¢¥¢¡¼¥à¡Ê¥Ú¥ó¤Î¾å²¼¤ÎÆ°¤¡Ë¤È¥¢¡¼¥à¤òÆ°¤«¤¹ÁõÃ֤Ǥ¹¡£
ËÜÂΤǤϥ⥿¡¼¤ò°ì¸Ä¤ÇÆó¤Ä¤Î¥¿¥¤¥ä¤òÆ°¤«¤¹¤Î¤¬ÆÃħ¤Ç¤¹¡£¤½¤·¤Æ¡¢Êª·ï¤¬¸Å¤¤¤¿¤á¡¢·ë¹½¤Ï¤º¤ì¤ë·¹¸þ¤¬¤¢¤ë¤Î¤Ç¡¢¸å¤í¤Ë¡¢Êª·ï¤òÄɲ䷤ƸÇÄꤷ¤Þ¤·¤¿¡£
LEGO MINDSTORM SYSTEM¤Ç¤Ï³ê¤é¤«¤Êʪ·ï¤¬¤Ê¤¤¤Î¤Ç¡¢¥¢¡¼¥à¤ò°ÜÆ°¤¹¤ë¤È¤¡¢¤½¤ÎÀĤ¯´Ý¤¤Êª¤ò»õ¼Ö¤Î²¼¤ËÃÖ¤¤Þ¤·¤¿¡£
»ú¤ò½ñ¤¯¤È¤¡¢¥â¥¿¡¼¤ÇÎϤò¤«¤±¤Ê¤¤¤³¤È¤Ë¤·¤Þ¤·¤¿¡¢¤Ä¤Þ¤ê¥°¥é¥Ó¥Æ¥£¤Ç»ú¤ò½ñ¤¤Þ¤¹¡£¤½¤·¤Æ¡¢¥Ú¥ó¤òÃÖ¤¯¾ì½ê¤âÀßÃÖ¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤½¤·¤Æ°Ê²¼¤Î¿Þ¤Î¤è¤¦¤Ë¤·¤Þ¤·¤¿¡£»æ¤ò²Ã¤¨¤¿¤Î¤Ï¥Ú¥ó¤«¤éÃÖ¤¯¾ì½ê¤Ø¤ÎË໤ÎϤò¸º¤é¤¹¤¿¤á¤Ç¤¹¡£¤½¤·¤Æ¼Ì¿¿¤ÎÄ̤ꡢ¥¢¡¼¥à¤ÏľÀܥ⡼¥¿¡¼¤Ë¤Ä¤±¤Þ¤·¤¿¡£¤½¤·¤Æ¤½¤Î²«¿§¥¢¡¼¥à¤Î´Ö¤Ë¡¢¥Ú¥ó¤òÃÖ¤¤¤Æ¡¢ÎØ¥´¥à¤Ç¸ÇÄꤷ¤Æ¤¤¤Þ¤¹¡£
¤½¤·¤Æ¡¢¥Ú¥ó¤òºÇÂç¸Â¤Ë½Ð¤¹¤È¤¡Ê¤Ä¤Þ¤ê¥â¥¿¡¼£²¤Î¸Â³¦¤Þ¤Ç½Ð¤¹¤È¤¡Ë¥¢¡¼¥à¤¬Íɤì¤ë¤Î¤Ç¡¢¤³¤ÎÆó¤Ä¤ÎËÀ¤ò²Ã¤¨¤Æ¡¢¥¢¡¼¥à¤ò¸ÇÄꤷ¤Þ¤·¤¿¡£
¥×¥í¥°¥é¥à¤ÏÁ´ÂÎŪ¤Ë¤³¤Î¤è¤¦¤Ë¸«¤¨¤Þ¤¹¤¬¡¢¤³¤ì¤«¤é¡¢¥×¥í¥°¥é¥à¤òÀâÌÀ¾¯¤·¤º¤ÄÀâÌÀ¤·¤Þ¤¹¡£
#define FRONT_M(a) OnFwd(OUT_A);Wait(a);Off(OUT_A);Wait(100); #define BACK_M(b) OnRev(OUT_A);Wait(b);Off(OUT_A);Wait(100); #define LEFT_M(t) OnRev(OUT_B);Wait(t);Off(OUT_B);Wait(100); #define RIGHT_M(s) OnFwd(OUT_B);Wait(s);Off(OUT_B);Wait(100); #define ARM_ON OnRev(OUT_C);Wait(10);Off(OUT_C);Wait(150); #define ARM_OFF OnFwd(OUT_C);Wait(10);Off(OUT_C);Wait(150); #define LEFTFRONT_M(c) OnFwd(OUT_A);OnRev(OUT_B);Wait(c);Off(OUT_AB);Wait(100); #define LEFTBACK_M(d) OnRev(OUT_A);OnRev(OUT_B);Wait(d);Off(OUT_AB);Wait(100);
task main() { LEFT_M(15);//¡³«»Ï ARM_ON; FRONT_M(15); ARM_OFF; RIGHT_M(15); ARM_ON;//¢³«»Ï LEFT_M(22); BACK_M(13);//£³«»Ï ARM_OFF; FRONT_M(13); ARM_ON;//¤³«»Ï RIGHT_M(30); ARM_OFF; LEFT_M(20); BACK_M(5); ARM_ON;//¥³«»Ï RIGHT_M(30); ARM_OFF; LEFT_M(20); BACK_M(7); ARM_ON;//¦³«»Ï RIGHT_M(28); BACK_M(15);//§³«»Ï LEFTFRONT_M(7);//¨ Off(OUT_AB); ARM_OFF; FRONT_M(7); LEFT_M(3); repeat(2){ //ÅÀÅÀ ARM_ON; LEFTFRONT_M(3); ARM_OFF; LEFT_M(2); BACK_M(2); } ARM_ON; LEFTFRONT_M(2); ARM_OFF; LEFT_M(3); ARM_ON; LEFTBACK_M(2); ARM_OFF; }
¤³¤³¤Ç#define¤ò»È¤¤¤Þ¤·¤¿¡£
#define FRONT_M(a) OnFwd(OUT_A);Wait(a);Off(OUT_A);Wait(100); #define BACK_M(b) OnRev(OUT_A);Wait(b);Off(OUT_A);Wait(100); #define LEFT_M(t) OnRev(OUT_B);Wait(t);Off(OUT_B);Wait(100); #define RIGHT_M(s) OnFwd(OUT_B);Wait(s);Off(OUT_B);Wait(100);
±Ñ¸ì¤Î°ÕÌ£¤ÎÄ̤ê¤Ë¡¢Á°¡¢¸å¤í¡¢±¦¤Èº¸¤Î¥Ú¥ó¤ÎÆ°¤¤Ç¤¹¡£ ¡ÖÇϡפȤ¤¤¦»ú¤ÏËÀ¤ÎŤµ¤Ï¤½¤ì¤¾¤ì¤¬°ã¤¦¤Î¤Ç¡¢»þ´Ö¤ÎÀßÄê¤Ç¤ÏÊÑ¿ô¤ò»È¤¤¤Þ¤·¤¿¡£¤½¤¦¤¹¤ë¤È¡¢¥×¥í¥°¥é¥ß¥ó¥°¤ò¤¹¤ë¤È¤¼«Í³¤ËÊѤ¨¤é¤ì¤Þ¤¹¡£
¤µ¤é¤ËÊ£»¨¤ÊÅÀ¤È¤¤¤¦½ñ¤¤Ë¤Ê¤ë¤È¡¢
#define LEFTFRONT_M(c) OnFwd(OUT_A);OnRev(OUT_B);Wait(c);Off(OUT_AB);Wait(100); #define LEFTBACK_M(d) OnRev(OUT_A);OnRev(OUT_B);Wait(d);Off(OUT_AB);Wait(100);
º¸Á°¤Èº¸¸å¤í¤ÎÆ°¤¤Ï¤³¤Î#define¤ò»È¤¤¤Þ¤·¤¿¡£
¤½¤ì¤¾¤ì¤ÎÆ°¤¤Ï¸å¤í¤Ë Wait(100)¤ò¤Ä¤±¤ë¤Î¤Ï¡¢»ú¤ò¤æ¤Ã¤¯¤ê½ñ¤¤¤Æ¤â¤é¤¤¡¢Æ°¤¤Î°ãÏ´¶¤ò¸º¤é¤¹¤¿¤á¤Ç¤¹¡£
#define ARM_ON OnRev(OUT_C);Wait(10);Off(OUT_C);Wait(150); #define ARM_OFF OnFwd(OUT_C);Wait(10);Off(OUT_C);Wait(150);
¤³¤³¤Ç¤ÏWait(150)¤ò»È¤Ã¤¿¤Î¤Ï¼¡¤Î¹ÔÆ°¤Ë°Ü¤¹Á°¤Ë¥Ú¥ó¤òÍ¥¤·¤¯ÃÖ¤±¤ë¤è¤¦¤Ë¤¹¤ë¤Î¤Ç¤¹¡£¥°¥é¥Ó¥Æ¥£¤ò»È¤Ã¤¿¤¿¤á¡¢¥Ú¥ó¤¬¼«Á³¤ËÍî¤Á¤ë¤è¤¦¤Ë¤·¤¿¤Î¤Ç¤¹¡£
º£²ó¤Î²ÝÂê¤Ï¼«Ê¬¤Î¼Â²È¤Î´Á»ú¤ò½ñ¤¯¤Î¤Ç¡¢¥Þ¥ì¡¼¥·¥¢¤Î´Á»ú¤ÏÇϤ餷¤¤¤Î¤Ç¡¢ÇϤˤ·¤Þ¤·¤¿¡£
#define ¤ò¤¤Á¤ó¤È¤Ç¤¤¿¤¿¤á¡¢¤³¤ì¤«¤é¤Î¥×¥í¥°¥é¥ß¥ó¥°¤¬³Ú¤Ë¤Ê¤ë¤À¤í¤¦¤È»×¤¤¤Þ¤·¤¿¡£ ÇϤΤ½¤ì¤¾¤ì¤ÎËÀ¤ÎŤµ¤ò¬¤Ã¤Æ¡¢É¬Íפʽñ¤¯»þ´Ö¤òͽ¬¤·¤Þ¤·¤¿¡£ ±ôÉ®¤Ç½ñ¤¤¤¿¤â¤Î¤Ï»þ´ÖɬÍפʻþ´Ö¤Ç¡¢¥Ü¡¼¥ë¥Ú¥ó¤Ç½ñ¤¤¤¿¤â¤Î¤Ï½ñ¤½ç¤Ç¤¹¡£
NXC¤È°ã¤Ã¤Æ¡¢¤³¤³¤Ç¤Ï³ÑÅÙ¤ÎÌäÂê¤Ï¤¢¤ê¤Þ¤»¤ó¡¢¤¢¤ë¤¤¤Ï¡¢¤³¤Î¥í¥Ü¥Ã¥È¤Ï³ÑÅ٤Τ³¤È¤ò¹Í¤¨¤Ê¤¯¤Æ¤â¤¤¤¤¤Ç¤¹¡£ ¥×¥í¥°¥é¥à¤ò½ñ¤¯¤Î¤ÏÆñ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£ÍýÏÀ¤«¤é¸À¤¦¤È»þ´Ö¤Èµ÷Î¥¤òÀµ³Î¤Ë¬¤ì¤Ð¡¢½ñ¤±¤ë¤Ï¤º¤Ç¤¹¡£ ²£ËÀ¤ò½ñ¤¤¿¤¤¤È¤¡¢¤Þ¤º¤Ï¥Ú¥ó¤ò²¼¤·¡¢¼¡¤Ë¡¢±¦¤Ø°ÜÆ°¤¹¤ë¤³¤È¤Ç¤¹¡£¤½¤·¤Æ¡¢¸µ¤Î¾ì½ê¤ØÌᤷ¤Þ¤¹¡£
task main() { ARM_ON; RIGHT_M(x); ARM_OFF; LEFT_M(x); }
½ÄËÀ¤Î¾ì¹ç¤ÏƱÍͤǤ¹¡£
task main() { ARM_ON; FRONT_M(x); ARM_OFF; BACK_M(x); }
·ë¶É¡¢¥í¥Ü¥Ã¥È¤Ë½ñ¤¤¤Æ¤â¤é¤¦¤È¤¡¢¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£
¤½¤ÎÃæ¤Ë°ìÈÖÆñ¤·¤¤¤³¤È¤Ï¤½¤Î»Í¤Ä¤ÎÅÀ¤À¤í¤¦¤È»×¤¤¤Þ¤·¤¿¡£ÇϤÎËÜÂΤò½ñ¤½ª¤ï¤Ã¤¿¸å¡¢¥Ú¥ó¤Î°ÌÃÖ¤òÊѤ¨¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¤Î¤Ç¡¢¤½¤Á¤é¤Î¤Û¤¦¤Ë»þ´Ö¤¬¤«¤«¤ê¤Þ¤·¤¿¡£
¤³¤Î¥í¥Ü¥Ã¥È¤Ç¡¢²¿²ó¤âÇϤò½ñ¤¤¤Æ¤â¤é¤¤¤Þ¤·¤¿¤¬¡¢Ëè²ó½ñ¤¤¤¿¤â¤Î¤Ï¤½¤ì¤¾¤ì¤¬°ã¤¦·ë²Ì¤Ë¤Ê¤ë¤Î¤Ç¤¹¡£
¹Í¤¨¤é¤ì¤ë¤Î¤Ï¤Þ¤ºÊª·ï¤¬¥â¥¿¡¼¤¬¸Å¤¤¤«¤é¡¢½ÐÎϤ¬°ã¤¤¤Þ¤¹¡£Î㤨¤Ð¡¢¡¡¡¡ ¡¡OnRev(OUT_A);Wait(5);OnFwd(OUT_A);Wait(5);¡¡¤Î¥×¥í¥°¥é¥à¤Ç¡¢ ÍýÏÀŪ¤Ë¸À¤¦¤È¡¢¥í¥Ü¥Ã¥È¤¬¸µ¤Î¾ì½ê¤ËÌá¤ë¤Ï¤º¤Ç¤¹¤¬¡¢¼ÂºÝ¤Ë¸µ¤Î¾ì½ê¤è¤ê¤â¤Ã¤ÈÁ°¤Î¤È¤³¤í¤ËÇñ¤Þ¤ê¤Þ¤·¤¿¡£
¤½¤·¤Æ¡¢Æó¤ÄÌܤÎÍýͳ¤Ï¡¢¥í¥Ü¥Ã¥È¤Î¹½Â¤¤¬°¤¤¤³¤È¤¬¹Í¤¨¤é¤ì¤Þ¤¹¡£¹½Â¤¤¬°¤¯¤Æ¡¢¥â¥¿¡¼¤Î½ÐÎϤ¬´°Á´¤Ë¥í¥Ü¥Ã¥È¤ÎÆ°ÎϤˤʤì¤Ê¤¯¤Æ¡¢ÎϤλ¼º¤Ç¤¹¡£¤½¤¦¤Ê¤ë¤È¡¢¼«Ê¬¤¬Ä¹¤µ¤ò½ñ¤¯¤¿¤á¤Ë·×»»¤·¤¿É¬Íפʻþ´Ö¤¬»È¤¨¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£