*Ìܼ¡ [#x421dcc9]
#contents
*¤Ï¤¸¤á¤Ë [#u0445827]
#ref(DSC_0459.JPG)
º£²ó¤Î²ÝÂê¤Ï·ÐÏ©¤ò¹õ¤¤Àþ¤Ë¤½¤Ã¤ÆÆ°¤¯¥í¥Ü¥Ã¥È¤ÎºîÀ®¤Ç¤¢¤ë¡£¤¿¤À¤·¡¢¤Ê¤ë¤Ù¤¯Â®¤¯Àµ³Î¤ËÆ°¤¯¥í¥Ü¥Ã¥È¤Ë¤Ê¤ë¤è¤¦¤Ë¹©Éפ·¤Æ¡¢¸òº¹ÅÀ¤Ç¤Ï1ÉôÖÄä»ß¤¹¤ë¤È¤¤¤¦¾ò·ï¤¬¤¢¤ë¡£~
»ä¤ÏBÃÏÅÀ¤«¤éCÃÏÅÀ¤Ø ¡¦BÃÏÅÀ ¢ª ­¡R±¦ÀÞ ¢ª ­¢Qľ¿Ê ¢ª ­£Qľ¿Ê ¢ª­¤P±¦ÀÞ ¢ª ­¥S±¦ÀÞ ¢ª CÃÏÅÀ¡¡¤³¤Î¥³¡¼¥¹¤òÁö¤é¤»¤¿¡£
*¥í¥Ü¥Ã¥È¤ÎÀâÌÀ [#g224fc57]
#ref(DSC_0439.JPG)
º£²ó¡¢¹õÀþ¤È²¼ÃϤÎÇò¤Îº¸Â¦¤Î¶­³¦¤Ë¹ç¤ï¤»¤Æ¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤¹¤ë¤è¤¦¤Ë¹Í¤¨¤¿¡£¤Ê¤Î¤Ç¡¢º¸¤Ë¶Ê¤¬¤ë¤È¤­¤Ë¾¯¤·¾®²ó¤ê¤¬¤­¤¯¤è¤¦¤ËColorSensor¤òµ¡ÂÎÀµÌ̤«¤é¸«¤Æ±¦Â¦¤Ë¼è¤êÉÕ¤±¤¿¡£
#ref(DSC_0445.JPG)
¤Þ¤¿¡¢Áö¹ÔÃæ¤Ë¹õ¤ÈÇò¤ÎColorValue¤ò°ÂÄꤵ¤»¤ë¤¿¤á¡¢ColorSensor¤ÏÃÏÌ̤«¤éÌó1cmÎ¥¤ì¤Æ¼è¤êÉÕ¤±¤é¤ì¤ë¤è¤¦¤Ë¤·¤¿¡£µ¡ÂΤÀ¤±¤Ç¹Í¤¨¤ë¤È¡¢Á°²ó¤Î²ÝÂ꣱¤È¤Û¤ÜƱ¤¸ºî¤ê¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
*¥×¥í¥°¥é¥à¤ÎÀâÌÀ [#x7a17a04]
 #!/usr/bin/python
 
 import ev3dev.ev3 as ev3
 import time

¤Þ¤º¡¢ev3¤Ètime´Ø¿ô¤òƳÆþ¤¹¤ë¡£

 ml = ev3.LargeMotor('outA')
 mr = ev3.LargeMotor('outB')
 cs = ev3.ColorSensor('in1')

ml¤òµ¡Âκ¸¤Î¥â¡¼¥¿¡¼~
mr¤òµ¡Âα¦¤Î¥â¡¼¥¿¡¼¤È¤·¤¿¡£~
cs¤Ïµ¡ÂÎÁ°Êý¤Ë¼è¤êÉÕ¤±¤¿¥«¥é¡¼¥»¥ó¥µ¡¼¤Ç¤¢¤ë¡£

 def line_follow():
         t0 = time.time()
         while time.time() - t0 < 0.3 :
                 if cs.value () > 38 :
                         mr.run_forever(duty_cycle_sp=0)
                         ml.run_forever(duty_cycle_sp=30)
                         t0 = time.time()
 
                 elif cs.value () > 30 :
                         mr.run_forever(duty_cycle_sp=20)
                         ml.run_forever(duty_cycle_sp=20)
                         t0 = time.time()
 
                 elif cs.value () > 12 :
                         mr.run_forever(duty_cycle_sp=30)
                         ml.run_forever(duty_cycle_sp=-15)
                         t0 = time.time()
 
                 else :
                         mr.run_forever(duty_cycle_sp=30)
                         ml.run_forever(duty_cycle_sp=-5)

¼¡¤Ë¹Ô¤Ã¤¿¤Î¤Ï¥«¥é¡¼¥»¥ó¥µ¡¼¤ò»È¤Ã¤¿Ä̾ï¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î¥×¥í¥°¥é¥ß¥ó¥°¤Ç¤¢¤ë¡£¥é¥¤¥ó¥È¥ì¡¼¥¹¤Î¥×¥í¥°¥é¥à¤Ïline_follow¤ÇÄêµÁ¤·¤¿¡£¾åµ­¤Î¥×¥í¥°¥é¥ß¥ó¥°¤Ë¤Ä¤¤¤ÆÀâÌÀ¤ò¤¹¤ë¡£

 t0 = time.time()
 while time.time() - t0 < 0.3 :

¤³¤Î¥×¥í¥°¥é¥à¤¬¹¹¿·¤µ¤ì¤Ê¤¤¸Â¤ê0.3Éäǥץ饰¥é¥à¤ò½ªÎ»¤¹¤ë¤³¤È¤òɽ¤¹¡£

 if cs.value () > 38 :
         mr.run_forever(duty_cycle_sp=0)
         ml.run_forever(duty_cycle_sp=30)
         t0 = time.time()

¤³¤³¤Ç¡¢if¹½Ê¸¤òÍѤ¤¤Æ¤Þ¤ºcs.value¤¬38¤òĶ¤¨¤ë¤È¤­¡¢¤Ä¤Þ¤êÇò¤Î»þ¤Ïº¸¥â¡¼¥¿¡¼¤À¤±¤ò²óž¤µ¤»±¦¤Ë¶Ê¤¬¤ë¤è¤¦¤ËÀßÄꤷ¤¿¡£¤Þ¤¿¡¢cs.value¤¬38¤òĶ¤¨¤Ê¤¤¤È¤­¤Ï¡¢¤Ä¤Þ¤ê¹õ¤Ë¾¯¤·¤À¤±Æþ¤Ã¤¿¤È¤­¡¢¤³¤Î¥×¥í¥°¥é¥à¤òÄ̲᤹¤ë¡£

 elif cs.value () > 30 :
          mr.run_forever(duty_cycle_sp=20)
          ml.run_forever(duty_cycle_sp=20)
          t0 = time.time()
 
 elif cs.value () > 12 :
           mr.run_forever(duty_cycle_sp=30)
           ml.run_forever(duty_cycle_sp=-15)
           t0 = time.time()

¤½¤·¤Æ¾åµ­¤Ë³¤­¡¢elif¹½Ê¸¤òÍѤ¤¡¢cs.value¤¬31¡Á38¤Î»þ¡¢¤Ä¤Þ¤ê¥é¥¤¥ó¤Î¶­³¦¤Î»þ¤Ïľ¿Ê¤ò¤¹¤ë¤è¤¦¤Ë¥×¥í¥°¥é¥à¤·¡¢cs.value¤¬30¤è¤êÂ礭¤¤ÃͤÀ¤È¥×¥í¥°¥é¥à¤òÄ̲᤹¤ë¤È¤¤¤¦¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¤Þ¤¿cs.value¤¬13¡Á30¤Î»þ¡¢¤Ä¤Þ¤ê¥é¥¤¥ó¤Î¶­³¦¤ÈÃæ¿´¤Î´Ö¤Ë¤¤¤ë¤È¤­¡¢º¸¤Ë¤¹¤³¤·Àû²ó¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤ë¡£cs.value¤¬12¤è¤ê¾®¤µ¤¤¤È¤­¤Ï¤³¤Î¥×¥í¥°¥é¥à¤òÄ̲᤹¤ë¡£
 
 else :
           mr.run_forever(duty_cycle_sp=30)
           ml.run_forever(duty_cycle_sp=-5)

ºÇ¸å¤Ëelseʸ¤òÍѤ¤¤Æ¡¢¾åµ­¤Î¥×¥í¥°¥é¥à¤òÁ´¤ÆÄ̲ᤷ¤¿¤È¤­¡¢¤Ä¤Þ¤ê¥é¥¤¥ó¤ÎÃæ±û¤ÇÆ°¤¤¤¿¤È¤­¡¢º¸¤Ë¶Ê¤¬¤ë¥×¥í¥°¥é¥à¤Ë¤·¤¿¡£

 def cross_forward(t):
         mr.run_forever(duty_cycle_sp=10)
         ml.run_forever(duty_cycle_sp=20)
         time.sleep(t/1000)
         mr.stop()
         ml.stop()
 
 def cross_left(t):
         mr.run_forever(duty_cycle_sp=20)
         ml.run_forever(duty_cycle_sp=-20)
         time.sleep(t/1000)
         mr.stop()
         ml.stop()
 
 def cross_right(t):
         mr.run_forever(duty_cycle_sp=-10)
         ml.run_forever(duty_cycle_sp=30)
         time.sleep(t/1000)
         mr.stop()
         ml.stop()

¾åµ­¤Î¥×¥í¥°¥é¥à¤Ç¤ÏÁ°²ó¤Î²ÝÂ꣱¤òÍøÍѤ·¤Æ¸òº¹ÅÀ¤Ç»ß¤Þ¤Ã¤¿¤È¤­¤Ë¸òº¹ÅÀ¤Ç¤Î¼¡¤ÎÆ°¤­¤ò¥¹¥à¡¼¥º¤Ë¤¹¤ë¤¿¤á¤Ë¸òº¹ÅÀľ¿Ê¡¢¸òº¹ÅÀº¸ÀÞ¡¢¸òº¹ÅÀ±¦ÀÞ¤ò¤½¤ì¤¾¤ìcross_forward¡¢cross_left¡¢cross_right¤ÇÄêµÁ¤·¤¿¡£¤Þ¤¿¡¢¡Ê¡Ë¤ÎÃæ¤Ë»þ´Ö¤òÆþ¤ì¤ë¤³¤È¤Ç¤½¤ì¤¾¤ì¤Î¥×¥í¥°¥é¥à¤ÎÆ°ºî»þ´Ö¤òÀßÄê¤Ç¤­¤ë¡£¤¿¤À¤·¡¢¤³¤³¤Ç¤Ït¤Ï1/1000ÉäǤ¢¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¡£


²¼µ­¤¬¼ÂºÝ¤Î¥é¥¤¥ó¥È¥ì¡¼¥¹¤ÎBÃÏÅÀ¤«¤éCÃÏÅÀ¤Î¥×¥í¥°¥é¥ß¥ó¥°¤Ç¤¢¤ë¡£ 

 line_follow()¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡#BÃÏÅÀ¤«¤é­¡¤Î¸òº¹ÅÀ¤Þ¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹
 mr.stop()                    #¸òº¹ÅÀ¤Ç¥¹¥È¥Ã¥×
 ml.stop()
 time.sleep(3)
 cross_right(2000)            #­¡¤Î¸òº¹ÅÀ¤ò±¦ÀÞ
 line_follow()                #­¡¤Î¸òº¹ÅÀ¤ò²á¤®¤Æ¤«¤é­¢¤Î¸òº¹ÅÀ¤Þ¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹
 mr.stop()                    #¸òº¹ÅÀ¤Ç¥¹¥È¥Ã¥×
 ml.stop()
 time.sleep(3)                
 cross_forward(1000)          #­¢¤Î¸òº¹ÅÀ¤òľ¿Ê
 line_follow()                #­¢¤Î¸òº¹ÅÀ¤«¤é­£¤Î¸òº¹ÅÀ¤Þ¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹
 mr.stop()                    #¸òº¹ÅÀ¤Ç¥¹¥È¥Ã¥×
 ml.stop()
 time.sleep(3)
 cross_forward(1000)          #­£¤Î¸òº¹ÅÀ¤òľ¿Ê
 line_follow()                #­£¤Î¸òº¹ÅÀ¤«¤é­¤¤Î¸òº¹ÅÀ¤Þ¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹
 mr.stop()                    #­¤¤Î¸òº¹ÅÀ¤Ç¥¹¥È¥Ã¥×
 ml.stop()
 time.sleep(3)
 cross_right(2000)            #­¤¤Î¸òº¹ÅÀ¤ò±¦ÀÞ
 line_follow()                #­¤¤Î¸òº¹ÅÀ¤«¤é­¥¤Î¸òº¹ÅÀ¤Þ¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹
 mr.stop()                    #­¥¤Î¸òº¹ÅÀ¤Ç¥¹¥È¥Ã¥×
 ml.stop()
 time.sleep(3)
 cross_right(2000)            #­¥¤Î¸òº¹ÅÀ¤ò±¦ÀÞ
 line_follow()                #­¥¤Î¸òº¹ÅÀ¤«¤éCÃÏÅÀ¤Þ¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹
 mr.stop()                    #CÃÏÅÀ¤ÎÆþ¤ê¸ý¤Ç¥¹¥È¥Ã¥×
 ml.stop()
 cross_forward(3000)          #CÃÏÅÀ¤ËÆþ¤Ã¤Æ¥¹¥È¥Ã¥×

*´¶ÁÛ [#wa9bb61f]
º£²ó¤Î²ÝÂê¤Ç¤Ï¡¢Á°²ó¤Î¥×¥í¥°¥é¥ß¥ó¥°¤òÀ¸¤«¤·¤Æ¸òº¹ÅÀ¤Ç¤Î¼¡¤ÎÆ°ºî¤ò¤¹¤ë¤³¤È¤Ï´Êñ¤À¤Ã¤¿¡£¤·¤«¤·¡¢ifʸ¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤¹¤ë¤Î¤¬ºÇ½éÆñ¤·¤«¤Ã¤¿¡£¤·¤«¤·¡¢¸¡¾Ú¤ò²¿ÅÙ¤â¹Ô¤¤¡¢Çò¤È¹õ¤Î¶­³¦¡¢¤Þ¤¿¹õ¥é¥¤¥ó¤ÎÃæ¤Ç¤Î¿§¤ÎÇ»¤µ¤Ë¤è¤ë¥×¥í¥°¥é¥à¤ò°ÂÄꤵ¤»¤ë¤³¤È¤¬½ÐÍ褿¡£

¥È¥Ã¥×   ¿·µ¬ °ìÍ÷ ¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS