- Äɲ䵤줿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
- ºï½ü¤µ¤ì¤¿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
*Ìܼ¡ [#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Î¥¤ì¤Æ¼è¤êÉÕ¤±¤é¤ì¤ë¤è¤¦¤Ë¤·¤¿¡£
¤Þ¤¿¡¢Áö¹ÔÃæ¤Ë¹õ¤ÈÇò¤Î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()
line_follow()
mr.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()
cross_right(2000) #¡¤Î¸òº¹ÅÀ¤ò±¦ÀÞ
line_follow() #¡¤Î¸òº¹ÅÀ¤ò²á¤®¤Æ¤«¤é¢¤Î¸òº¹ÅÀ¤Þ¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹
mr.stop() #¸òº¹ÅÀ¤Ç¥¹¥È¥Ã¥×
ml.stop()
time.sleep(3)
cross_forward(1000)
line_follow()
mr.stop()
time.sleep(3)
cross_forward(1000) #¢¤Î¸òº¹ÅÀ¤òľ¿Ê
line_follow() #¢¤Î¸òº¹ÅÀ¤«¤é£¤Î¸òº¹ÅÀ¤Þ¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹
mr.stop() #¸òº¹ÅÀ¤Ç¥¹¥È¥Ã¥×
ml.stop()
time.sleep(3)
cross_forward(1000)
line_follow()
mr.stop()
cross_forward(1000) #£¤Î¸òº¹ÅÀ¤òľ¿Ê
line_follow() #£¤Î¸òº¹ÅÀ¤«¤é¤¤Î¸òº¹ÅÀ¤Þ¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹
mr.stop() #¤¤Î¸òº¹ÅÀ¤Ç¥¹¥È¥Ã¥×
ml.stop()
time.sleep(3)
cross_right(2000)
line_follow()
mr.stop()
cross_right(2000) #¤¤Î¸òº¹ÅÀ¤ò±¦ÀÞ
line_follow() #¤¤Î¸òº¹ÅÀ¤«¤é¥¤Î¸òº¹ÅÀ¤Þ¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹
mr.stop() #¥¤Î¸òº¹ÅÀ¤Ç¥¹¥È¥Ã¥×
ml.stop()
time.sleep(3)
cross_right(2000)
line_follow()
mr.stop()
cross_right(2000) #¥¤Î¸òº¹ÅÀ¤ò±¦ÀÞ
line_follow() #¥¤Î¸òº¹ÅÀ¤«¤éCÃÏÅÀ¤Þ¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹
mr.stop() #CÃÏÅÀ¤ÎÆþ¤ê¸ý¤Ç¥¹¥È¥Ã¥×
ml.stop()
cross_forward(3000)
cross_forward(3000) #CÃÏÅÀ¤ËÆþ¤Ã¤Æ¥¹¥È¥Ã¥×
*´¶ÁÛ [#wa9bb61f]
º£²ó¤Î²ÝÂê¤Ç¤Ï¡¢Á°²ó¤Î¥×¥í¥°¥é¥ß¥ó¥°¤òÀ¸¤«¤·¤Æ¸òº¹ÅÀ¤Ç¤Î¼¡¤ÎÆ°ºî¤ò¤¹¤ë¤³¤È¤Ï´Êñ¤À¤Ã¤¿¡£¤·¤«¤·¡¢ifʸ¤Ç¥é¥¤¥ó¥È¥ì¡¼¥¹¤ò¤¹¤ë¤Î¤¬ºÇ½éÆñ¤·¤«¤Ã¤¿¡£¤·¤«¤·¡¢¸¡¾Ú¤ò²¿ÅÙ¤â¹Ô¤¤¡¢Çò¤È¹õ¤Î¶³¦¡¢¤Þ¤¿¹õ¥é¥¤¥ó¤ÎÃæ¤Ç¤Î¿§¤ÎÇ»¤µ¤Ë¤è¤ë¥×¥í¥°¥é¥à¤ò°ÂÄꤵ¤»¤ë¤³¤È¤¬½ÐÍ褿¡£