²¼¿Þ¤Î¤è¤¦¤Ê¥³¡¼¥¹¤ò³Æ¥Á¡¼¥à¤ÇºîÀ®¤·¡¢¡Ö¥ß¥Ã¥·¥ç¥ó¡×¤ò¿ë¹Ô¤¹¤ë¤¿¤á¤Î¥í¥Ü¥Ã¥È¤òºîÀ®¤¹¤ë¡£
AÃÏÅÀ¤«¤é½Ðȯ ¢ª M ¢ª K(ľ¿Ê) ¢ª L(¥Ô¥ó¥Ý¥ó¶Ì¤ò¤Ä¤«¤à) ¢ª K(±¦ÀÞ) ¢ª J(°ì»þÄä»ß¤Î¸å¡¢º¸ÀÞ) ¢ª I(ľ¿Ê) ¢ª H(ľ¿Ê) ¢ª G(º¸ÀÞ) ¢ª F ¢ª E ¢ª D(°ì»þÄä»ß¤Î¸å¡¢Ä¾¿Ê) ¢ª C(ľ¿Ê) ¢ª B(°ì»þÄä»ß) ¢ª ¥·¥å¡¼¥È¢ª AÃÏÅÀ¤ËÆþ¤ë(¥´¡¼¥ë)
¸òº¹ÅÀ¤Ç¤Ï1ÉôÖÄä»ß¤·¡¢Ãú»úÏ©¤Ç¤Ïľ³ÑÊý¸þ¤Ë¿ÊÆþ¤¹¤ë»þ¤Î¤ß°ì»þÄä»ß¤¹¤ë¡£
²ÝÂê1¤Ç»È¤Ã¤¿¥í¥Ü¥Ã¥È¤ò³èÍÑ¡£ÁȤßΩ¤ÆÀâÌÀ½ñ¤Ë½ñ¤¤¤Æ¤¢¤ë¤â¤Î¤Ë¥«¥é¡¼¥»¥ó¥µ¡¼¤È¥Ü¡¼¥ë¤ò½¦¤¦¤¿¤á¤Î¥·¥ã¥Ù¥ë¤Î¤è¤¦¤Ê¤â¤Î¤òÉÕ¤±¤¿¡£
²ÝÂê¤ÎÌÜŪ¤¬¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤¹¤ë¤³¤È¤Ê¤Î¤Ç¡¢¤Þ¤º¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò»È¤Ã¤Æ¥´¡¼¥ë¤Þ¤Ç¤¿¤É¤êÃ夯¤³¤È¤òÂè°ìÌÜɸ¤Ë¤·¤¿¡£
¤É¤¦¤ä¤Ã¤ÆÀþ¤ò¤¿¤É¤ë¤«¤À¤¬´ðËÜŪ¤Ë²¼¿Þ¤Î¤è¤¦¤Ë¥×¥í¥°¥é¥à¤¹¤ë¡£
¹õ¤¤Àþ¤ò¤¿¤É¤ë»þ¤ò¹Í¤¨¤ë¡£ÀĤϥí¥Ü¥Ã¥È¡¢ÀÖ¤¬Æ°¤¯µ°ÀפȤ¹¤ë¡£¥«¥é¡¼¥»¥ó¥µ¡¼¤ò²¼¤ò¸þ¤¯¤è¤¦¤Ë¥í¥Ü¥Ã¥È¤Ë¼è¤êÉÕ¤±¡¢ÌÀ¤ë¤µ(Çò¤¬¤É¤ì¤À¤±Â¿¤¤¤«)¤ò·×¬¤¹¤ë¤³¤È¤Ç¹õÀþ¤Î¾å¤Ë¤¤¤ë¤Î¤«¡¢¤¤¤Ê¤¤¤Î¤«¤òȽÃǤ¹¤ë¡£¤½¤·¤Æ¹õÀþ¤Î¾å¡¢¤Ä¤Þ¤ê¹õ¤¬Â¿¤¤¤È¤º¸¤Ë¶Ê¤¬¤ê¡¢¹õÀþ¤Î¾å¤Ë¤¤¤Ê¤¤¤È¤¤Ï±¦¤Ë¶Ê¤¬¤ë¤³¤È¤òϢ³¤·¤Æ¹Ô¤¨¤Ð¹õÀþ¤Îº¸Â¦¤òÁö¤ë¤³¤È¤¬¤Ç¤¤ë¡£
¤Þ¤¿¡¢¹õÀþ¤Î±¦Â¦¤òÁö¤ê¤¿¤¤¤È¤¤Ï²¼¿Þ¤Î¤è¤¦¤Ë¶Ê¤¬¤ëÊý¸þ¤òµÕ¤Ë¤¹¤ì¤Ð¤¤¤¤¡£
Àè¤Ë¸À¤¦¤Èº£²ó¡Ö¸òº¹ÅÀ¡×¤ÏȽÃǤ·¤Æ¤Þ¤»¤ó¡£¡Ö¹õ¤¬¤¹¤´¤¤Â¿¤¤¾ì½ê¡×¤Èǧ¼±¤µ¤»¤Þ¤·¤¿¡£¤½¤Î¤¿¤á¸òº¹ÅÀ¤Ç¤Ê¤¯¤È¤â¹õ¤±¤ì¤Ð¥í¥Ü¥Ã¥È¤Ï¡Ö¸òº¹ÅÀ¡×¤Èǧ¼±¤·¤Æ¤·¤Þ¤¦¤Ç¤·¤ç¤¦¡£¤ª¤½¤é¤¯º£²ó¤Î¥ë¡¼¥È°Ê³°¤Ï¤Þ¤º¥´¡¼¥ë¤Þ¤Ç¤¿¤É¤êÃ失¤Þ¤»¤ó¡£
º£²óºî¤Ã¤¿¥×¥í¥°¥é¥à¤Î´ðËܤϥ饤¥ó¥È¥ì¡¼¥¹¡¢¤½¤ì¤È²¿²ó¹õ¤¤Éôʬ¤òÄ̤俤«¤Ç¤Ç¤¤Æ¤¤¤Þ¤¹¡£¤½¤·¤Æ¤½¤Î¡Ö²¿²óÌܤιõ¤¤Éôʬ¡×¤«¤Ç¸òº¹ÅÀ¤òȽÃǤ·¤Æ¤¤¤Þ¤¹¡£
#!/usr/bin/env python3 from ev3dev.ev3 import* from time import sleep
cs = ColorSensor('in2')¡¡¡¡¡¡¥«¥é¡¼¥»¥ó¥µ¡¼ l = LargeMotor('outA')¡¡¡¡¡¡ º¸¤Î¥¿¥¤¥ä r = LargeMotor('outB')¡¡¡¡¡¡ ±¦¤Î¥¿¥¤¥ä a = Motor('outC')¡¡¡¡¡¡¡¡¡¡¡¡¥·¥ã¥Ù¥ë cs.mode = 'COL-REFLECT'¡¡¡¡¡¡¥«¥é¡¼¥»¥ó¥µ¡¼¤Î¥â¡¼¥É
¥«¥é¡¼¥»¥ó¥µ¡¼¤Î¥â¡¼¥É¤òÌÀ¤ë¤µ¤òȽÃǤ¹¤ë¤â¤Î¤ËÊѤ¨¤Æ¤ª¤¯
i = 0 k = 0 p = 0
¹õ¤¤Àþ¤ò²¿²ó±Û¤¨¤¿¤«¤ò¿ô¤¨¤ëÊÑ¿ô¡£¹õ¤¤Àþ¤ò¿ô¤¨¤ë¤³¤È¤Ç¸òº¹ÅÀ¤äT»úÏ©¤òǧ¼±¤µ¤»¡¢¤½¤Î²ó¿ô¤Ë¤è¤Ã¤Æº£»È¤Ã¤Æ¤¤¤ë¥×¥í¥°¥é¥à¤«¤éÊÌ¤Î¥×¥í¥°¥é¥à¤Ø°Ü¹Ô¤µ¤»¤¿¡£i,k,p¤Ï¸Ä¿ÍŪ¤Ë¾ì½ê¤Çʬ¤±¤¿Êý¤¬¤ï¤«¤ê¤ä¤¹¤¤µ¤¤¬¤·¤¿¤Î¤Çʬ¤±¤¿¤¬Ìò³ä¤¬Æ±¤¸¤Ê¤Î¤Ç°ì¤Ä¤Ë¤·¤Æ¤â¹½¤ï¤Ê¤¤¡£¤à¤·¤íʬ¤±¤Ê¤¤Êý¤¬¤ï¤«¤ê¤ä¤¹¤«¤Ã¤¿¤«¤â¤·¤ì¤Ê¤¤¡£
º£²ó°ì²ó¤·¤«»È¤ï¤Ê¤¤Æ°ºî¤ò´Ø¿ô¤È¤·¤Æºî¤Ã¤¿¤ê¤·¤¿¤¿¤á¸å¤«¤éÆɤà¤È¤¹¤´¤¯¤ï¤«¤ê¤Ë¤¯¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¥ê¥»¥Ã¥È
def motor_init(): l.reset() r.reset() a.reset()
Á°¤Ë¿Ê¤à
def move_forward(): l.run_timed(time_sp=100, speed_sp=120, stop_action='hold') r.run_timed(time_sp=100, speed_sp=120, stop_action='hold') sleep(0.1)
Á°¤Ë¿Ê¤à2
def move_forward2(): l.run_timed(time_sp=250, speed_sp=200, stop_action='hold') r.run_timed(time_sp=250, speed_sp=200, stop_action='hold') sleep(0.25)
Á°¤Ë¿Ê¤à3
def move_forward3(): l.run_timed(time_sp=300, speed_sp=240, stop_action='hold') r.run_timed(time_sp=300, speed_sp=60, stop_action='hold') sleep(0.3)
Á°¤Ë¿Ê¤à4
def move_forward4(): l.run_timed(time_sp=300, speed_sp=200, stop_action='hold') r.run_timed(time_sp=300, speed_sp=200, stop_action='hold') sleep(0.3)
º¸¤Ë¶Ê¤¬¤ë¡¢¥é¥¤¥ó¥È¥ì¡¼¥¹ÍÑ¡£
def move_left(): r.run_timed(time_sp=100, speed_sp=120, stop_action='hold') sleep(0.1)
º¸¤Ë¶Ê¤¬¤ë2
def move_left2(): l.run_timed(time_sp=2000, speed_sp=0, stop_action='hold') r.run_timed(time_sp=2000, speed_sp=90, stop_action='hold') sleep(2)
º¸¤Ë¶Ê¤¬¤ë3
def move_left3(): l.run_timed(time_sp=2000, speed_sp=20, stop_action='hold') r.run_timed(time_sp=2000, speed_sp=100, stop_action='hold') sleep(2)
±¦¤Ë¶Ê¤¬¤ë¡¢¥é¥¤¥ó¥È¥ì¡¼¥¹ÍÑ¡£
def move_right(): l.run_timed(time_sp=100, speed_sp=120, stop_action='hold') sleep(0.1)
±¦¤Ë¶Ê¤¬¤ë2
def move_right2(): r.run_timed(time_sp=2000, speed_sp=-40, stop_action='hold') l.run_timed(time_sp=2000, speed_sp=100, stop_action='hold') sleep(2)
±¦¤Ë¶Ê¤¬¤ë3
def move_right3(): l.run_timed(time_sp=100, speed_sp=200, stop_action='hold') sleep(0.1)
¥Ð¥Ã¥¯¤¹¤ë
def move_back(): l.run_timed(time_sp=100, speed_sp=-80, stop_action='hold') r.run_timed(time_sp=100, speed_sp=-80, stop_action='hold') sleep(0.1)
¥Ð¥Ã¥¯¤¹¤ë2
def move_back2(): l.run_timed(time_sp=100, speed_sp=-120, stop_action='hold') r.run_timed(time_sp=100, speed_sp=-120, stop_action='hold') sleep(0.1)
¥Ð¥Ã¥¯¤¹¤ë3
def move_back3(): l.run_timed(time_sp=3200, speed_sp=-120, stop_action='hold') r.run_timed(time_sp=3200, speed_sp=-120, stop_action='hold') sleep(3.2)
¥·¥ã¥Ù¥ë¤ò¾å¤²¤ë
def move_up(): a.run_timed(time_sp=800, speed_sp=-80, stop_action='hold') sleep(0.8)
¥·¥ã¥Ù¥ë¤ò²¼¤²¤ë
def move_down(): a.run_timed(time_sp=800, speed_sp=80, stop_action='hold') sleep(0.8)
¤½¤Î¾ì¤Ç²óž¡¢¤À¤¤¤¿¤¤180ÅÙ²ó¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë
def move_kaiten(): l.run_timed(time_sp=3000, speed_sp=110, stop_action='hold') r.run_timed(time_sp=3000, speed_sp=-110, stop_action='hold') sleep(3)
ºÇ¸å¤ÎÆ°ºî¡¢ÀµÄ¾²¿¤Î¤¿¤á¤ÎÆ°ºî¤Ê¤Î¤«»ä¤Ë¤â¤ï¤«¤é¤Ê¤¤¡£Â¿Ê¬µ¤Ê¬¤Çºî¤Ã¤¿¤â¤Î¡£
def move_last(): l.run_timed(time_sp=500, speed_sp=50, stop_action='hold') r.run_timed(time_sp=500, speed_sp=50, stop_action='hold') sleep(0.5) l.run_timed(time_sp=3000, speed_sp=100, stop_action='hold') r.run_timed(time_sp=3000, speed_sp=100, stop_action='hold') sleep(3)
¥ê¥»¥Ã¥È
motor_init()
while i == 0: state = cs.value() print (state) if 80 > state > 65: move_right() elif 50 > state > 15: move_left() elif 86 >= state >= 80: move_back() elif state > 86: i+=1 move_up() move_kaiten() else: move_forward() else:
º£²ó¤Î¥×¥í¥°¥é¥à¤Ï¾ï¤Ë¸½ºß¤Î¥«¥é¡¼¥»¥ó¥µ¡¼¤ÎÃͤòstate¤Ë¤ª¤ÊѤ¨Â³¤±¡¢state¤ÎÃͤˤè¤Ã¤ÆÆ°ºî¤ò·èÄꤹ¤ë¡£¤Ê¤ª¡¢Í½ÁÛ¤ÈÆ°ºî¤¬¾ì¹ç¡¢½¤Àµ¤¬¤·¤ä¤¹¤¤¤è¤¦¤Ë¤½¤Î»þ¤Î¥«¥é¡¼¥»¥ó¥µ¡¼¤ÎÃͤ¬³Îǧ¤Ç¤¤ë¤è¤¦¤Ëprint(state)¤Ç¤·¤Æ¤¤¤ë¡£
while´Ø¿ô¤ò»È¤¤¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¹Ô¤¦¡£
Àþ¤Îº¸Â¦¤òÄ̤롣¤Þ¤¿¡¢¾å¤Ë½ñ¤¤¤¿¥é¥¤¥ó¥È¥ì¡¼¥¹¤ÎÊýË¡¤Ë²Ã¤¨¤ÆÇò¤¬Â¿¤¹¤®¤ë¤È¤¸å¤í¤ËÌá¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤ë¡£¤³¤¦¤·¤Ê¤¤¤ÈµÞ¤Ê¥«¡¼¥Ö¤¬¤¦¤Þ¤¯¶Ê¤¬¤ì¤Ê¤«¤Ã¤¿¡£
M¤«¤éK¤Þ¤Ç¤Ï¤¿¤À¥é¥¤¥ó¥È¥ì¡¼¥¹¤·¤Æ¤¤¤ì¤Ð¤¤¤¤¤Î¤À¤¬¤½¤Î¤Þ¤Þ¤À¤ÈK¤«¤éJ¤Ë¹Ô¤Ã¤Æ¤·¤Þ¤¦¡£¤Î¤Çstate¤¬15°Ê²¼¤Î»þ¡¢¤Ä¤Þ¤êÀþKL¤Î¾å¤òÄ̤ë»þ¤Þ¤Ã¤¹¤°¿Ê¤à¤è¤¦¤Ë¤·¤Æ¤¤¤ë¡£²¿Åٻ¤¿·ë²Ì¤«¤éM¤«¤éL¤Þ¤Çstate¤Ï86¤Þ¤Ç¤·¤«¤¤¤«¤Ê¤¤¤³¤È¤¬Ê¬¤«¤Ã¤¿¡£¤Þ¤¿¡¢L¤ËÃ夯¤ÈÁ°¤Ë¿Ê¤ß¡¢¸å¤í¤ËÌá¤ë¤È¤¤¤¦Æ°ºî¤ò²¿²ó¤«·«¤êÊÖ¤·¤¿¸åstate¤¬87¤òĶ¤¨¤ë¤³¤È¤¬Ê¬¤«¤Ã¤¿¡£¤Ê¤Î¤Çstate>86¤È¤Ê¤Ã¤¿¤È¤i¤ò+1¤·¡¢¥Ü¡¼¥ë¤ò½¦¤¤¡¢180Åٲ󞤹¤ë¤è¤¦¤Ë¤·¤¿¡£¤Þ¤¿¤³¤Î¥×¥í¥°¥é¥à¤Ïi¤¬0¤Î´Ö¤À¤±Â³¤¯¤Î¤Çi¤ò+1¤·¤¿¤³¤È¤Ç¼¡¤Î¥×¥í¥°¥é¥à¤Ë¹Ô¤¯¤è¤¦¤Ë¤·¤Æ¤¤¤ë¡£¤Á¤Ê¤ß¤Ë¤³¤³¤Ç¤Á¤ã¤ó¤È¥Ü¡¼¥ë¤ò½¦¤¨¤¿¤Î¤Ï2²ó¤À¤±¤À¤Ã¤¿¡£
L¤Ç²óž¤¹¤ëÁ°¤Ï¥í¥Ü¥Ã¥È¤Ï²¼¿Þ¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
ÀÖÀþ¤¬¥í¥Ü¥Ã¥È¤òɽ¤·¤È¤¬¤Ã¤Æ¤¤¤ëÊý¤¬Á°¤Ç¤¹¡£¥«¥é¡¼¥»¥ó¥µ¡¼¤ÏÁ°¤Ë¤Ä¤¤¤Æ¤¤¤ë¤Î¤Ç¤³¤Î¤Þ¤Þ180Åٲ󞤹¤ë¤È¥«¥é¡¼¥»¥ó¥µ¡¼¤¬Àþ¤Î±¦Â¦¤Ë¤¤¤¯¤Î¤Ç¤³¤³¤«¤éÀþ¤Î±¦Â¦¤òÁö¤ê¤Þ¤¹¡£
while i == 1: state = cs.value() print (state) if 80 > state > 65: move_left() elif 50 > state > 15: move_right() elif 15 >= state: i+=1 move_forward2() move_right2() elif state >= 80: move_back() else: move_forward() else:
º£²ó¤ÏK¤Ç¶Ê¤¬¤ë¤¿¤á15°Ê²¼¤Çi¤ò+1¤·¡¢¾¯¤·Á°¤Ë¿Ê¤ß¡¢±¦¤Ë¶Ê¤¬¤ë¤è¤¦¤Ë¤¹¤ë¡£i¤ò+1¤¹¤ëÍýͳ¤ÏÁ°¤Î¥×¥í¥°¥é¥à¤ÈƱ¤¸¡£Á°¤Ë¿Ê¤ß±¦¤Ë¶Ê¤¬¤ë¤Î¤Ï¤³¤Î¸åÀþ¤Îº¸Â¦¤òÁö¤ë¤¿¤á¡£¤³¤³¤Ç±¿¤¬¤è¤«¤Ã¤¿¤Î¤«¡¢¤¿¤Þ¤¿¤Þ¥«¥é¡¼¥»¥ó¥µ¡¼¤¬J¤Î¾å¤ËÍè¤ë¤¿¤áK¤«¤éJ¤Î¥×¥í¥°¥é¥à¤¬ÉÔÍפˡ£
while i == 2: state = cs.value() print(state) if 80 > state > 65: move_right() elif 50 > state > 15: move_left() elif 15 >= state: i+=1 sleep(1) move_left2() move_forward2() elif state >= 80: move_back() else: move_forward() else:
°Õ¿Þ¤»¤ºJ¤Î¾å¤ËÍè¤Ê¤«¤Ã¤¿¤È¤¤è¤¦¤ÎÊݸ±¤Ë¤Ê¤Ã¤¿¥×¥í¥°¥é¥à¡£J¤Ç°ìÅٻߤޤ뤿¤ásleep(1)¤òÆþ¤ì¤Æ¤¤¤ë¡£¤Þ¤¿¤³¤³¤Î¥×¥í¥°¥é¥à¤Î
move_left2() move_forward2()
¤Ï¼¡¤ÎJ¤«¤éG¤Þ¤Ç¤Î¹àÌܤÇÀâÌÀ¤¹¤ë¡£
while i == 3 and 1 >= k: state = cs.value() print(state,k) if 85 > state >= 75: move_right3() elif 75 > state > 65: move_right() elif 50 > state > 10: move_left() elif state >= 85: move_back() elif 10 >= state: k+=1 move_forward3() else: move_forward() else:
¤Þ¤ºJ¤Ç»ß¤Þ¤Ã¤¿¤È¤³¤í¤«¤é¤ÎÆ°¤¤òÀâÌÀ¤¹¤ë¡£
ÀÖÀþ¤¬¥í¥Ü¥Ã¥È¡¢¤È¤¬¤Ã¤Æ¤¤¤ëÊý¤¬Á°¡£¾å¿Þ¤ÎÈÖ¹æ¤Î½ç¤Ë¿Ê¤à¡£
move_left2() move_forward2()
¤Î¥×¥í¥°¥é¥à¤Ç¿Þ¤Î¢¤Þ¤Ç¤¤¤¯¡£¤½¤Î¸åJ¤«¤éH¤Î¥×¥í¥°¥é¥à¤Î
elif state >= 85: move_back()
¤Ë¤è¤Ã¤Æ£¤Þ¤ÇÌá¤êÀþ¤Îº¸Â¦¤òÁö¤ë¡£
J¤«¤éH¤Þ¤Ç¤Î¥×¥í¥°¥é¥à¤Ï¹õÀþ¤Ï¤Þ¤Ã¤¹¤°Ä̤ë¤è¤¦¤Ë¤·¡¢¹õÀþ¤ò2²óÄ̤俤齪¤ï¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤ë¡£
while k == 2: state = cs.value() print(state) if 80 > state > 65: move_right() elif 50 > state > 15: move_left() elif state >= 80: move_back() elif 15 >= state: k+=1 move_left3() else: move_forward() else:
G¤ËÃ夯¤È
move_left3()
¤Ë¤è¤Ã¤Æ²¼¿Þ¤ÎÀִݤΰÌÃ֤˰ÜÆ°¤µ¤»¤ë¡£
while p == 0: state = cs.value() print(state) if state > 65: move_left() elif 50 > state > 15: move_right() elif 15 >= state: p+=1 sleep(1) move_forward4() else: move_forward() else:
¾å¿Þ¤ÎÀִݤΰÌÃÖ¤«¤é¥é¥¤¥ó¥È¥ì¡¼¥¹¤ÎÆ°¤¤ÇÀþ¤Þ¤ÇÌá¤ê¡¢Àþ¤Î±¦Â¦¤òÁö¤ë¡£D¤Î¸òº¹ÅÀ¤ËÃ夯¤Èsleep´Ø¿ô¤Ç°ìÅٻߤޤê°ìµ¤¤Ë¿Ê¤à¤³¤È¤Ç¸òº¹ÅÀ¤òĶ¤¨¤ë¡£
while p == 1: state = cs.value() print(state) if state > 65: move_left() elif 50 > state > 15: move_right() elif 15 >= state: p+=1 sleep(1) move_down() move_last() else: move_forward()
ºÇ¸å¤â¤³¤ì¤Þ¤Ç¤ÈƱÍͤËA¤Î¹õÀþ¤òǧ¼±¤·¤¿¤é°ìÅÙsleep´Ø¿ô¤Ç»ß¤Þ¤ê¡¢¥·¥ã¥Ù¥ë¤ò²¼¤²¡¢ºÇ¸å¤ËÆæ¤ÎÆ°¤¤ò¤¹¤ë¡£
2²ó´°àú¤Ë¥ß¥Ã¥·¥ç¥ó¤ò¥¯¥ê¥¢¤·¤¿¤Î¤Ç»ä¤È¤·¤Æ¤ÏËþ¤Τ¤¤¯·ë²Ì¤À¤Ã¤¿¡£¤¿¤À¡¢¥é¥¤¥ó¥È¥ì¡¼¥¹¤È¸À¤Ã¤Æ¤¤¤¤¤Î¤«Èù̯¤ÊÅÀ¤¬¤«¤Ê¤ê¤¢¤Ã¤¿¤Î¤È¥´¡¼¥ë¤¹¤ë¤³¤È¤òÍ¥À褷¤¿¤¿¤á¥Ü¡¼¥ë¤ò½¦¤¦¤Î¤¬¤¢¤Þ¤ê¤¦¤Þ¤¯¤¤¤«¤Ê¤«¤Ã¤¿¡£
ºÇ¸å¤ËÆɤߤ䤹¤¤¤è¤¦¤Ë¥×¥í¥°¥é¥àÁ´Ê¸¤òºÜ¤»¤Æ¤ª¤¤Þ¤¹¡£
#!/usr/bin/env python3 from ev3dev.ev3 import* from time import sleep cs = ColorSensor('in2') l = LargeMotor('outA') r = LargeMotor('outB') a = Motor('outC') cs.mode = 'COL-REFLECT' i = 0 k = 0 p = 0 def motor_init(): l.reset() r.reset() a.reset() def move_forward(): l.run_timed(time_sp=100, speed_sp=120, stop_action='hold') r.run_timed(time_sp=100, speed_sp=120, stop_action='hold') sleep(0.1) def move_forward2(): l.run_timed(time_sp=250, speed_sp=200, stop_action='hold') r.run_timed(time_sp=250, speed_sp=200, stop_action='hold') sleep(0.25) def move_forward3(): l.run_timed(time_sp=300, speed_sp=240, stop_action='hold') r.run_timed(time_sp=300, speed_sp=60, stop_action='hold') sleep(0.3) def move_forward4(): l.run_timed(time_sp=300, speed_sp=200, stop_action='hold') r.run_timed(time_sp=300, speed_sp=200, stop_action='hold') sleep(0.3) def move_left(): r.run_timed(time_sp=100, speed_sp=120, stop_action='hold') sleep(0.1) def move_left2(): l.run_timed(time_sp=2000, speed_sp=0, stop_action='hold') r.run_timed(time_sp=2000, speed_sp=90, stop_action='hold') sleep(2) def move_left3(): l.run_timed(time_sp=2000, speed_sp=20, stop_action='hold') r.run_timed(time_sp=2000, speed_sp=100, stop_action='hold') sleep(2) def move_right(): l.run_timed(time_sp=100, speed_sp=120, stop_action='hold') sleep(0.1) def move_right2(): r.run_timed(time_sp=2000, speed_sp=-40, stop_action='hold') l.run_timed(time_sp=2000, speed_sp=100, stop_action='hold') sleep(2) def move_right3(): l.run_timed(time_sp=100, speed_sp=200, stop_action='hold') sleep(0.1) def move_back(): l.run_timed(time_sp=100, speed_sp=-80, stop_action='hold') r.run_timed(time_sp=100, speed_sp=-80, stop_action='hold') sleep(0.1) def move_back2(): l.run_timed(time_sp=100, speed_sp=-120, stop_action='hold') r.run_timed(time_sp=100, speed_sp=-120, stop_action='hold') sleep(0.1) def move_back3(): l.run_timed(time_sp=3200, speed_sp=-120, stop_action='hold') r.run_timed(time_sp=3200, speed_sp=-120, stop_action='hold') sleep(3.2) def move_up(): a.run_timed(time_sp=800, speed_sp=-80, stop_action='hold') sleep(0.8) def move_down(): a.run_timed(time_sp=800, speed_sp=80, stop_action='hold') sleep(0.8) def move_kaiten(): l.run_timed(time_sp=3000, speed_sp=110, stop_action='hold') r.run_timed(time_sp=3000, speed_sp=-110, stop_action='hold') sleep(3) def move_last(): l.run_timed(time_sp=500, speed_sp=50, stop_action='hold') r.run_timed(time_sp=500, speed_sp=50, stop_action='hold') sleep(0.5) l.run_timed(time_sp=3000, speed_sp=100, stop_action='hold') r.run_timed(time_sp=3000, speed_sp=100, stop_action='hold') sleep(3) motor_init() while i == 0: state = cs.value() print (state) if 80 > state > 65: move_right() elif 50 > state > 15: move_left() elif 86 >= state >= 80: move_back() elif state > 86: i+=1 move_up() move_kaiten() else: move_forward() else: while i == 1: state = cs.value() print (state) if 80 > state > 65: move_left() elif 50 > state > 15: move_right() elif 15 >= state: i+=1 move_forward2() move_right2() elif state >= 80: move_back() else: move_forward() else: while i == 2: state = cs.value() print(state) if 80 > state > 65: move_right() elif 50 > state > 15: move_left() elif 15 >= state: i+=1 sleep(1) move_left2() move_forward2() elif state >= 80: move_back() else: move_forward() else: while i == 3 and 1 >= k: state = cs.value() print(state,k) if 85 > state >= 75: move_right3() elif 75 > state > 65: move_right() elif 50 > state > 10: move_left() elif state >= 85: move_back() elif 10 >= state: k+=1 move_forward3() else: move_forward() else: while k == 2: state = cs.value() print(state) if 80 > state > 65: move_right() elif 50 > state > 15: move_left() elif state >= 80: move_back() elif 15 >= state: k+=1 move_left3() else: move_forward() else: while p == 0: state = cs.value() print(state) if state > 65: move_left() elif 50 > state > 15: move_right() elif 15 >= state: p+=1 sleep(1) move_forward4() else: move_forward() else: while p == 1: state = cs.value() print(state) if state > 65: move_left() elif 50 > state > 15: move_right() elif 15 >= state: p+=1 sleep(1) move_down() move_last() else: move_forward()