º£²ó¤ÎÆâÍƤϡ¢¡Ö¥é¥¤¥ó¥È¥ì¡¼¥¹¥í¥Ü¥Ã¥È¡×¡£ Mindstorms Robotics Invention System(°Ê²¼RIS)¤òÍѤ¤¤Æ²¼¿Þ¤Î¥³¡¼¥¹¤òÁö¤ê¡¢Æ»Ãæ¤Î¥Ü¡¼¥ë¤òÊáµå¡¢¤½¤Î¥Ü¡¼¥ë¤ò»ØÄꤵ¤ì¤¿¥´¡¼¥ë¤Ø¥·¥å¡¼¥È¤·¤í¤È¤¤¤¦ÆâÍƤǤ¢¤Ã¤¿¡£
¤Ê¤ª¡¢¥Ü¡¼¥ë¤ÏÅÀP¤«¤éÅÀQ´Ö¤ÎÀþ¾å¤Ç¤¢¤ì¤Ð¤É¤³¤Ë¤ª¤¤¤Æ¤â¤è¤¤¤â¤Î¤È¤¹¤ë¡£
º£²ó¡¢¼«Ê¬¤ÏB➡A¤òôÅö¤·¤¿¡£
¥Ü¡¼¥ë¤ÏľÀþPQ´Ö¤ÎÃæ´Ö¾¯¤·Q´ó¤ê¤ËÀßÃÖ¡£
µ¡ÂΤÏÀþ¤Îº¸Â¦¤ò¥È¥ì¡¼¥¹¤·¡¢È½ÃǤ·¤Ê¤¬¤éÁö¹Ô¡£
º£²ó¤â¼ÖÂÎÉôʬ¡¢¥Ü¡¼¥ë¤òÊäµë¤¹¤ë¤¿¤á¤Î¥¢¡¼¥àÉôʬ¤ÈÂç¤Þ¤«¤Ë2¤Ä¤ÎÉôʬ¤«¤éÀ®¤êΩ¤Ä¡£
¾åµ¤Î¥Ñ¡¼¥Ä¤òÁȤ߹ç¤ï¤»¤ë¤³¤È¤Ë¤è¤ê´°À®¡£
#define BLACK 45 //°Ê²¼¤Ï¹õ #define WHITE 50 //°Ê¾å¤ÏÇò #define go_forward OnFwd(OUT_AC); //Á°¤Ø #define go_back OnRev(OUT_AC); //¸å¤í¤Ø #define turn_right OnRev(OUT_C); OnFwd(OUT_A); //±¦Àû²ó #define turn_left OnFwd(OUT_C); OnRev(OUT_A); //º¸Àû²ó #define STEP 1 // °ì²ó¤ÎȽÄê¤Ç¿Ê¤à»þ´Ö #define short_break Off(OUT_AC); Wait(200); // ¾®µÙ»ß #define CROSS_TIME 20 // ¸òº¹ÅÀÄ̲á¤Ë¤«¤«¤ë»þ´Ö #define cross_line go_forward;Wait(CROSS_TIME);short_break; //¸òº¹ÅÀ¤òÅϤë #define FIX_TIME 18 #define nMAX 8 #define clip_on OnFwd(OUT_B);Wait(10);Off(OUT_B); #define clip_off OnRev(OUT_B);Wait(10);Off(OUT_B); #define shoot go_back;Wait(50);go_forward;Wait(30);clip_off; //¥·¥å¡¼¥È task main() { SetSensor(SENSOR_2, SENSOR_LIGHT); int nOnline=0; // ³¤±¤Æ¹õ¤Ë¤Ê¤Ã¤¿²ó¿ô (¥«¥¦¥ó¥¿) while (nOnline <nMAX) { if (SENSOR_2 < BLACK){ // Àþ¾å¤Ê¤é turn_left; // º¸¤Ø nOnline++; //¥«¥¦¥ó¥¿Áý¤ä¤¹ } else { if (SENSOR_2 < WHITE){ // ¶³¦ÉÕ¶á¤Ê¤é go_forward; // ľ¿Ê } else { //Àþ¤«¤é³°¤ì¤ì¤Ð turn_right; //±¦¤Ø } nOnline=0; //¥«¥¦¥ó¥¿¤ò¥ê¥»¥Ã¥È } Wait(STEP); } short_break; //¾®µÙ·Æ turn_left;Wait(FIX_TIME); //Êý¸þº¸½¤Àµ clip_on; //Êáµå nOnline=0; //¥«¥¦¥ó¥¿¤ò¥ê¥»¥Ã¥È while (nOnline <nMAX) { if (SENSOR_2 < BLACK){ // Àþ¾å¤Ê¤é turn_left; // º¸¤Ø nOnline++; //¥«¥¦¥ó¥¿Áý¤ä¤¹ } else { if (SENSOR_2 < WHITE){ // ¶³¦ÉÕ¶á¤Ê¤é go_forward; // ľ¿Ê } else { //Àþ¤«¤é³°¤ì¤ì¤Ð turn_right; //±¦¤Ø } nOnline=0; //¥«¥¦¥ó¥¿¤ò¥ê¥»¥Ã¥È } Wait(STEP); } short_break; //¾®µÙ·Æ turn_right;Wait(FIX_TIME); //Êý¸þ½¤Àµ cross_line; //¸òº¹ÅÀ¤òÅϤë nOnline=0; //¥«¥¦¥ó¥¿¤ò¥ê¥»¥Ã¥È while (nOnline <nMAX) { if (SENSOR_2 < BLACK){ // Àþ¾å¤Ê¤é turn_left; // º¸¤Ø nOnline++; //¥«¥¦¥ó¥¿Áý¤ä¤¹ } else { if (SENSOR_2 < WHITE){ // ¶³¦ÉÕ¶á¤Ê¤é go_forward; // ľ¿Ê } else { //Àþ¤«¤é³°¤ì¤ì¤Ð turn_right; //±¦¤Ø } nOnline=0; //¥«¥¦¥ó¥¿¤ò¥ê¥»¥Ã¥È } Wait(STEP); } short_break; //¾®µÙ·Æ go_forward;Wait(100); //¥´¡¼¥ëÁ°¤Ø turn_right;Wait(80); //¸åÂà¡õÁ°¿Ê shoot; //¥·¥å¡¼¥È Off(OUT_AC); //Ää»ß nOnline=0; //¥«¥¦¥ó¥¿¤ò¥ê¥»¥Ã¥È }
¡#define BLACK 42 //°Ê²¼¤Ï¹õ ¢#define WHITE 50 //°Ê¾å¤ÏÇò £#define go_forward OnFwd(OUT_AC); //Á°¤Ø ¤#define go_back OnRev(OUT_AC); //¸å¤í¤Ø ¥#define turn_right OnRev(OUT_C); OnFwd(OUT_A); //±¦Àû²ó ¦#define turn_left OnFwd(OUT_C); OnRev(OUT_A); //º¸Àû²ó §#define STEP 1 // °ì²ó¤ÎȽÄê¤Ç¿Ê¤à»þ´Ö ¨#define short_break Off(OUT_AC); Wait(200); // ¾®µÙ»ß ©#define CROSS_TIME 20 // ¸òº¹ÅÀÄ̲á¤Ë¤«¤«¤ë»þ´Ö ª#define cross_line go_forward;Wait(CROSS_TIME);short_break; //¸òº¹ÅÀ¤òÅÏ¤ë «#define FIX_TIME 18 ¬#define nMAX 8 #define clip_on OnFwd(OUT_B);Wait(10);Off(OUT_B); ®#define clip_off OnRev(OUT_B);Wait(10);Off(OUT_B); ¯#define shoot go_back;Wait(50);go_forward;Wait(30);clip_off; //¥·¥å¡¼¥È
task main() { ¡SetSensor(SENSOR_2, SENSOR_LIGHT); ¢int nOnline=0; // ³¤±¤Æ¹õ¤Ë¤Ê¤Ã¤¿²ó¿ô (¥«¥¦¥ó¥¿) £while (nOnline <nMAX) { ¤if (SENSOR_2 < BLACK){ // Àþ¾å¤Ê¤é turn_left; // º¸¤Ø nOnline++; //¥«¥¦¥ó¥¿Áý¤ä¤¹ } else { ¥if (SENSOR_2 < WHITE){ // ¶³¦ÉÕ¶á¤Ê¤é go_forward; // ľ¿Ê } else { //Àþ¤«¤é³°¤ì¤ì¤Ð ¦turn_right; //±¦¤Ø } nOnline=0; //¥«¥¦¥ó¥¿¤ò¥ê¥»¥Ã¥È } §Wait(STEP); }
short_break; //¾®µÙ·Æ ¡turn_left;Wait(FIX_TIME); //Êý¸þº¸½¤Àµ ¢clip_on; //Êáµå nOnline=0; //¥«¥¦¥ó¥¿¤ò¥ê¥»¥Ã¥È
while (nOnline <nMAX) { if (SENSOR_2 < BLACK){ // Àþ¾å¤Ê¤é turn_left; // º¸¤Ø nOnline++; //¥«¥¦¥ó¥¿Áý¤ä¤¹ } else { if (SENSOR_2 < WHITE){ // ¶³¦ÉÕ¶á¤Ê¤é go_forward; // ľ¿Ê } else { //Àþ¤«¤é³°¤ì¤ì¤Ð turn_right; //±¦¤Ø } nOnline=0; //¥«¥¦¥ó¥¿¤ò¥ê¥»¥Ã¥È } Wait(STEP); }
¡ÖBÃÏÅÀ➡¶Ê¤¬¤ê³Ñ¡×¤ÈƱÍÍ
short_break; //¾®µÙ·Æ ¡turn_right;Wait(FIX_TIME); //Êý¸þ½¤Àµ ¢cross_line; //¸òº¹ÅÀ¤òÅϤë nOnline=0; //¥«¥¦¥ó¥¿¤ò¥ê¥»¥Ã¥È
while (nOnline <nMAX) { if (SENSOR_2 < BLACK){ // Àþ¾å¤Ê¤é turn_left; // º¸¤Ø nOnline++; //¥«¥¦¥ó¥¿Áý¤ä¤¹ } else { if (SENSOR_2 < WHITE){ // ¶³¦ÉÕ¶á¤Ê¤é go_forward; // ľ¿Ê } else { //Àþ¤«¤é³°¤ì¤ì¤Ð turn_right; //±¦¤Ø } nOnline=0; //¥«¥¦¥ó¥¿¤ò¥ê¥»¥Ã¥È } Wait(STEP); }
¡ÖBÃÏÅÀ➡¶Ê¤¬¤ê³Ñ¡×¤ÈƱÍÍ
¤Ê¤ª¡¢¸òº¹ÅÀP¤Ïº¸Â¦¤Ë±è¤Ã¤Æ¿Ê¤ó¤Ç¤¤¤ë¤¿¤á¸òº¹ÅÀ¤ÈȽÃǤ»¤º¤ËÄ̲á
short_break; //¾®µÙ·Æ ¡go_forward;Wait(100); //¥´¡¼¥ëÁ°¤Ø ¢turn_right;Wait(80); //¸åÂà¡õÁ°¿Ê shoot; //¥·¥å¡¼¥È Off(OUT_AC); //Ää»ß nOnline=0; //¥«¥¦¥ó¥¿¤ò¥ê¥»¥Ã¥È }
https://www.youtube.com/watch?v=4MCEfXaGeHw
º£²ó¤Î²ÝÂê¤Ï¡¢¥Ü¡¼¥ë¤ò¶´¤â¤¦¤È¤·¤¿¤é¡¢Àª¤¤¤¬¶¯¤¯¾å¤«¤éÈ´¤±¤Æ¹Ô¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤ê¡¢µÞ¤Ê¥«¡¼¥Ö¤ò¶Ê¤¬¤êÀÚ¤ì¤Ê¤«¤Ã¤¿¤ê¤ÈͽÁÛ¤ÈƱ¤¸Æ°¤¤ò¤·¤Ê¤¤¤è¤¦¤Ê¤³¤È¤¬Â¿¤¯¤¢¤Ã¤¿¡£
¤½¤Î¤¿¤Ó¤Ë²ò·èºö¤ò½Ð¤·¤Æ¤¤¤Ã¤¿·ë²Ì¤³¤Î·Á¤Ë¤¿¤É¤êÃ夤¤¿¡£
¤½¤Î¤¿¤á¡¢¤«¤Ê¤ê¤Î»þ´Ö¤òÈñ¤ä¤·¤¿¤È»×¤¦¡£
¤ä¤Ï¤ê¡¢¤³¤¦¤¤¤Ã¤¿²ÝÂê¤Ï½ç½øΩ¤Æ¤Æ¤æ¤Ã¤¯¤ê¤È¤Ç¤â»þ´Ö¤ò¤«¤±¤Æ¤ä¤Ã¤Æ¤¤¤¯¤³¤È¤¬¹¶Î¬¤Ø¤Î»å¸ý¤Ê¤Î¤À¤È»×¤¦¡£
¤³¤Îµ¡ÂΤϳ§¤ÎÁ°¤Ç¤âÀ®¸ù¤ò¼ý¤á¤ë¤³¤È¤¬¤Ç¤¤¿¤Î¤Ç¤Ê¤«¤Ê¤«¤Î½ÐÍè¤À¤È»×¤¤¤¿¤¤¡£
¤¿¤À¡¢¥×¥í¥°¥é¥à¤¬Ê£»¨¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¤¡¢¸«¤Å¤é¤¤¤È¤³¤í¤¬¤¢¤ë¡£¥µ¥Ö¥ë¡¼¥Á¥ó¤òÍѤ¤¤ì¤Ð¤â¤¦¾¯¤·´Êά²½¤Ç¤¤ë¤Î¤À¤¬¡¢º£²ó¤ÏÃ챤¬Â¤é¤ºÃÇÇ°¤·¤¿¡£
¼¡²ó¤Î²ÝÂê¤Þ¤Ç¤Ë¤Ï¥µ¥Ö¥ë¡¼¥Á¥ó¤â³Ð¤¨¡¢¤â¤Ã¤È¸«¤ä¤¹¤¤¥×¥í¥°¥é¥à¤Î¹½À®¤ò¤·¤Æ¤¤¤¤¿¤¤¡£