2018b/Member/Kisuke/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
目次
#contents
*コース [#l2ad74e9]
自分はコース1を担当した。赤線はロボットの軌道を表していて...
#ref(2018b/Member/Kisuke/Mission2/map.jpg,30%);
*ロボット [#db61e790]
#ref(2018b/Member/Kisuke/Mission2/robot.jpg,20%)
車体は説明書通りになっており、車体上部にボールを発射する...
#ref(2018b/Member/Kisuke/Mission2/robot2.jpg,20%)
車体の前方に光センサーと超音波センサーをを取り付けている。
車体上部にミディアムモーターを取り付け画像のように機能す...
#ref(2018b/Member/Kisuke/Mission2/mediummotor.jpg,20%)
*プログラム [#p695aa19]
**ライントレース(基本編) [#m7cd746a]
今回の課題の根幹となる部分のプログラム
c1=cs.value()
x=(abs(c1-10)/70)*100 #だいたい10<c1<80といった範囲だっ...
if x>100:
x=100 #最大値が100を超えないようにする。
l=(x/100)*210-30 #1
r=150-l #2
ml.run_forever(speed_sp=l,stop_action='brake') #lの速さ...
mr.run_forever(speed_sp=r,stop_action='brake') #rの速さ...
#1 左タイヤの速度を設定する部分。x=0(黒い時)でl=-30,x=100...
#2 右タイヤの速度を設定する部分。x=0(黒い時)でr=180,x=100...
こうすることで、センサーの値に応じて速さが変化するため直...
***交差点の認識 [#se0591c7]
滑らかに移動できたことは、ライントレースをしている間はカ...
def linetrace() :
c1=cs.value()
while c1>13: #c1が黒を認識するまでループ
c1=cs.value()
x=abs((c1-10)/70)*100
if x>100:
x=100
r=(x/100)*210-30
l=150-r
ml.run_forever(speed_sp=l,stop_action='br...
mr.run_forever(speed_sp=r,stop_action='br...
stop()
というプログラムになり、交差点のようなカラーセンサーが急...
***このプログラムに至った経緯 [#k33a7966]
はじめは下のプログラムのようにカラーセンサーの値の増加量...
t1=time.time()
s1=cs.value()
sleep(0.1)
t2=time.time()
s2=cs.value()
x=(s2-s1)/(t2-t1) #カラーセンサーの0.1秒間の増加量
if x>0:
a=200
b=200-x
forward(a,b) #増加量の大きさの分だけ速さが減少して進む
if x=0:
a=200
b=200
forward(a,b)
if x<0:
a=200+x
b=200
forward(a,b)
しかし増加量を取ると、少しの明るさの違いで大きくジグザグ...
**ライントレース(応用編) [#se998bb6]
基本編でのプログラムは線の左側にいるときにしか使えない上...
定義名のl,rの違いは線の右に居るか左に居るかで、in,outの違...
def linetrace_rin(): #左側にいて、交差点を認識すると終わる
c1=cs.value()
while c1>13:
c1=cs.value()
x=(abs(c1-10)/70)*100
if x>100:
x=100
l=(x/100)*210-30
r=150-l
ml.run_forever(speed_sp=l,stop_action='brake')
mr.run_forever(speed_sp=r,stop_action='brake')
stop()
def linetrace_rout(): #左側にいて、境界線を認識すると終...
c1=cs.value()
while c1<40:
c1=cs.value()
x=(abs(c1-10)/70)*100
if x>100:
x=100
l=(x/100)*120-40
r=40-l
ml.run_forever(speed_sp=l,stop_action='brake')
mr.run_forever(speed_sp=r,stop_action='brake')
stop()
def linetrace_lin(): #右側にいて、交差点を認識すると終わる
c1=cs.value()
while c1>13:
c1=cs.value()
x=abs((c1-10)/70)*100
if x>100:
x=100
r=(x/100)*210-30
l=150-r
ml.run_forever(speed_sp=l,stop_action='brake')
mr.run_forever(speed_sp=r,stop_action='brake')
stop()
def linetrace_lout(): #右側にいて、境界線を認識すると終...
c1=cs.value()
while c1<40:
c1=cs.value()
x=(abs(c1-10)/70)*100
if x>100:
x=100
r=(x/100)*120-40
l=40-r
ml.run_forever(speed_sp=l,stop_action='brake')
mr.run_forever(speed_sp=r,stop_action='brake')
stop()
lout,routのスピードの値の範囲は-40<l<80 -40<r<80となって...
このように分類することで、直線や緩やかなカーブの時でもあ...
丁字路
linetrace_lin()
linetrace_lout()
linetrace_lin()
#ref(2018b/Member/Kisuke/Mission2/curve1.jpg,20%)
急カーブ
linetrace_rin()
linetrace_rout()
linetrace_rin()
#ref(2018b/Member/Kisuke/Mission2/curve2.jpg,20%)
画像の緑の丸あたりで関数が切り替わっている。
※lが右側に居て、rが左側に居るというのは誤植ではない。白い...
#ref(2018b/Member/Kisuke/Mission2/lr.jpg,10%)
***このプログラムに至った経緯 [#h7b9c24e]
最初はGからEにかけてのコースを次のようなプログラムで走ら...
i=0
while i<300: #iが300になった時点で終了
c1=cs.value()
if c1<13: #カラーセンサーが黒を認識したときにiのカウン...
i=i+1
else:
i=i #カラーセンサーが灰色や白を認識したときはカウント...
x=(abs(c1-10)/70)*100
if x>100:
x=100
l=(x/100)*60-20 #カーブを曲がり切れるようにさっきよりは...
r=20-l
ml.run_forever(speed_sp=l*5,stop_action='brake') #最初...
mr.run_forever(speed_sp=r*5,stop_action='brake')
stop()
これはループするうちに急カーブなどで黒を認識した数だけカ...
しかしこのプログラムだとEV3のバッテリー量に左右されやすく...
**ボール射出のプログラム [#vb134d9e]
def shoot(): #ボールを放つプログラム
mm.run_to_rel_pos(position_sp=-60,speed_sp=150,st...
time.sleep(3)
mm.run_to_rel_pos(position_sp=60,speed_sp=150,sto...
time.sleep(3)
def discover():
t0=time.time() #回転し始めで時間の計測を始める
u1=us.value() #超音波センサーの値をwhile関数でで...
ml.run_to_rel_pos(position_sp=-700,speed_sp=150,s...
mr.run_to_rel_pos(position_sp=700,speed_sp=150,st...
t2=time.time() #whileの条件で使うため、あらかじめ...
while t2-t0<4.7: #一回転するまでループする(4.7秒)
u2=us.value() #u2としてもう一つの値を定義...
if u2<u1:
u1=u2 #n回目の観測距離(u2)がn-1回...
t1=time.time() #更新した時の時間...
t2=time.time() #whileでかかる時間をt2-t0...
time.sleep(1)
ml.run_timed(time_sp=(t1-t0)*1000,speed_sp=-150,s...
mr.run_timed(time_sp=(t1-t0)*1000,speed_sp=150,st...
time.sleep(t1-t0) #回っている時間にプログラムが進...
time.sleep(1)
shoot() #上の関数を起動
ml.run_timed(time_sp=(t1-t0)*1000,speed_sp=150,st...
mr.run_timed(time_sp=(t1-t0)*1000,speed_sp=-150,s...
time.sleep(t1-t0)
#ref(2018b/Member/Kisuke/Mission2/discover.jpg,20%)
**プログラム全体 [#rbe345ee]
#!/usr/bin/env python3
from ev3dev.ev3 import *
import time #time.time()とtime.sleep()を使う
ml=LargeMotor('outA')
mr=LargeMotor('outD')
mm=MediumMotor('outC')
cs=ColorSensor('in4')
ts=TouchSensor('in1')
us=UltrasonicSensor('in2')
ロボットに情報を打ち込むところ。
def motor_init(): #モーターの値を初期化
mr.reset()
ml.reset()
def stop(): #止まる
ml.stop()
mr.stop()
def linetrace_rin():
c1=cs.value()
while c1>13:
c1=cs.value()
x=(abs(c1-10)/70)*100
if x>100:
x=100
l=(x/100)*210-30
r=150-l
ml.run_forever(speed_sp=l,stop_action='br...
mr.run_forever(speed_sp=r,stop_action='br...
stop()
def linetrace_rout():
c1=cs.value()
while c1<40:
c1=cs.value()
x=(abs(c1-10)/70)*100
if x>100:
x=100
l=(x/100)*120-40
r=40-l
ml.run_forever(speed_sp=l,stop_action='br...
mr.run_forever(speed_sp=r,stop_action='br...
stop()
def linetrace_lin():
c1=cs.value()
while c1>13:
c1=cs.value()
x=abs((c1-10)/70)*100
if x>100:
x=100
r=(x/100)*210-30
l=150-r
ml.run_forever(speed_sp=l,stop_action='br...
mr.run_forever(speed_sp=r,stop_action='br...
stop()
def linetrace_lout():
c1=cs.value()
while c1<40:
c1=cs.value()
x=(abs(c1-10)/70)*100
if x>100:
x=100
r=(x/100)*120-40
l=40-r
ml.run_forever(speed_sp=l,stop_action='br...
mr.run_forever(speed_sp=r,stop_action='br...
stop()
def shoot():
mm.run_to_rel_pos(position_sp=-60,speed_sp=150,st...
time.sleep(3)
mm.run_to_rel_pos(position_sp=60,speed_sp=150,sto...
time.sleep(3)
def discover():
t0=time.time()
u1=us.value()
ml.run_to_rel_pos(position_sp=-700,speed_sp=150,s...
mr.run_to_rel_pos(position_sp=700,speed_sp=150,st...
t2=time.time()
while t2-t0<4.7:
u2=us.value()
if u2<u1:
u1=u2
t1=time.time()
t2=time.time()
time.sleep(1)
ml.run_timed(time_sp=(t1-t0)*1000,speed_sp=-150,s...
mr.run_timed(time_sp=(t1-t0)*1000,speed_sp=150,st...
time.sleep(t1-t0)
time.sleep(1)
shoot()
ml.run_timed(time_sp=(t1-t0)*1000,speed_sp=150,st...
mr.run_timed(time_sp=(t1-t0)*1000,speed_sp=-150,s...
time.sleep(t1-t0)
def runtime(l,r): #指定した時間だけ真っ直ぐに進む 主に交...
ml.run_timed(time_sp=l*1000,speed_sp=70,stop_acti...
mr.run_timed(time_sp=r*1000,speed_sp=70,stop_acti...
time.sleep((l+r)/2)
def angle(l,r): #指定した数値の角度だけ進む 主に向きを変...
ml.run_to_rel_pos(position_sp=l,speed_sp=70,stop_...
mr.run_to_rel_pos(position_sp=r,speed_sp=70,stop_...
実際に進むために必要なプログラム。
def AtoB(): AからBに行くプログラム
runtime(2,2) #Pの枠を越えるために少し進ませる
linetrace_lin() #B地点までライントレース
print("AtoB") #ちゃんと関数が終了したか確かめる
def BtoK():
linetrace_lout() #B地点に進入した際、linetrace_li...
linetrace_lin() #白と黒の境界線に達した時、より速...
print("BtoK") #BからKへ正常に進めたら表示
time.sleep(1) #停止地点で1秒止まる
def KtoJ():
angle(-120,120) #交差点を跨ぐために向きを変える
time.sleep(2.5) #上の動作中に次のプログラムへ進ま...
linetrace_rin() #ラインの左側にいて境界線上を走る...
print("KtoJ") #
def JtoI():
angle(150,20) #交差点を跨ぐために向きを変える
time.sleep(2) #跨いでいる間にプログラムが次へ進ま...
linetrace_rin() #ラインの左側にいて、境界線上を走...
print("JtoI")
def ItoH():
angle(100,20) #Iの交差点を跨ぐ
time.sleep(2) #跨いでいる間にプログラムが次へ進ま...
linetrace_rin() #ラインの左側にいて、境界線上を走...
print("ItoH")
def HtoG():
linetrace_rout() #Hの交差点に進入した際、linetrac...
linetrace_rin() #境界線に達したとき、切り替える
time.sleep(1) #停止地点で停止する
print("HtoG")
def GtoE():
angle(0,180) #車体の位置を交差点Gの右上から右下に...
time.sleep(2) #向きを変えている間にプログラムが次...
linetrace_lin() #ラインの右側にいて、境界線上をを...
linetrace_lout() #2つ目の急カーブは曲がりきれなく...
linetrace_lin() #急カーブを曲がり終えて境界線に達...
time.sleep(1) #停止位置で停止
print("GtoE")
def EtoL():
linetrace_lout() #Eの交差点に進入した際、曲がりき...
linetrace_lin() #境界線に達した際、切り替える
print("EtoL")
def Goal():
runtime(5,5) #Qに入るために少し進む
def start(): #全てをまとめた
AtoB()
BtoK()
KtoJ()
JtoI()
discover()
ItoH()
HtoG()
GtoE()
EtoL()
Goal()
start() #起動
*反省 [#f156231e]
今回のライントレースで、速度の範囲を決めるときに、正の値...
*動画 [#l58af828]
https://youtu.be/-_e3MriktZk
総計:&counter(total);
終了行:
目次
#contents
*コース [#l2ad74e9]
自分はコース1を担当した。赤線はロボットの軌道を表していて...
#ref(2018b/Member/Kisuke/Mission2/map.jpg,30%);
*ロボット [#db61e790]
#ref(2018b/Member/Kisuke/Mission2/robot.jpg,20%)
車体は説明書通りになっており、車体上部にボールを発射する...
#ref(2018b/Member/Kisuke/Mission2/robot2.jpg,20%)
車体の前方に光センサーと超音波センサーをを取り付けている。
車体上部にミディアムモーターを取り付け画像のように機能す...
#ref(2018b/Member/Kisuke/Mission2/mediummotor.jpg,20%)
*プログラム [#p695aa19]
**ライントレース(基本編) [#m7cd746a]
今回の課題の根幹となる部分のプログラム
c1=cs.value()
x=(abs(c1-10)/70)*100 #だいたい10<c1<80といった範囲だっ...
if x>100:
x=100 #最大値が100を超えないようにする。
l=(x/100)*210-30 #1
r=150-l #2
ml.run_forever(speed_sp=l,stop_action='brake') #lの速さ...
mr.run_forever(speed_sp=r,stop_action='brake') #rの速さ...
#1 左タイヤの速度を設定する部分。x=0(黒い時)でl=-30,x=100...
#2 右タイヤの速度を設定する部分。x=0(黒い時)でr=180,x=100...
こうすることで、センサーの値に応じて速さが変化するため直...
***交差点の認識 [#se0591c7]
滑らかに移動できたことは、ライントレースをしている間はカ...
def linetrace() :
c1=cs.value()
while c1>13: #c1が黒を認識するまでループ
c1=cs.value()
x=abs((c1-10)/70)*100
if x>100:
x=100
r=(x/100)*210-30
l=150-r
ml.run_forever(speed_sp=l,stop_action='br...
mr.run_forever(speed_sp=r,stop_action='br...
stop()
というプログラムになり、交差点のようなカラーセンサーが急...
***このプログラムに至った経緯 [#k33a7966]
はじめは下のプログラムのようにカラーセンサーの値の増加量...
t1=time.time()
s1=cs.value()
sleep(0.1)
t2=time.time()
s2=cs.value()
x=(s2-s1)/(t2-t1) #カラーセンサーの0.1秒間の増加量
if x>0:
a=200
b=200-x
forward(a,b) #増加量の大きさの分だけ速さが減少して進む
if x=0:
a=200
b=200
forward(a,b)
if x<0:
a=200+x
b=200
forward(a,b)
しかし増加量を取ると、少しの明るさの違いで大きくジグザグ...
**ライントレース(応用編) [#se998bb6]
基本編でのプログラムは線の左側にいるときにしか使えない上...
定義名のl,rの違いは線の右に居るか左に居るかで、in,outの違...
def linetrace_rin(): #左側にいて、交差点を認識すると終わる
c1=cs.value()
while c1>13:
c1=cs.value()
x=(abs(c1-10)/70)*100
if x>100:
x=100
l=(x/100)*210-30
r=150-l
ml.run_forever(speed_sp=l,stop_action='brake')
mr.run_forever(speed_sp=r,stop_action='brake')
stop()
def linetrace_rout(): #左側にいて、境界線を認識すると終...
c1=cs.value()
while c1<40:
c1=cs.value()
x=(abs(c1-10)/70)*100
if x>100:
x=100
l=(x/100)*120-40
r=40-l
ml.run_forever(speed_sp=l,stop_action='brake')
mr.run_forever(speed_sp=r,stop_action='brake')
stop()
def linetrace_lin(): #右側にいて、交差点を認識すると終わる
c1=cs.value()
while c1>13:
c1=cs.value()
x=abs((c1-10)/70)*100
if x>100:
x=100
r=(x/100)*210-30
l=150-r
ml.run_forever(speed_sp=l,stop_action='brake')
mr.run_forever(speed_sp=r,stop_action='brake')
stop()
def linetrace_lout(): #右側にいて、境界線を認識すると終...
c1=cs.value()
while c1<40:
c1=cs.value()
x=(abs(c1-10)/70)*100
if x>100:
x=100
r=(x/100)*120-40
l=40-r
ml.run_forever(speed_sp=l,stop_action='brake')
mr.run_forever(speed_sp=r,stop_action='brake')
stop()
lout,routのスピードの値の範囲は-40<l<80 -40<r<80となって...
このように分類することで、直線や緩やかなカーブの時でもあ...
丁字路
linetrace_lin()
linetrace_lout()
linetrace_lin()
#ref(2018b/Member/Kisuke/Mission2/curve1.jpg,20%)
急カーブ
linetrace_rin()
linetrace_rout()
linetrace_rin()
#ref(2018b/Member/Kisuke/Mission2/curve2.jpg,20%)
画像の緑の丸あたりで関数が切り替わっている。
※lが右側に居て、rが左側に居るというのは誤植ではない。白い...
#ref(2018b/Member/Kisuke/Mission2/lr.jpg,10%)
***このプログラムに至った経緯 [#h7b9c24e]
最初はGからEにかけてのコースを次のようなプログラムで走ら...
i=0
while i<300: #iが300になった時点で終了
c1=cs.value()
if c1<13: #カラーセンサーが黒を認識したときにiのカウン...
i=i+1
else:
i=i #カラーセンサーが灰色や白を認識したときはカウント...
x=(abs(c1-10)/70)*100
if x>100:
x=100
l=(x/100)*60-20 #カーブを曲がり切れるようにさっきよりは...
r=20-l
ml.run_forever(speed_sp=l*5,stop_action='brake') #最初...
mr.run_forever(speed_sp=r*5,stop_action='brake')
stop()
これはループするうちに急カーブなどで黒を認識した数だけカ...
しかしこのプログラムだとEV3のバッテリー量に左右されやすく...
**ボール射出のプログラム [#vb134d9e]
def shoot(): #ボールを放つプログラム
mm.run_to_rel_pos(position_sp=-60,speed_sp=150,st...
time.sleep(3)
mm.run_to_rel_pos(position_sp=60,speed_sp=150,sto...
time.sleep(3)
def discover():
t0=time.time() #回転し始めで時間の計測を始める
u1=us.value() #超音波センサーの値をwhile関数でで...
ml.run_to_rel_pos(position_sp=-700,speed_sp=150,s...
mr.run_to_rel_pos(position_sp=700,speed_sp=150,st...
t2=time.time() #whileの条件で使うため、あらかじめ...
while t2-t0<4.7: #一回転するまでループする(4.7秒)
u2=us.value() #u2としてもう一つの値を定義...
if u2<u1:
u1=u2 #n回目の観測距離(u2)がn-1回...
t1=time.time() #更新した時の時間...
t2=time.time() #whileでかかる時間をt2-t0...
time.sleep(1)
ml.run_timed(time_sp=(t1-t0)*1000,speed_sp=-150,s...
mr.run_timed(time_sp=(t1-t0)*1000,speed_sp=150,st...
time.sleep(t1-t0) #回っている時間にプログラムが進...
time.sleep(1)
shoot() #上の関数を起動
ml.run_timed(time_sp=(t1-t0)*1000,speed_sp=150,st...
mr.run_timed(time_sp=(t1-t0)*1000,speed_sp=-150,s...
time.sleep(t1-t0)
#ref(2018b/Member/Kisuke/Mission2/discover.jpg,20%)
**プログラム全体 [#rbe345ee]
#!/usr/bin/env python3
from ev3dev.ev3 import *
import time #time.time()とtime.sleep()を使う
ml=LargeMotor('outA')
mr=LargeMotor('outD')
mm=MediumMotor('outC')
cs=ColorSensor('in4')
ts=TouchSensor('in1')
us=UltrasonicSensor('in2')
ロボットに情報を打ち込むところ。
def motor_init(): #モーターの値を初期化
mr.reset()
ml.reset()
def stop(): #止まる
ml.stop()
mr.stop()
def linetrace_rin():
c1=cs.value()
while c1>13:
c1=cs.value()
x=(abs(c1-10)/70)*100
if x>100:
x=100
l=(x/100)*210-30
r=150-l
ml.run_forever(speed_sp=l,stop_action='br...
mr.run_forever(speed_sp=r,stop_action='br...
stop()
def linetrace_rout():
c1=cs.value()
while c1<40:
c1=cs.value()
x=(abs(c1-10)/70)*100
if x>100:
x=100
l=(x/100)*120-40
r=40-l
ml.run_forever(speed_sp=l,stop_action='br...
mr.run_forever(speed_sp=r,stop_action='br...
stop()
def linetrace_lin():
c1=cs.value()
while c1>13:
c1=cs.value()
x=abs((c1-10)/70)*100
if x>100:
x=100
r=(x/100)*210-30
l=150-r
ml.run_forever(speed_sp=l,stop_action='br...
mr.run_forever(speed_sp=r,stop_action='br...
stop()
def linetrace_lout():
c1=cs.value()
while c1<40:
c1=cs.value()
x=(abs(c1-10)/70)*100
if x>100:
x=100
r=(x/100)*120-40
l=40-r
ml.run_forever(speed_sp=l,stop_action='br...
mr.run_forever(speed_sp=r,stop_action='br...
stop()
def shoot():
mm.run_to_rel_pos(position_sp=-60,speed_sp=150,st...
time.sleep(3)
mm.run_to_rel_pos(position_sp=60,speed_sp=150,sto...
time.sleep(3)
def discover():
t0=time.time()
u1=us.value()
ml.run_to_rel_pos(position_sp=-700,speed_sp=150,s...
mr.run_to_rel_pos(position_sp=700,speed_sp=150,st...
t2=time.time()
while t2-t0<4.7:
u2=us.value()
if u2<u1:
u1=u2
t1=time.time()
t2=time.time()
time.sleep(1)
ml.run_timed(time_sp=(t1-t0)*1000,speed_sp=-150,s...
mr.run_timed(time_sp=(t1-t0)*1000,speed_sp=150,st...
time.sleep(t1-t0)
time.sleep(1)
shoot()
ml.run_timed(time_sp=(t1-t0)*1000,speed_sp=150,st...
mr.run_timed(time_sp=(t1-t0)*1000,speed_sp=-150,s...
time.sleep(t1-t0)
def runtime(l,r): #指定した時間だけ真っ直ぐに進む 主に交...
ml.run_timed(time_sp=l*1000,speed_sp=70,stop_acti...
mr.run_timed(time_sp=r*1000,speed_sp=70,stop_acti...
time.sleep((l+r)/2)
def angle(l,r): #指定した数値の角度だけ進む 主に向きを変...
ml.run_to_rel_pos(position_sp=l,speed_sp=70,stop_...
mr.run_to_rel_pos(position_sp=r,speed_sp=70,stop_...
実際に進むために必要なプログラム。
def AtoB(): AからBに行くプログラム
runtime(2,2) #Pの枠を越えるために少し進ませる
linetrace_lin() #B地点までライントレース
print("AtoB") #ちゃんと関数が終了したか確かめる
def BtoK():
linetrace_lout() #B地点に進入した際、linetrace_li...
linetrace_lin() #白と黒の境界線に達した時、より速...
print("BtoK") #BからKへ正常に進めたら表示
time.sleep(1) #停止地点で1秒止まる
def KtoJ():
angle(-120,120) #交差点を跨ぐために向きを変える
time.sleep(2.5) #上の動作中に次のプログラムへ進ま...
linetrace_rin() #ラインの左側にいて境界線上を走る...
print("KtoJ") #
def JtoI():
angle(150,20) #交差点を跨ぐために向きを変える
time.sleep(2) #跨いでいる間にプログラムが次へ進ま...
linetrace_rin() #ラインの左側にいて、境界線上を走...
print("JtoI")
def ItoH():
angle(100,20) #Iの交差点を跨ぐ
time.sleep(2) #跨いでいる間にプログラムが次へ進ま...
linetrace_rin() #ラインの左側にいて、境界線上を走...
print("ItoH")
def HtoG():
linetrace_rout() #Hの交差点に進入した際、linetrac...
linetrace_rin() #境界線に達したとき、切り替える
time.sleep(1) #停止地点で停止する
print("HtoG")
def GtoE():
angle(0,180) #車体の位置を交差点Gの右上から右下に...
time.sleep(2) #向きを変えている間にプログラムが次...
linetrace_lin() #ラインの右側にいて、境界線上をを...
linetrace_lout() #2つ目の急カーブは曲がりきれなく...
linetrace_lin() #急カーブを曲がり終えて境界線に達...
time.sleep(1) #停止位置で停止
print("GtoE")
def EtoL():
linetrace_lout() #Eの交差点に進入した際、曲がりき...
linetrace_lin() #境界線に達した際、切り替える
print("EtoL")
def Goal():
runtime(5,5) #Qに入るために少し進む
def start(): #全てをまとめた
AtoB()
BtoK()
KtoJ()
JtoI()
discover()
ItoH()
HtoG()
GtoE()
EtoL()
Goal()
start() #起動
*反省 [#f156231e]
今回のライントレースで、速度の範囲を決めるときに、正の値...
*動画 [#l58af828]
https://youtu.be/-_e3MriktZk
総計:&counter(total);
ページ名: