2017b/Member/Reici/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2017b/Member]]
*課題2 [#g41334c3]
**コース説明 [#u4a587d5]
今回の課題は2通りのコースを分担して走行して紙コップを取り...
&ref(2017b/Member/Reici/Mission2/2017b-mission2.png,100%,...
+Dに機体を置く
+Cを直進
+Bを左折
+Pを左折(一時停止)
+Qを直進
+Rを左折
+Fを左折
+Sを直進(一時停止)
+Y地点の紙コップを取得
+Sを直進(一時停止)
+Qを左折(一時停止)
+Rを直進
+X地点に紙コップを置く
+Pを左折
+B を左折(一時停止)
+A地点へ
となっている。
EからヘアピンカーブでFに向かう箇所が難しそうだと感じた。
**機体説明 [#x455ca09]
&ref(2017b/Member/Reici/Mission2/001.jpg,25%,ロボ機体);
今回の機体である。Lモータ2つで移動、Mモータでコップをキャ...
&ref(2017b/Member/Reici/Mission2/002.jpg,25%,CS設置場所);
Lモータの駆動軸よりやや前にカラーセンサ(以下CS)を置く。か...
&ref(2017b/Member/Reici/Mission2/003.jpg,25%,コップ掴むと...
コップはこのように上から囲って移動させる。移動中に機体が...
&ref(2017b/Member/Reici/Mission2/004.jpg,25%,ロボ分解図、...
今回の機体は上図のように簡単に分解できる。またMモータとの...
**プログラミング説明/設定とか [#a134abe4]
mA=LargeMotor('outA')
mD=LargeMotor('outD')
mB=MediumMotor('outB')
cs=ColorSensor('in1')
各モータ、センサの定義
**プログラミング説明/基礎部分 [#jd03cc98]
ライントレース用の基本プログラムについて説明する。
def line_follow():
t0 = time.time()
t1 = time.time()
while t0 - t1 < 0.5: #この場合、0.5秒以上同じ行動をと...
t1=time.time()
if cs.value() >= 15: #CSの値が15以上で白にいると定義...
while cs.value() >= 15: #CSが15以下になるまで
mA.run_forever(speed_sp= 450)
mD.run_forever(speed_sp= -80)
t0=time.time()
elif cs.value() < 15: #CSの値が15以下は黒。この場合...
while cs.value() <=15:
mA.run_forever(speed_sp= -80)
mD.run_forever(speed_sp= 450)
t0=time.time()
mA.stop()
mD.stop()
sleep(2)
このプログラムでライントレースを行う。
***ピンカーブ用に調整したもの [#v54e65ab]
def pinC_follow():
line_follow()
mA.run_timed(time_sp=500, speed_sp=200, stop_act...
mD.run_timed(time_sp=500, speed_sp=-80, stop_act...
line_follow()
途中でカーブが急で曲がり切れずに停止してしまう。なのでち...
**プログラミング説明/追加部分 [#g115fc3c]
上記のプログラムでは交差点が感知しない場合があったので、...
-直線から円へ進む場合
-逆に円周から交差点に合流する場合
具体的な箇所としてはP,Q,Rの三か所だが、上記のline_follow(...
なので、円を曲がるときだけ別にプログラムをつくる必要があ...
def line_C():
t0 = time.time()
t1 = time.time()
while t0 - t1 < 0.45: #この数値が一番打率が高かった
t1=time.time()
if cs.value() >= 15:
while cs.value() >= 15:
mA.run_forever(speed_sp= 250) #変更箇所
mD.run_forever(speed_sp= -80)
t0=time.time()
elif cs.value() < 15:
while cs.value() <=15:
mA.run_forever(speed_sp= -80)
mD.run_forever(speed_sp= 450) #変更箇所
t0=time.time()
mA.stop()
mD.stop()
sleep(2)
このプログラムではロボットはラインの左縁をジグザグ進む。...
**プログラミング説明/その他 [#rebd243a]
交差点でのバック、コップの保持、音等
def S():
Sound.tone(440,100) #音がピッってなる
sleep(500/1000)
わざわざ定義する必要ある?と思われるかもしれないが、道中...
def get_cop():
mB.run_timed(time_sp=400, speed_sp=-200, stop_action='...
コップを掴む?為にアームを下すだけのプログラム。安定して...
def F():
mA.run_timed(time_sp=200, speed_sp=-200, stop_action='...
S()
mA.run_timed(time_sp=200, speed_sp=400, stop_action='b...
mD.run_timed(time_sp=200, speed_sp=400, stop_action='b...
sleep(100/1000)
上述したように、このプログラムでは交差点の検知はすべて左...
右折するプログラムも定義したはいいが全く使わなかったので...
**プログラミング説明/まとめ [#z0ad1d93]
全部書いただけです。アルファベットは上図参照。
line_follow()
S() #C地点で停止
F() #交差点直進
line_follow()
S() #B地点で停止
line_C()
S() #P地点で停止
line_C()
S() #Q地点で停止
F() #交差点直進
line_C()
S() #R地点で停止
line_follow()
S() #E地点で停止
pinC_follow()
S() #F地点で停止
line_follow()
S() #S地点で停止
F() #交差点直進
line_C()
mA.run_timed(time_sp=200, speed_sp=-200, stop_action='br...
S()
mA.run_timed(time_sp=250, speed_sp=100, stop_action='bra...
mD.run_timed(time_sp=180, speed_sp=100, stop_action='bra...
get_cop()
mA.run_timed(time_sp=80, speed_sp=400, stop_action='brak...
F() #S地点に戻ってくる
line_C()
S()
line_C()
S() #再びQ地点
F()
line_C()
S()
mA.run_timed(time_sp=480, speed_sp=-200, stop_action='br...
rel_cop()
mA.run_timed(time_sp=480, speed_sp=200, stop_action='bra...
S()
line_follow()
S() #再びB地点で停止、最後の交差点
line_follow()
S()
以上でライントレース用のプログラムは終わりです。
終了行:
[[2017b/Member]]
*課題2 [#g41334c3]
**コース説明 [#u4a587d5]
今回の課題は2通りのコースを分担して走行して紙コップを取り...
&ref(2017b/Member/Reici/Mission2/2017b-mission2.png,100%,...
+Dに機体を置く
+Cを直進
+Bを左折
+Pを左折(一時停止)
+Qを直進
+Rを左折
+Fを左折
+Sを直進(一時停止)
+Y地点の紙コップを取得
+Sを直進(一時停止)
+Qを左折(一時停止)
+Rを直進
+X地点に紙コップを置く
+Pを左折
+B を左折(一時停止)
+A地点へ
となっている。
EからヘアピンカーブでFに向かう箇所が難しそうだと感じた。
**機体説明 [#x455ca09]
&ref(2017b/Member/Reici/Mission2/001.jpg,25%,ロボ機体);
今回の機体である。Lモータ2つで移動、Mモータでコップをキャ...
&ref(2017b/Member/Reici/Mission2/002.jpg,25%,CS設置場所);
Lモータの駆動軸よりやや前にカラーセンサ(以下CS)を置く。か...
&ref(2017b/Member/Reici/Mission2/003.jpg,25%,コップ掴むと...
コップはこのように上から囲って移動させる。移動中に機体が...
&ref(2017b/Member/Reici/Mission2/004.jpg,25%,ロボ分解図、...
今回の機体は上図のように簡単に分解できる。またMモータとの...
**プログラミング説明/設定とか [#a134abe4]
mA=LargeMotor('outA')
mD=LargeMotor('outD')
mB=MediumMotor('outB')
cs=ColorSensor('in1')
各モータ、センサの定義
**プログラミング説明/基礎部分 [#jd03cc98]
ライントレース用の基本プログラムについて説明する。
def line_follow():
t0 = time.time()
t1 = time.time()
while t0 - t1 < 0.5: #この場合、0.5秒以上同じ行動をと...
t1=time.time()
if cs.value() >= 15: #CSの値が15以上で白にいると定義...
while cs.value() >= 15: #CSが15以下になるまで
mA.run_forever(speed_sp= 450)
mD.run_forever(speed_sp= -80)
t0=time.time()
elif cs.value() < 15: #CSの値が15以下は黒。この場合...
while cs.value() <=15:
mA.run_forever(speed_sp= -80)
mD.run_forever(speed_sp= 450)
t0=time.time()
mA.stop()
mD.stop()
sleep(2)
このプログラムでライントレースを行う。
***ピンカーブ用に調整したもの [#v54e65ab]
def pinC_follow():
line_follow()
mA.run_timed(time_sp=500, speed_sp=200, stop_act...
mD.run_timed(time_sp=500, speed_sp=-80, stop_act...
line_follow()
途中でカーブが急で曲がり切れずに停止してしまう。なのでち...
**プログラミング説明/追加部分 [#g115fc3c]
上記のプログラムでは交差点が感知しない場合があったので、...
-直線から円へ進む場合
-逆に円周から交差点に合流する場合
具体的な箇所としてはP,Q,Rの三か所だが、上記のline_follow(...
なので、円を曲がるときだけ別にプログラムをつくる必要があ...
def line_C():
t0 = time.time()
t1 = time.time()
while t0 - t1 < 0.45: #この数値が一番打率が高かった
t1=time.time()
if cs.value() >= 15:
while cs.value() >= 15:
mA.run_forever(speed_sp= 250) #変更箇所
mD.run_forever(speed_sp= -80)
t0=time.time()
elif cs.value() < 15:
while cs.value() <=15:
mA.run_forever(speed_sp= -80)
mD.run_forever(speed_sp= 450) #変更箇所
t0=time.time()
mA.stop()
mD.stop()
sleep(2)
このプログラムではロボットはラインの左縁をジグザグ進む。...
**プログラミング説明/その他 [#rebd243a]
交差点でのバック、コップの保持、音等
def S():
Sound.tone(440,100) #音がピッってなる
sleep(500/1000)
わざわざ定義する必要ある?と思われるかもしれないが、道中...
def get_cop():
mB.run_timed(time_sp=400, speed_sp=-200, stop_action='...
コップを掴む?為にアームを下すだけのプログラム。安定して...
def F():
mA.run_timed(time_sp=200, speed_sp=-200, stop_action='...
S()
mA.run_timed(time_sp=200, speed_sp=400, stop_action='b...
mD.run_timed(time_sp=200, speed_sp=400, stop_action='b...
sleep(100/1000)
上述したように、このプログラムでは交差点の検知はすべて左...
右折するプログラムも定義したはいいが全く使わなかったので...
**プログラミング説明/まとめ [#z0ad1d93]
全部書いただけです。アルファベットは上図参照。
line_follow()
S() #C地点で停止
F() #交差点直進
line_follow()
S() #B地点で停止
line_C()
S() #P地点で停止
line_C()
S() #Q地点で停止
F() #交差点直進
line_C()
S() #R地点で停止
line_follow()
S() #E地点で停止
pinC_follow()
S() #F地点で停止
line_follow()
S() #S地点で停止
F() #交差点直進
line_C()
mA.run_timed(time_sp=200, speed_sp=-200, stop_action='br...
S()
mA.run_timed(time_sp=250, speed_sp=100, stop_action='bra...
mD.run_timed(time_sp=180, speed_sp=100, stop_action='bra...
get_cop()
mA.run_timed(time_sp=80, speed_sp=400, stop_action='brak...
F() #S地点に戻ってくる
line_C()
S()
line_C()
S() #再びQ地点
F()
line_C()
S()
mA.run_timed(time_sp=480, speed_sp=-200, stop_action='br...
rel_cop()
mA.run_timed(time_sp=480, speed_sp=200, stop_action='bra...
S()
line_follow()
S() #再びB地点で停止、最後の交差点
line_follow()
S()
以上でライントレース用のプログラムは終わりです。
ページ名: