[[2017a/Member]]

*²ÝÂꣲ&br;17T2037H¡¡²¡¸«¡¡ÍÎÅÚ [#m18339e3]
#br
#contents
#hr
**²ÝÂꣲ [#b4ac2d64]
[[²ÝÂꣲ:http://yakushi.shinshu-u.ac.jp/robotics/?2017a%2FMission2]]
**¥í¥Ü¥Ã¥È [#w9358c78]
º£²ó¤Î²ÝÂê¤Ë¤ª¤¤¤ÆEV3¤Î¼åÅÀ¤Ï¼ÖÎØÉý¤ÎÂ礭¤µ¤Ç¤¢¤Ã¤¿¡£¥«¡¼¥Ö¤ò¶Ê¤¬¤ëºÝÅù¤ËºÙ¤«¤¤Ä´À°¤òɬÍפȤ¹¤ëÌ̤¬º£²óEV3¤ò»ÈÍѤ¹¤ë¥á¥ó¥Ð¡¼¤òÁêÅö¤Ë¶ìÏ«¤µ¤»¤¿¡£
#ref(DSC_0528.JPG)
»äã¤ÎÈɤϤ½¤Î¼åÅÀ¤òºÇ¾®¸Â¤Ë¤È¤É¤á¤ë¤¿¤á¤Ë¡¢Æó¤Ä¤Î¥â¡¼¥¿¤òÌ©Ã夵¤»¡¢¼ÖÎØÉý¤ò²Äǽ¤Ê¸Â¤ê¾®¤µ¤¯¤·¤¿¡£
#ref(DSC_0529.JPG)
#ref(DSC_0527.JPG)
**¥×¥í¥°¥é¥à [#qe1ea633]
 #!/usr/bin/python3
 # -*- coding:utf-8 -*-

 import ev3dev.ev3 as ev3
 import time

 mR=ev3.LargeMotor('outA')
 mL=ev3.LargeMotor('outB')
 t0=time.time()#°ìÊý¸þ¤Î¥«¡¼¥Ö»þ´Ö
 t1=time.time()#¸òº¹ÅÀȽÄê¤ÎºÇÄã»þ´Ö´Ö³Ö¤òÊݤĤ¿¤á¤Î»þ´Ö
 t2=time.time()#¸òº¹ÅÀ¤Ç¤ÎÆ°ºî¤ò»Ê¤ë»þ´Ö
 cs=ev3.ColorSensor('in3')
 tsR=ev3.TouchSensor('in1')
 tsL=ev3.TouchSensor('in2')
 modeA = 0#¥«¡¼¥Ö¤ÎÊý¸þ¤ò·èÄꤹ¤ë·¿
 modeB = 1#modeA¤ËÁ°²ó¤Î¥«¡¼¥Ö¤ÎÊý¸þ¤ò¥Õ¥£¡¼¥É¥Ð¥Ã¥¯¤¹¤ëÊÑ¿ô
 modeC = 0#¸òº¹ÅÀ¤ÎÈÖ¹æ¤ò¥«¥¦¥ó¥È¤¹¤ëÊÑ¿ô

 mL.run_timed(time_sp=2000,duty_cycle_sp=50,speed_sp=100,stop_action='brake')
 mR.run_timed(time_sp=2000,duty_cycle_sp=50,speed_sp=100,stop_action='brake')    
 time.sleep(2)

 for loop in range(100000):
    if tsR.value()==1 or tsL.value()==1:
        break

    if cs.value()>55 and cs.value()<=60:
        mL.run_forever(duty_cycle_sp=50,speed_sp=120)
        mR.run_forever(duty_cycle_sp=50,speed_sp=120)
        t0=time.time()
        t2=time.time() 
    elif cs.value()>37 and cs.value()<=55:
        if modeC==3 or modeC==2:
            mL.run_forever(duty_cycle_sp=50,speed_sp=60)
            mR.run_forever(duty_cycle_sp=50,speed_sp=100)
            t0=time.time()
            t2=time.time()
        elif modeC!=2 and modeC!=3:
            mL.run_forever(duty_cycle_sp=50,speed_sp=100)
            mR.run_forever(duty_cycle_sp=50,speed_sp=60)
            t0=time.time()
            t2=time.time()
    elif cs.value()>26 and cs.value()<=37:
        if modeC==3 or modeC==2:
            mL.run_forever(duty_cycle_sp=50,speed_sp=0)
            mR.run_forever(duty_cycle_sp=50,speed_sp=100)
            t0=time.time()
            t2=time.time()
        elif modeC!=2 and modeC!=3:
            mL.run_forever(duty_cycle_sp=50,speed_sp=100)
            mR.run_forever(duty_cycle_sp=50,speed_sp=0)
            t0=time.time()
            t2=time.time()
    elif cs.value()>14 and cs.value()<=26:
        if modeC==3 or modeC==2:
            mL.run_forever(duty_cycle_sp=50,speed_sp=-70)
            mR.run_forever(duty_cycle_sp=50,speed_sp=100)
            t0=time.time()
            t2=time.time()
        elif modeC!=2 and modeC!=3:
            mL.run_forever(duty_cycle_sp=50,speed_sp=100)
            mR.run_forever(duty_cycle_sp=50,speed_sp=-70)
            t0=time.time()
            t2=time.time()

    if time.time()-t0<=1.8:
        modeA=modeB
        if modeA==0 and cs.value()>60 and modeC!=3 and modeC!=2:
            mL.run_forever(duty_cycle_sp=50,speed_sp=100)
            mR.run_forever(duty_cycle_sp=50,speed_sp=25)#Çò¡¡±¦
            modeB=0
        elif modeA==1 and cs.value()>60 and modeC!=3 and modeC!=2:
            mL.run_forever(duty_cycle_sp=50,speed_sp=25)
            mR.run_forever(duty_cycle_sp=50,speed_sp=100)#Çò¡¡º¸
            modeB=1
        elif modeA==0 and cs.value()>60:
            if modeC==2 or modeC==3:
                mL.run_forever(duty_cycle_sp=50,speed_sp=100)
                mR.run_forever(duty_cycle_sp=50,speed_sp=25)#Çò¡¡±¦
                modeB=0
        elif cs.value()<=60 and cs.value()>17 and time.time()-t0>0.9:
            ev3.Sound.play('tyokkaku.wav')
            mR.stop()
            mL.stop()
            time.sleep(1)
            modeC+=1
        t2=time.time()

    elif cs.value()>60:
        if modeA==1:
            mL.run_forever(duty_cycle_sp=50,speed_sp=100)
            mR.run_forever(duty_cycle_sp=50,speed_sp=0)#Çò¡¡±¦
            modeB=0
        elif modeA==0:
            mL.run_forever(duty_cycle_sp=50,speed_sp=0)
            mR.run_forever(duty_cycle_sp=50,speed_sp=100)#Çò¡¡º¸
            modeB=1
        t2=time.time()
    if cs.value()<=14 and time.time()-t1>3:
        while time.time()-t2<=1:
            mL.stop()
            mR.stop()
        modeC += 1
        while time.time()-t2>1 and time.time()-t2<=3:
            if modeC==1:#­¡
                ev3.Sound.play('tziro.wav')
                mL.run_timed(time_sp=210,duty_cycle_sp=50,speed_sp=170,stop_action='brake')
                mR.run_timed(time_sp=210,duty_cycle_sp=50,speed_sp=-80,stop_action='brake')
            elif modeC==2 or modeC==7:­¢­§                
                ev3.Sound.play('tziro.wav')
                mL.run_timed(time_sp=400,duty_cycle_sp=50,speed_sp=-50,stop_action='brake')
                mR.run_timed(time_sp=400,duty_cycle_sp=50,speed_sp=110,stop_action='brake')
            elif modeC==3 or modeC==8:­£­¨
                ev3.Sound.play('tziro.wav')
                mL.run_timed(time_sp=400,duty_cycle_sp=50,speed_sp=165,stop_action='brake')
                mR.run_timed(time_sp=400,duty_cycle_sp=50,speed_sp=70,stop_action='brake')
                while time.time()-t2>2 and cs.value()>70:
                    mL.run_forever(duty_cycle_sp=50,speed_sp=140)
                    mR.run_forever(duty_cycle_sp=50,speed_sp=50)
            elif modeC==4 or modeC==9:­¤­©
                ev3.Sound.play('tziro.wav')
                mL.run_timed(time_sp=800,duty_cycle_sp=50,speed_sp=40,stop_action='brake')
                mR.run_timed(time_sp=800,duty_cycle_sp=50,speed_sp=150,stop_action='brake')
            elif modeC==5 or modeC==6 or modeC==10:­¥­¦­ª            
                ev3.Sound.play('kousaten.wav')
                mL.run_timed(time_sp=500,duty_cycle_sp=50,speed_sp=100,stop_action='brake')
                mR.run_timed(time_sp=500,duty_cycle_sp=50,speed_sp=100,stop_action='brake')
            t0=time.time()
            t1=time.time()

    elif cs.value()<=14 and time.time()-t2<=3:
        mL.run_forever(duty_cycle_sp=50,speed_sp=100)
        mR.run_forever(duty_cycle_sp=50,speed_sp=-70)
        t0=time.time()
        t2=time.time()
        
¡¡mR.stop()~
¡¡mL.stop()


**·ë²Ì [#da8c3c0d]
¤Þ¤À°ì¼þ¤·¤Æ¤¤¤Ê¤¤¡£ÈÖ¹æ¤Ç¼¨¤¹¤È­¥¤Þ¤Ç¤Ï°ìÅÙ¤À¤±Áö¤Ã¤Æ¤¯¤ì¤¿¡£
**È¿¾Ê [#v62a1365]

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