2017a/Member/irin/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2017a/Member]]
*目次 [#g516ec1b]
#contents
*課題内容 [#p5f4db28]
&ref(2017a/Member/irin/Mission2/マップ.png,60%,コース);
-課題内容は次の経路に沿ってライントレースをするロボットを...
--E直進
--F(SOUND_UP)
--Q一時停止(SOUND_DOWN)&左折
--R直進(SOUND_UP)
--S左折(SOUND_UP)
--G(SOUND_UP)
--H(SOUND_UP)
--T一時停止(SOUND_DOWN)&直進
--T一時停止(SOUND_DOWN)&直進
--R一時停止(SOUND_DOWN)&左折
--S直進(SOUND_UP)
--P左折(SOUND_UP)
--E一時停止(SOUND_DOWN)&左折
--A停止(SOUND_DOWN)
*ロボットの説明 [#p20a4c3a]
**実際に動いているところ [#be8fa4b8]
https://www.youtube.com/watch?v=xUq5ioWZRWA
**本体について [#xec12109]
&ref(2017a/Member/irin/Mission2/俯瞰1.JPG,60%,EV3上部);
今回のロボット製作で注意したことの一つとして、車輪の幅が...
というのも、現在の車輪幅に至る前に、現在より広い車輪幅で...
効きにくく、安定性に欠けることが判明したからである。
そこで、車輪幅を狭くし、小回りが効くようにすることで、急...
**カラーセンサーの位置 [#f05101c9]
&ref(2017a/Member/irin/Mission2/securedownload.jpg,60%,EV...
当初、色センサーの位置をタイヤの近くに設置していたが、直...
*プログラムの説明 [#z712b286]
**インスタンスの作成 [#h79ad080]
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import ev3dev.ev3 as ev3
import time
mr = ev3.LargeMotor("outA") # MotorRight
ml = ev3.LargeMotor("outB") # MotorLeft
ts = ev3.TouchSensor("in1") #TouchSensor
cs= ev3.ColorSensor("in2") #ColorSensor
補足として、MotorRightはロボット右側のモーターであり、こ...
**今回設定した関数 [#k79d8f30]
def LineTrace(T)
while 1:
if ts.value() == 1:
break
if cs.value() >= 38: #白のとき
ml.run_forever(duty_cycle_sp=60,speed_sp=60)
mr.run_forever(duty_cycle_sp=60,speed_sp=-20)
t_1 = time.time()
elif cs.value() < 38 and cs.value() >= 23 : #白灰のとき
mr.stop()
ml.run_forever(duty_cycle_sp=60,speed_sp=60)
t_1 = time.time()
elif cs.value() < 23 and cs.value() >= 17: #灰色のとき
mr.run_forever(duty_cycle_sp=60,speed_sp=80)
ml.run_forever(duty_cycle_sp=60,speed_sp=80)
t_1 = time.time()
elif cs.value() < 17 and cs.value() >= 10: #黒灰のとき
ml.stop()
mr.run_forever(duty_cycle_sp=60,speed_sp=60)
t_1 = time.time()
elif cs.value() < 10: #黒のとき
mr.run_forever(duty_cycle_sp=60,speed_sp=60)
ml.run_forever(duty_cycle_sp=60,speed_sp=-20)
if time.time() - t_1 >= T:
break
この関数は、ロボットがライントレースを行うための関数であ...
def WhiteTrace(A)
while 1:
if ts.value() == 1:
break
if cs.value() >= 38: #白のとき
ml.run_forever(duty_cycle_sp=60,speed_sp=60)
mr.run_forever(duty_cycle_sp=60,speed_sp=-20)
if time.time() - t_1 >= T:
break
elif cs.value() < 38 and cs.value() >= 23 : #白灰のとき
mr.stop()
ml.run_forever(duty_cycle_sp=60,speed_sp=60)
t_1 = time.time()
elif cs.value() < 23 and cs.value() >= 17: #灰色のとき
mr.run_forever(duty_cycle_sp=60,speed_sp=80)
ml.run_forever(duty_cycle_sp=60,speed_sp=80)
t_1 = time.time()
elif cs.value() < 17 and cs.value() >= 10: #黒灰のとき
ml.stop()
mr.run_forever(duty_cycle_sp=60,speed_sp=60)
t_1 = time.time()
elif cs.value() < 10: #黒のとき
mr.run_forever(duty_cycle_sp=60,speed_sp=60)
ml.run_forever(duty_cycle_sp=60,speed_sp=-20)
t_1 = time.time()
この関数はライントレースを行い、一個目の関数とほぼ同じで...
この関数を設定した理由としては、直角カーブ(主にH,G)で色...
**プログラム本体 [#c2ce1ad6]
#F
LineTrace(0.3)
ev3.Sound.speak("F")
ml.stop()
while cs.value() <= 30:
mr.run_forever(duty_cycle_sp=60,speed_sp=30)
ml.run_forever(duty_cycle_sp=60,speed_sp=-10)
#Q
LineTrace(0.4)
ev3.Sound.speak("Q")
mr.stop()
ml.stop()
time.sleep(1)
while cs.value() <= 30:
mr.run_forever(duty_cycle_sp=60,speed_sp=30)
ml.run_forever(duty_cycle_sp=60,speed_sp=-10)
#R
LineTrace(0.3)
ev3.Sound.speak("R")
mr.stop()
ml.stop()
time.sleep(1)
while cs.value() <= 30:
mr.run_forever(duty_cycle_sp=60,speed_sp=30)
#T1
LineTrace(0.5)
ev3.Sound.speak("T1")
mr.stop()
ml.stop()
time.sleep(1)
while cs.value() <= 35:
mr.run_forever(duty_cycle_sp=60,speed_sp=10)
ml.run_forever(duty_cycle_sp=60,speed_sp=30)
#T2
LineTrace(0.4)
ev3.Sound.speak("T2")
mr.stop()
ml.stop()
time.sleep(1)
while cs.value() <= 20:
mr.run_forever(duty_cycle_sp=60,speed_sp=30)
ml.run_forever(duty_cycle_sp=60,speed_sp=10)
#H
WhiteTrace(0.2)
ev3.Sound.speak("H")
#急カーブ
LineTrace(1)
while cs.value() <= 30:
mr.run_forever(duty_cycle_sp=60,speed_sp=30)
ml.run_forever(duty_cycle_sp=60,speed_sp=-60)
#G
WhiteTrace(0.8)
mr.stop()
while cs.value() >= 25:
ml.run_forever(duty_cycle_sp=60,speed_sp=30)
WhiteTrace(0.8)
ev3.Sound.speak("G")
#S
LineTrace(0.6)
ev3.Sound.speak("S")
ml.stop()
while cs.value() <=25:
mr.run_forever(duty_cycle_sp=60,speed_sp=30)
#P
LineTrace(0.3)
ev3.Sound.speak("P")
ml.stop()
while cs.value() <= 35:
mr.run_forever(duty_cycle_sp=60,speed_sp=30)
#E
LineTrace(0.5)
ev3.Sound.speak("E")
mr.stop()
ml.stop()
time.sleep(1)
while cs.value() <= 35:
mr.run_forever(duty_cycle_sp=60,speed_sp=30)
#A
LineTrace(0.5)
while cs.value() <30:
mr.run_forever(duty_cycle_sp=60,speed_sp=30)
ml.run_forever(duty_cycle_sp=60,speed_sp=30)
ev3.Sound.speak("A")
mr.stop()
ml.stop()
-コードのところどころに記述されているLineTrace関数やWhite...
例えば#Qのような一時停止する場合、黒色の上で停止するので...
また、他の例については、#急カーブが挙げられる。今回製作し...
--実際には、交差点や直角カーブの違いを判断しておらず、Lin...
--補足として、AやPなど名前のある地点に到達した場合、その...
*今回の課題を振り返って [#h02a0443]
今回の課題を振り返ってみて一番大変だったのは、締め切りが...
次は、こんなことにならないよう、もっと見通しを立てて製作...
終了行:
[[2017a/Member]]
*目次 [#g516ec1b]
#contents
*課題内容 [#p5f4db28]
&ref(2017a/Member/irin/Mission2/マップ.png,60%,コース);
-課題内容は次の経路に沿ってライントレースをするロボットを...
--E直進
--F(SOUND_UP)
--Q一時停止(SOUND_DOWN)&左折
--R直進(SOUND_UP)
--S左折(SOUND_UP)
--G(SOUND_UP)
--H(SOUND_UP)
--T一時停止(SOUND_DOWN)&直進
--T一時停止(SOUND_DOWN)&直進
--R一時停止(SOUND_DOWN)&左折
--S直進(SOUND_UP)
--P左折(SOUND_UP)
--E一時停止(SOUND_DOWN)&左折
--A停止(SOUND_DOWN)
*ロボットの説明 [#p20a4c3a]
**実際に動いているところ [#be8fa4b8]
https://www.youtube.com/watch?v=xUq5ioWZRWA
**本体について [#xec12109]
&ref(2017a/Member/irin/Mission2/俯瞰1.JPG,60%,EV3上部);
今回のロボット製作で注意したことの一つとして、車輪の幅が...
というのも、現在の車輪幅に至る前に、現在より広い車輪幅で...
効きにくく、安定性に欠けることが判明したからである。
そこで、車輪幅を狭くし、小回りが効くようにすることで、急...
**カラーセンサーの位置 [#f05101c9]
&ref(2017a/Member/irin/Mission2/securedownload.jpg,60%,EV...
当初、色センサーの位置をタイヤの近くに設置していたが、直...
*プログラムの説明 [#z712b286]
**インスタンスの作成 [#h79ad080]
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import ev3dev.ev3 as ev3
import time
mr = ev3.LargeMotor("outA") # MotorRight
ml = ev3.LargeMotor("outB") # MotorLeft
ts = ev3.TouchSensor("in1") #TouchSensor
cs= ev3.ColorSensor("in2") #ColorSensor
補足として、MotorRightはロボット右側のモーターであり、こ...
**今回設定した関数 [#k79d8f30]
def LineTrace(T)
while 1:
if ts.value() == 1:
break
if cs.value() >= 38: #白のとき
ml.run_forever(duty_cycle_sp=60,speed_sp=60)
mr.run_forever(duty_cycle_sp=60,speed_sp=-20)
t_1 = time.time()
elif cs.value() < 38 and cs.value() >= 23 : #白灰のとき
mr.stop()
ml.run_forever(duty_cycle_sp=60,speed_sp=60)
t_1 = time.time()
elif cs.value() < 23 and cs.value() >= 17: #灰色のとき
mr.run_forever(duty_cycle_sp=60,speed_sp=80)
ml.run_forever(duty_cycle_sp=60,speed_sp=80)
t_1 = time.time()
elif cs.value() < 17 and cs.value() >= 10: #黒灰のとき
ml.stop()
mr.run_forever(duty_cycle_sp=60,speed_sp=60)
t_1 = time.time()
elif cs.value() < 10: #黒のとき
mr.run_forever(duty_cycle_sp=60,speed_sp=60)
ml.run_forever(duty_cycle_sp=60,speed_sp=-20)
if time.time() - t_1 >= T:
break
この関数は、ロボットがライントレースを行うための関数であ...
def WhiteTrace(A)
while 1:
if ts.value() == 1:
break
if cs.value() >= 38: #白のとき
ml.run_forever(duty_cycle_sp=60,speed_sp=60)
mr.run_forever(duty_cycle_sp=60,speed_sp=-20)
if time.time() - t_1 >= T:
break
elif cs.value() < 38 and cs.value() >= 23 : #白灰のとき
mr.stop()
ml.run_forever(duty_cycle_sp=60,speed_sp=60)
t_1 = time.time()
elif cs.value() < 23 and cs.value() >= 17: #灰色のとき
mr.run_forever(duty_cycle_sp=60,speed_sp=80)
ml.run_forever(duty_cycle_sp=60,speed_sp=80)
t_1 = time.time()
elif cs.value() < 17 and cs.value() >= 10: #黒灰のとき
ml.stop()
mr.run_forever(duty_cycle_sp=60,speed_sp=60)
t_1 = time.time()
elif cs.value() < 10: #黒のとき
mr.run_forever(duty_cycle_sp=60,speed_sp=60)
ml.run_forever(duty_cycle_sp=60,speed_sp=-20)
t_1 = time.time()
この関数はライントレースを行い、一個目の関数とほぼ同じで...
この関数を設定した理由としては、直角カーブ(主にH,G)で色...
**プログラム本体 [#c2ce1ad6]
#F
LineTrace(0.3)
ev3.Sound.speak("F")
ml.stop()
while cs.value() <= 30:
mr.run_forever(duty_cycle_sp=60,speed_sp=30)
ml.run_forever(duty_cycle_sp=60,speed_sp=-10)
#Q
LineTrace(0.4)
ev3.Sound.speak("Q")
mr.stop()
ml.stop()
time.sleep(1)
while cs.value() <= 30:
mr.run_forever(duty_cycle_sp=60,speed_sp=30)
ml.run_forever(duty_cycle_sp=60,speed_sp=-10)
#R
LineTrace(0.3)
ev3.Sound.speak("R")
mr.stop()
ml.stop()
time.sleep(1)
while cs.value() <= 30:
mr.run_forever(duty_cycle_sp=60,speed_sp=30)
#T1
LineTrace(0.5)
ev3.Sound.speak("T1")
mr.stop()
ml.stop()
time.sleep(1)
while cs.value() <= 35:
mr.run_forever(duty_cycle_sp=60,speed_sp=10)
ml.run_forever(duty_cycle_sp=60,speed_sp=30)
#T2
LineTrace(0.4)
ev3.Sound.speak("T2")
mr.stop()
ml.stop()
time.sleep(1)
while cs.value() <= 20:
mr.run_forever(duty_cycle_sp=60,speed_sp=30)
ml.run_forever(duty_cycle_sp=60,speed_sp=10)
#H
WhiteTrace(0.2)
ev3.Sound.speak("H")
#急カーブ
LineTrace(1)
while cs.value() <= 30:
mr.run_forever(duty_cycle_sp=60,speed_sp=30)
ml.run_forever(duty_cycle_sp=60,speed_sp=-60)
#G
WhiteTrace(0.8)
mr.stop()
while cs.value() >= 25:
ml.run_forever(duty_cycle_sp=60,speed_sp=30)
WhiteTrace(0.8)
ev3.Sound.speak("G")
#S
LineTrace(0.6)
ev3.Sound.speak("S")
ml.stop()
while cs.value() <=25:
mr.run_forever(duty_cycle_sp=60,speed_sp=30)
#P
LineTrace(0.3)
ev3.Sound.speak("P")
ml.stop()
while cs.value() <= 35:
mr.run_forever(duty_cycle_sp=60,speed_sp=30)
#E
LineTrace(0.5)
ev3.Sound.speak("E")
mr.stop()
ml.stop()
time.sleep(1)
while cs.value() <= 35:
mr.run_forever(duty_cycle_sp=60,speed_sp=30)
#A
LineTrace(0.5)
while cs.value() <30:
mr.run_forever(duty_cycle_sp=60,speed_sp=30)
ml.run_forever(duty_cycle_sp=60,speed_sp=30)
ev3.Sound.speak("A")
mr.stop()
ml.stop()
-コードのところどころに記述されているLineTrace関数やWhite...
例えば#Qのような一時停止する場合、黒色の上で停止するので...
また、他の例については、#急カーブが挙げられる。今回製作し...
--実際には、交差点や直角カーブの違いを判断しておらず、Lin...
--補足として、AやPなど名前のある地点に到達した場合、その...
*今回の課題を振り返って [#h02a0443]
今回の課題を振り返ってみて一番大変だったのは、締め切りが...
次は、こんなことにならないよう、もっと見通しを立てて製作...
ページ名: