º£²ó¤Î²ÝÂê¤ËÂФ·¤Æ¤ÏÆóÂæ¤Î¥í¥Ü¥Ã¥È¤ò»ÈÍѤ·¡¢¤½¤ì¤¾¤ì¤ËÆÃÄê¤ÎÌò³ä¤òÍ¿¤¨¤ë¤³¤È¤Ë¤·¤¿¡£¤Þ¤¿ÆóÂæ¤Î¥í¥Ü¥Ã¥È¤ÏBluetoothÄÌ¿®¤òÍѤ¤¤ÆÏ¢·È¤µ¤»¤¿¡£
Master¦¤Î¥í¥Ü¥Ã¥È¤Ï»°ÃʤËÀѤޤ줿´Ì¤ÎÆóÃÊÌܤò¶´¤ß¡¢¸ÇÄꤹ¤ëÌò³ä¤òô¤Ã¤¿¡£
µ¡ÂΤϻ°Îؼ°¤òºÎÍѤ·¤Æ¤¤¤ë¡£¤Þ¤¿¡¢´Ì¤òÄϤà¤È¤³¤í¤Îµ¡¹½¤Ï¥®¥¢¤ò»°Ëç»ÈÍѤ·¡¢ÄϤàÉôʬ¤ÏÌò³äŪ¤Ë¸ÇÄꤷ¤¿¾õÂ֤Ǿ¯¤·¶¯¤á¤ÎÎϤËÂбþ¤Ç¤¤ë¤è¤¦¥¢¡¼¥à¤òÆó½Å¤Ë¤·¤¿¡£
¥Õ¥£¡¼¥ë¥É¾å¤ÎÆ°¤¤Ï¸÷¥»¥ó¥µ¡¼¤äĶ²»ÇÈ¥»¥ó¥µ¡¼¤Ê¤É¤ò»È¤ï¤º´Ì¤«¤é¤Îµ÷Î¥¡¢°ÜÆ°¤Îµ÷Î¥¤ò¼Â¬¤·¡¢Æ°¤¤ò¥×¥í¥°¥é¥ß¥ó¥°¤·¤¿¡£
Slave¦¤Î¥í¥Ü¥Ã¥È¤Ï°ìÃÊÌÜ¡¢»°ÃÊÌܤδ̤ò¶´¤ß±¿¤ÖÌò³ä¤ò¤·¤¿¡£
µ¡ÂΤòÀ½ºî¤¹¤ë¾å¤ÇMaster¦¤ÈƱ¤¸¤è¤¦¤Ê»°Îؼ°¤òºî¤Ã¤Æ¤ß¤ë¤È¡¢¼è¤êÉÕ¤±¤¿¥¢¡¼¥à¤¬°ì´ÌÌܤòÄϤळ¤È¤¬¤Ç¤¤Ê¤«¤Ã¤¿¡£¤Þ¤¿¡¢¥Ñ¡¼¥Ä¤ò¶î»È¤·¤ÆÄ㤤°ÌÃ֤˥¢¡¼¥à¤ò¼è¤êÉÕ¤±¤ë¤Èµ¡ÂΤ¬ÉÔ°ÂÄê¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£¤µ¤é¤Ë¤Ï»°ÃÊÌܤòÄϤि¤á¤Ë°ìÃÊÌܤÈϢư¤·¤ÆÆ°¤¯½Ä¤ËŤ¤¥¢¡¼¥à¤ò¼è¤êÉÕ¤±¤ëɬÍפ¬¤¢¤Ã¤¿¤¿¤á¡¢»°ÃÊÌܤδÌÍѤΥ¢¡¼¥à¤Ë¶¯¤¤ÎϤòÍ¿¤¨¤Ê¤¯¤Æ¤Ï¤¤¤±¤Ê¤¯¡¢¥¢¡¼¥à¤ò³«ÊĤ¹¤ëµ¡¹½¤Î´ðÁäò¤¤Ã¤Á¤ê¸ÇÄꤵ¤»¤ë¤Ë¤ÏËÜÂΤËľÀÜ¥¢¡¼¥à¤òÉÕ¤±¤ëɬÍפ¬¤¢¤Ã¤¿¡£
¤½¤Î¤¿¤á²¼¿Þ¤Î¤è¤¦¤Ë¤Ê¤ë¤Ù¤¯ËÜÂΤò¥Ü¥¿¥ó¤ÎÉÕ¤¤¤Æ¤¤¤ëÊý¤ò²¼¸þ¤¤Ë¤·¡¢¤½¤Î¦Ì̤˥¿¥¤¥ä¤òÉÕ¤±¤ë·Á¤ÇÃÏÌ̤¹¤ì¤¹¤ì¤Ë¤·¤¿¡£¤³¤ì¤Ë¤è¤Ã¤Æ»×¤¤Ä̤ê¤Î°ÌÃ֤˥¢¡¼¥à¤òÉÕ¤±¤ë¤³¤È¤¬¤Ç¤¤¿¡£¤·¤«¤·¡¢¤³¤ì¤Ç¤Ï¼«Ê¬¤Ç¥×¥í¥°¥é¥à¤òµ¯Æ°¤µ¤»¤ë¤Î¤Ë°ìÅÙ»ý¤Á¾å¤²¤Ê¤±¤ì¤Ð¤¤¤±¤Ê¤¯¤È¤Æ¤âÉÔÊؤˤʤäƤ·¤Þ¤Ã¤¿¡£¤è¤Ã¤Æ¡¢¤³¤Á¤é¤Îµ¡ÂΤÏMaster¦¤«¤é¤Î¿®¹æ¼õ¿®¤Ë¤è¤Ã¤ÆÆ°¤½Ð¤¹¤è¤¦¤Ë¥×¥í¥°¥é¥à¤òÁȤळ¤È¤Ë¤Ê¤Ã¤¿¡£
Æó¤Ä¤Îµ¡ÂΤˤϤ½¤ì¤¾¤ì¤ÎÌò³ä¤¬¤¢¤ë¤ÈÀè¤Ç¤âÀâÌÀ¤·¤¿¡£¤½¤Î¤¿¤áµ¡ÂÎƱ»Î¤¬¼«Ê¬¾¡¼ê¤ËÆ°¤¤¤Æ¤·¤Þ¤Ã¤Æ¤Ï´Ì¤ò»×¤¤Ä̤ê¤Ë¤ÏÄϤá¤Ê¤¤¡£
¤Ê¤Î¤Ç¡¢Master¦¤¬´Ì¤òÄϤó¤À¸åSlave¦¤ò°ÜÆ°¤µ¤»´Ì¤òÄϤޤ»¤ë¤È¤¤¤¦Íͤˤª¸ß¤¤¤¬¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ê¹ç¤¤Ï¢·È¤·¤¿¡£
task main() { SendRemoteNumber(1,MAILBOX1,11); //Slave¦¤ÎMAILBOX1¤Ë11¤È¤¤¤¦Ê¸»ú¤òÁ÷¤ë }
{ int msg,frg1=1; while(frg1){ ReceiveRemoteNumber(MAILBOX1,true,msg); // MAILBOX1¤ÎÃͤò¼õ¤±¼è¤êmsg¤Ë³ÊǼ if(msg==11){ //¤â¤·msg¤Ë¤¢¤ë¿ô»ú¤¬11¤Ê¤é¤Ð²¼¤ÎÌ¿Îá¤ò¹Ô¤¦ ¡ÊÌ¿Îá¡Ë; frg1=0; } } }
task main() { SendResponseNumber(MAILBOX1,12); //Master¦¤ÎMAILBOX1¤Ë12¤È¤¤¤¦Ê¸»ú¤òÁ÷¤ë }
task main() { int msg,frg1=1; while(frg1){ ReceiveRemoteNumber(MAILBOX1,true,msg); // MAILBOX1¤ÎÃͤò¼õ¤±¼è¤êmsg¤Ë³ÊǼ if(msg==12){¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¤â¤·msg¤Ë¤¢¤ë¿ô»ú¤¬12¤Ê¤é¤Ð²¼¤ÎÌ¿Îá¤ò¹Ô¤¦ ¡ÊÆ°¤«¤·¤¿¤¤Ì¿Îá¡Ë; frg1=0; } } }
Master¦¡¢Slave¦¤½¤ì¤¾¤ì¤Ç°Ê²¼¤Î¤è¤¦¤Ë¥×¥í¥°¥é¥à¤òÄêµÁ¤·¤¿¡£
#define kail OnFwd(OUT_B,50);OnRev(OUT_C,50);Wait(500);Off(OUT_BC); //º¸Àû²ó¤ò0.5ÉôֹԤ¦ #define kair OnFwd(OUT_C,50);OnRev(OUT_B,50);Wait(500);Off(OUT_BC); //±¦Àû²ó¤ò0.5ÉôֹԤ¦
#define SPEED_H 30 #define SPEED_L 35 #define OnRL(speedR,speedL) OnFwd(OUT_B,speedR);OnFwd(OUT_C,speedL); #define go_forward OnRL(SPEED_H, SPEED_H); // Á°¿Ê #define Back(X) OnRev(OUT_BC,30);Wait(X);Off(OUT_BC);//¸åÂà #define turn_rt(X) OnRL(SPEED_L, -SPEED_L);Wait(X);Off(OUT_BC); // ±¦Àû²ó #define turn_right(X) OnRL(SPEED_L, 0);Wait(X);Off(OUT_BC); // ±¦ÀÞ #define turn_left(X) OnRL(0, SPEED_L);Wait(X);Off(OUT_BC); // º¸ÀÞ #define turn_lt(X) OnRL(-SPEED_L, SPEED_L);Wait(X);Off(OUT_BC); // º¸Àû²ó
Á°¿Ê¡¢¸åÂà¤Ê¤É°ìÉôÆ°ºî¤ÏMaster¦¤Î¤ß¥µ¥Ö¥ë¡¼¥Á¥ó¤ò»È¤¤ÁȤó¤À¡£
sub zen(int i) { ¡¡¡¡¡¡ int t; t=i*50; OnFwd(OUT_B,50); OnFwd(OUT_C,49); Wait(t); Off(OUT_BC); }
sub zeny(int i) { int t; t=i*100; OnFwd(OUT_B,25); OnFwd(OUT_C,25); Wait(t); Off(OUT_BC); }
sub kou(int i) { int t; t=i*50; OnRev(OUT_B,50);OnRev(OUT_C,49); Wait(t); Off(OUT_BC); }
sub armc() { OnFwd(OUT_A,30); }
sub armo() { OnRev(OUT_A,30); }
´°À®¤·¤¿¥×¥í¥°¥é¥à¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤Ã¤¿¡£Ï¢·È¤Ï°ìÊý¤¬Æ°¤¤¤Æ¤¤¤ëºÇÃæ¡¢¤â¤¦°ìÊý¤ÏÄä»ß¤·¤Æ¤¤¤ë¤¿¤á¼ÂºÝ¤Ë¤Ï¤½¤ì¤¾¤ì°ì¤Ä¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¬Ää»ß¤·Æ°¤¯Êý¤¬ÊѤï¤ë¤È¤³¤í¤ÇMaster¦¤ÈSlave¦¤Ç¸ò¸ß¤Ëɽ¼¨¤¹¤ë¡£
task main() { int msg,frg1=1,frg2=1;¡¡¡¡¡¡¡¡¡¡¡¡¡¡//´Ø¿ôfrg1,frg2¤òÄêµÁ zen(51);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//2.55Éá¢50¡ó¤Î®¤µ¤ÇÁ°¿Ê kair;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //0.5Éñ¦Àû²ó zen(75);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//3.75Éá¢50¡ó¤Î®¤µ¤ÇÁ°¿Ê kair;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //0.5Éñ¦Àû²ó zeny(20);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //2Éá¢25¡ó¤Î®¤µ¤ÇÁ°¿Ê armc();¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //ÆóÃÊÌܤδ̤òÄϤࡡX¤Ë°ÜÆ°´°Î» SendRemoteNumber(1,MAILBOX1,11);//Á÷¿® //Slave¦¤Ë11¤Î¿ô»ú¤òÁ÷¿®¡Ê°ìöÄä»ß¡Ë
task main() { int msg,frg1=1,frg2=1; while(frg1){ ReceiveRemoteNumber(MAILBOX1,true,msg); //MAILBOX1¤ÎÃͤò¼õ¤±¼è¤êmsg¤Ë³ÊǼ if(msg==11){ SetSensorLowspeed(S1); //´Ì¤ÎÊý¸þ¤òõ¤·¤¿¸å¡¢¶á¤Å¤¤¤Æ10cm¼êÁ°¤ÇÄä»ß int d = searchDirection(120); if (d > 10) { fwdDist(d-10.0); } str(500);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//0.5ÉÃÁ°¿Ê Off(OUT_A);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¥â¡¼¥¿¡¼A¤ÎÅŸ»¤òÀÚ¤ë str(400);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//0.4ÉÃÁ°¿Ê OnRev(OUT_A,30);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //°ìÃÊÌܤȻ°ÃÊÌܤδ̤òÄϤࡡX¤Ë°ÜÆ°´°Î» Wait(1000);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//1ÉÃÂÔ¤Ä Back(1000);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//1ÉøåÂà SendResponseNumber(MAILBOX1,12); //Master¦¤Ë12¤Î¿ô»ú¤òÁ÷¿®¡Ê°ìöÄä»ß¡Ë frg1=0;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//´Ø¿ôfrg1¤Ë0¤òÂåÆþ } }
ReceiveRemoteNumber(MAILBOX1,true,msg);//¼õ¿® if(msg==12){ armo();¡¡¡¡¡¡¡¡¡¡¡¡ //´Ì¤òÎ¥¤¹ kou(20);¡¡¡¡¡¡¡¡¡¡¡¡//1ÉøåÂà kair;¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //0.5Éñ¦Àû²ó zen(44);¡¡¡¡¡¡¡¡¡¡¡¡//2.2Éá¢50¡ó¤Î®¤µ¤ÇÁ°¿Ê kail;¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //0.5Éú¸Àû²ó zeny(20);¡¡¡¡¡¡¡¡¡¡ //0.5Éá¢25¡ó¤Î®¤µ¤ÇÁ°¿Ê armc();¡¡¡¡¡¡¡¡¡¡¡¡ //ÆóÃÊÌܤδ̤òÄϤࡡY¤Ë°ÜÆ°´°Î» frg1=0;¡¡¡¡¡¡¡¡¡¡¡¡ //´Ø¿ôfrg1¤Ë0¤òÂåÆþ SendRemoteNumber(1,MAILBOX1,13);¡¡//Slave¦¤Ë13¤Î¿ô»ú¤òÁ÷¿®¡Ê°ìöÄä»ß¡Ë¡¡ } }
while(frg2){ ReceiveRemoteNumber(MAILBOX1,true,msg); //MAILBOX1¤ÎÃͤò¼õ¤±¼è¤êmsg¤Ë³ÊǼ if(msg==13){ turn_lt(600); //0.6Éú¸Àû²ó str(4000);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//4ÉÃÁ°¿Ê turn_rt(1000);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//1Éñ¦Àû²ó str(1000);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//1ÉÃÁ°¿Ê OnFwd(OUT_A,30);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//´Ì¤òÎ¥¤¹ Y¤Ë°ÜÆ°´°Î» Wait(500);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//0.5ÉÃÂÔ¤Ä Off(OUT_A);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //¥â¡¼¥¿¡¼A¤ÎÅŸ»¤òÀÚ¤ë Back(1000);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //1ÉøåÂà turn_rt(800);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //0.8Éñ¦Àû²ó str(500);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //0.5ÉÃÁ°¿Ê turn_lt(1000);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//1Éú¸Àû²ó str(2000);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//2ÉÃÁ°¿Ê turn_left(1000);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//1Éú¸ÀÞ OnRev(OUT_A,30);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//°ìÃÊÌܤȻ°ÃÊÌܤδ̤òÄϤà Wait(1000);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //1ÉÃÂÔ¤Ä Back(1000);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //1ÉøåÂà turn_rt(2000);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//2Éñ¦Àû²ó str(4000);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//4ÉÃÁ°¿Ê OnFwd(OUT_A,30);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//´Ì¤òÎ¥¤¹ Wait(1000);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //1ÉÃÂÔ¤Ä Off(OUT_A);¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //¥â¡¼¥¿¡¼A¤ÎÅŸ»¤òÀÚ¤ë SendResponseNumber(MAILBOX1,14); //Master¦¤Ë14¤Î¿ô»ú¤òÁ÷¤ë frg2=0;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ //´Ø¿ôfrg2¤Ë0¤òÂåÆþ¡Ê´°Á´Ää»ß¡Ë } } }
while(frg2){ ReceiveRemoteNumber(MAILBOX1,true,msg); //43 ¼õ¿® if(msg==14){ armo(); //´Ì¤òÎ¥¤¹ frg2=0;¡¡¡¡¡¡¡¡¡¡¡¡ //´Ø¿ôfrg2¤Ë0¤òÂåÆþ¡Ê´°Á´Ää»ß¡Ë } } }
·ë²Ì¤Ï°ì²óÌܤÏ0ÅÀ¡¢Æó²óÌܤÏ2ÅÀ¤È¤Ê¤Ã¤¿¡£¤Þ¤¿µ»½ÑÅÀ¤ÏÊ¿¶Ñ12.2ÅÀ¤Ç¹ç·×¤¬14.2ÅÀ¤Ç¤¢¤Ã¤¿¡£
ºÇ½ª²ÝÂê¤Ç¤Ï¼ø¶È½é´ü¤Ë¶µ¤ï¤Ã¤¿define¤Ë¤è¤ë¥×¥í¥°¥é¥à¤ÎÄêµÁ¡¢¥µ¥Ö¥ë¡¼¥Á¥ó¤Î»ÈÍÑ¡¢Ä¶²»ÇÈ¥»¥ó¥µ¡¼¡¢Bluetooth¤Ë¤è¤ëÄÌ¿®¤È¤¤¤Ã¤¿ÍÍ¡¹¤Ê¥×¥í¥°¥é¥ß¥ó¥°¤ò»È¤¦¤³¤È¤¬¤Ç¤¤¿¡£¤·¤«¤·¾å¤Î¤è¤¦¤ÊÅÀ¿ô¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¤Î¤ÏÈùÄ´À°ÉÔ¡¢ÅÅÃÓ»ÄÎ̤ˤè¤ë¥â¡¼¥¿¡¼¤ÎÊѲ½¡¢ÎϤÎÅÁ¤ï¤êÊý¤ÎÃμ±ÉÔ¤Ǥ¢¤ë¡£¤Þ¤¿´Ì¤ò±¿¤ó¤Ç¤¤¤ëºÇÃæ¤Ë³ê¤êÍî¤È¤µ¤Ê¤¤¤è¤¦¥¢¡¼¥à¤Ø¤Î¹©Éס¢°ÜÆ°¤ÎÆ°¤¤ò³ê¤é¤«¤Ë¤¹¤ë¤³¤È¤Ç°ÜÆ°¤Î¿¶Æ°¤ò¸º¤é¤·¡¢´Ì¤òÍî¤È¤µ¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡¢¤È¤¤¤Ã¤¿ÊýË¡¤â¹Í¤¨¤é¤ì¤ë¡£
¤·¤«¤·¡¢¥×¥í¥°¥é¥ß¥ó¥°¹½À®Ì̤ǤÎÈ¿¾ÊÅÀ¤¬¤½¤ó¤Ê¤Ëµó¤²¤é¤ì¤Ê¤¤¤Î¤Ï¹½À®µ»½Ñ¤¬¿ÊÊ⤷¤¿¤È¤¤¤¦¤³¤È¤Ç¤¢¤í¤¦¡£´°àú¤Ë¤Ï¤Û¤É±ó¤¤¤¿¤á¤³¤ì¤«¤é¤â²þÁ±¤Î;ÃϤÏ¿¤¯¤¢¤ë¤¬¡¢¥×¥í¥°¥é¥ß¥ó¥°¤ÎÃ챤ò³Ø¤Ö¤È¤¤¤¦ÌÜɸ¤ÏãÀ®¤¹¤ë¤³¤È¤¬¤Ç¤¤¿¡£