2016a/Member/nanchi/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
目次
#contents
*課題3の内容 [#y12adde1]
今回の課題3は前回の課題2で使用したコースを使います。~
#ref(ロボティクス コース.png)
**基本ルール [#b433d569]
・紙コップをC地点、D地点にそれぞれ3個(合計6個)置き、C地点...
・紙コップは上下どちらにおいてもかまわない~
・2台のロボットの場合はA地点とB地点からスタート、一体型の...
・最終的に黒線で囲まれた輪の中にC地点からの紙コップとD地...
・紙コップを重ねる場所は、必ずしも目的地点の輪の中でなく...
・最終的に紙コップが自力で立っていること、またロボットが...
・競技時間はすべてのコップを重ね終わるまで、あるいは審判...
・審判の合図の後、5秒以内にロボットをスタートさせ、それ以...
・EV3のチームはA,B,Cにそれぞれマークした紙コップをそれぞ...
・EV3のチームはA,B,C,Dのどこからスタートしてもよいが、別...
・紙コップに色を塗ったり文字や絵をかいてもよいが、穴を開...
・光センサは2セット合わせて2つまで使って良い、その他のセ...
**基本得点の計算方法 [#g1282774]
・1段目の紙コップ3点、2段目の紙コップ6点、・・、n段目のコ...
・奇数段目にあるDのコップと偶数段目にあるCのコップは0点~
・EV3は1段目のAのカップ2点、2段目のBのカップ4点、3段目のC...
**技術点の計算方法 [#xa0a5646]
以下の動作の精度・スピード・確実性などを含めた技術的な工...
・スタートしてから紙コップの地点まで移動する速さ、正確さ ...
・紙コップをつかむ動作 (3点)~
・紙コップをゴールまで運ぶ動作の速さ、正確さ (2点)~
・紙コップを重ねる動作 (3点)~
・2台のロボットの連携の良さ (3点)~
・自立型のロボットとしての形や動作の美しさ、斬新さ (3点)~
・ロボコン出場ロボットとしての完成度 (2点)~
・その他 (2点)
*ロボットの説明 [#ac5b17b8]
今回、僕たちEV3の班は、紙コップを回収するロボット1台、回...
**紙コップ回収ロボット [#tda57caf]
#ref(IMG_0431.JPG)
#ref(IMG_0434.JPG)
全体像はこんな感じです。~
基本的には課題2の時に制作したロボットと同じで、課題2のロ...
**紙コップ積み上げロボット [#xac559a5]
#ref(IMG_0489.jpg)
#ref(IMG_0487.jpg)
全体像はこんな感じです。~
ベルトコンベアには小さなパーツをつけて、紙コップが滑り落...
紙コップを積む方法は、前方に置かれた紙コップを積み上げロ...
*プログラムの説明 [#s38e1fc3]
基本的には、課題1、課題2でのプログラムを基本としているの...
**紙コップ回収ロボット [#t33259f6]
#!/usr/bin/python
import ev3dev.ev3 as ev3
import time
ml = ev3.LargeMotor('outB')
mr = ev3.LargeMotor('outA')
mm = ev3.MediumMotor('outC')
cs = ev3.ColorSensor('in1')
de = ev3.InfraredSensor('in2')
左モーターをml、右モーターをmr、アームを動かすロボットをm...
def catch():
while de.value() < 50:
if de.value() < 10:
ml.run_forever(duty_cycle_sp=0)
mr.run_forever(duty_cycle_sp=0)
mm.run_forever(duty_cycle_sp=50)
time.sleep(4)
mm.run_forever(duty_cycle_sp=0)
ml.run_forever(duty_cycle_sp=-20)
mr.run_forever(duty_cycle_sp=-20)
time.sleep(1.5)
ml.run_forever(duty_cycle_sp=0)
mr.run_forever(duty_cycle_sp=0)
ml.run_forever(duty_cycle_sp=-50)
mr.run_forever(duty_cycle_sp=50)
time.sleep(1.6)
ml.run_forever(duty_cycle_sp=0)
mr.run_forever(duty_cycle_sp=0)
else:
ml.run_forever(duty_cycle_sp=15)
mr.run_forever(duty_cycle_sp=15)
ここでは、赤外線センサーを利用して、紙コップが近づいたと...
def lineleft():
t0 = time.time()
while time.time() - t0 < 0.35:
if cs.value () > 50 :
mr.run_forever(duty_cycle_sp=-30)
ml.run_forever(duty_cycle_sp=60)
t0 = time.time()
else:
mr.run_forever(duty_cycle_sp=60)
ml.run_forever(duty_cycle_sp=-30)
def cross(t,dl,dr):
mr.run_forever(duty_cycle_sp=dr)
ml.run_forever(duty_cycle_sp=dl)
time.sleep(t/1000)
ml.stop()
mr.stop()
def toa():
lineright()
cross(1000,-20,20)
cross(1000,13,13)
lineright()
cross(1000,0,0)
cross(1000,-18,18)
cross(1000,0,0)
catch()
cross(1400,30,-30)
lineright()
cross(1000,0,0)
cross(1000,-20,20)
cross(1000,10,10)
lineright()
cross(1000,0,0)
cross(1000,-25,25)
mm.run_forever(duty_cycle_sp=-50)
time.sleep(3)
mm.run_forever(duty_cycle_sp=0)
cross(1000,-30,-30)
cross(2000,-40,40)
def tob():
lineleft()
cross(1000,-10,10)
lineright()
cross(1000,-20,20)
cross(1000,13,13)
lineright()
cross(1000,-20,20)
cross(1000,13,13)
lineright()
cross(1000,0,0)
cross(1000,-17,17)
cross(1000,0,0)
catch()
lineleft()
cross(1000,20,-20)
cross(1000,13,13)
lineleft()
cross(1000,20,-20)
cross(1000,40,13)
lineright()
cross(1000,0,0)
cross(1000,36,-36)
lineright()
cross(1000,0,0)
cross(1000,-20,20)
mm.run_forever(duty_cycle_sp=-50)
time.sleep(3)
mm.run_forever(duty_cycle_sp=0)
cross(1000,-30,-30)
def toc():
lineright()
cross(1000,-17,17)
cross(1000,30,-30)
cross(1000,10,10)
lineright()
cross(1000,-20,20)
cross(1000,13,13)
lineright()
cross(1000,-20,20)
cross(1000,13,13)
catch()
lineright()
cross(1000,0,0)
cross(1000,17,-17)
cross(1000,13,13)
lineright()
cross(1000,0,0)
cross(1000,-22,22)
cross(1000,0,0)
lineright()
cross(1000,0,0)
cross(1000,-25,25)
mm.run_forever(duty_cycle_sp=-50)
time.sleep(3)
mm.run_forever(duty_cycle_sp=0)
cross(1000,-30,-30)
cross(1500,-50,50)
mm.run_forever(duty_cycle_sp=-50)
time.sleep(3.5)
mm.run_forever(duty_cycle_sp=0)
tob()
cross(1000,-13,13)
tob()
少し長いですが、ここでは課題2と同様にライントレースをする...
toa、tob、tocというのは、to'A'、to'B'、to'C'ということで...
**紙コップ積み上げロボット [#i1bb5e8e]
#!/usr/bin/python
import ev3dev.ev3 as ev3
import time
m1 = ev3.LargeMotor('outA')
m2 = ev3.MediumMotor('outB')
m3 = ev3.MediumMotor('outC')
m4 = ev3.LargeMotor('outD')
us = ev3.UltrasonicSensor('in1')
先ほどと同じようにして文字を設定しています。
def search(p):
t0 = time.time()
while time.time() - t0 < 0.001:
if us.value() > p:
m4.run_forever(duty_cycle_sp=50)
t0 = time.time()
else:
m4.stop()
ここでは、センサーを利用して回収ロボットによって回収され...
def bring(x,y):
m4.run_forever(duty_cycle_sp=x)
time.sleep(y)
m4.stop()
def close():
m1.run_forever(duty_cycle_sp=-37.5)
time.sleep(0.32)
m1.stop()
def up():
m3.run_forever(duty_cycle_sp=-50)
m2.run_forever(duty_cycle_sp=50)
time.sleep(2.25)
m2.stop()
m3.stop()
def down():
m3.run_forever(duty_cycle_sp=50)
m2.run_forever(duty_cycle_sp=-50)
time.sleep(1.5)
m2.stop()
m3.stop()
def open(a,b):
m1.run_forever(duty_cycle_sp=a)
time.sleep(b)
m1.stop()
search(60)
bring(45,0.2)
close()
up()
search(60)
open(20,0.275)
bring(45,0.2)
down()
open(27.5,0.325)
bring(-40,7.5)
ここではdefの後に続く英語で分かる通り、ベルトコンベアを回...
*反省と感想 [#k1b94d95]
結果は失敗でした。~
本番では、ロボットがうまく動かず、課題をクリアすることが...
授業外で班のメンバーで集まり、制作に取り組みましたが、時...
反省点としては、もっと積極的に時間を作って、集まればよか...
結果はうまくいきませんでしたが、課題1、2、そして最終課題...
毎回、時間の少なさ、プログラミング知識少なさ故に苦労を強...
また、プログラミングをする機会があると思うので、その時は...
終了行:
目次
#contents
*課題3の内容 [#y12adde1]
今回の課題3は前回の課題2で使用したコースを使います。~
#ref(ロボティクス コース.png)
**基本ルール [#b433d569]
・紙コップをC地点、D地点にそれぞれ3個(合計6個)置き、C地点...
・紙コップは上下どちらにおいてもかまわない~
・2台のロボットの場合はA地点とB地点からスタート、一体型の...
・最終的に黒線で囲まれた輪の中にC地点からの紙コップとD地...
・紙コップを重ねる場所は、必ずしも目的地点の輪の中でなく...
・最終的に紙コップが自力で立っていること、またロボットが...
・競技時間はすべてのコップを重ね終わるまで、あるいは審判...
・審判の合図の後、5秒以内にロボットをスタートさせ、それ以...
・EV3のチームはA,B,Cにそれぞれマークした紙コップをそれぞ...
・EV3のチームはA,B,C,Dのどこからスタートしてもよいが、別...
・紙コップに色を塗ったり文字や絵をかいてもよいが、穴を開...
・光センサは2セット合わせて2つまで使って良い、その他のセ...
**基本得点の計算方法 [#g1282774]
・1段目の紙コップ3点、2段目の紙コップ6点、・・、n段目のコ...
・奇数段目にあるDのコップと偶数段目にあるCのコップは0点~
・EV3は1段目のAのカップ2点、2段目のBのカップ4点、3段目のC...
**技術点の計算方法 [#xa0a5646]
以下の動作の精度・スピード・確実性などを含めた技術的な工...
・スタートしてから紙コップの地点まで移動する速さ、正確さ ...
・紙コップをつかむ動作 (3点)~
・紙コップをゴールまで運ぶ動作の速さ、正確さ (2点)~
・紙コップを重ねる動作 (3点)~
・2台のロボットの連携の良さ (3点)~
・自立型のロボットとしての形や動作の美しさ、斬新さ (3点)~
・ロボコン出場ロボットとしての完成度 (2点)~
・その他 (2点)
*ロボットの説明 [#ac5b17b8]
今回、僕たちEV3の班は、紙コップを回収するロボット1台、回...
**紙コップ回収ロボット [#tda57caf]
#ref(IMG_0431.JPG)
#ref(IMG_0434.JPG)
全体像はこんな感じです。~
基本的には課題2の時に制作したロボットと同じで、課題2のロ...
**紙コップ積み上げロボット [#xac559a5]
#ref(IMG_0489.jpg)
#ref(IMG_0487.jpg)
全体像はこんな感じです。~
ベルトコンベアには小さなパーツをつけて、紙コップが滑り落...
紙コップを積む方法は、前方に置かれた紙コップを積み上げロ...
*プログラムの説明 [#s38e1fc3]
基本的には、課題1、課題2でのプログラムを基本としているの...
**紙コップ回収ロボット [#t33259f6]
#!/usr/bin/python
import ev3dev.ev3 as ev3
import time
ml = ev3.LargeMotor('outB')
mr = ev3.LargeMotor('outA')
mm = ev3.MediumMotor('outC')
cs = ev3.ColorSensor('in1')
de = ev3.InfraredSensor('in2')
左モーターをml、右モーターをmr、アームを動かすロボットをm...
def catch():
while de.value() < 50:
if de.value() < 10:
ml.run_forever(duty_cycle_sp=0)
mr.run_forever(duty_cycle_sp=0)
mm.run_forever(duty_cycle_sp=50)
time.sleep(4)
mm.run_forever(duty_cycle_sp=0)
ml.run_forever(duty_cycle_sp=-20)
mr.run_forever(duty_cycle_sp=-20)
time.sleep(1.5)
ml.run_forever(duty_cycle_sp=0)
mr.run_forever(duty_cycle_sp=0)
ml.run_forever(duty_cycle_sp=-50)
mr.run_forever(duty_cycle_sp=50)
time.sleep(1.6)
ml.run_forever(duty_cycle_sp=0)
mr.run_forever(duty_cycle_sp=0)
else:
ml.run_forever(duty_cycle_sp=15)
mr.run_forever(duty_cycle_sp=15)
ここでは、赤外線センサーを利用して、紙コップが近づいたと...
def lineleft():
t0 = time.time()
while time.time() - t0 < 0.35:
if cs.value () > 50 :
mr.run_forever(duty_cycle_sp=-30)
ml.run_forever(duty_cycle_sp=60)
t0 = time.time()
else:
mr.run_forever(duty_cycle_sp=60)
ml.run_forever(duty_cycle_sp=-30)
def cross(t,dl,dr):
mr.run_forever(duty_cycle_sp=dr)
ml.run_forever(duty_cycle_sp=dl)
time.sleep(t/1000)
ml.stop()
mr.stop()
def toa():
lineright()
cross(1000,-20,20)
cross(1000,13,13)
lineright()
cross(1000,0,0)
cross(1000,-18,18)
cross(1000,0,0)
catch()
cross(1400,30,-30)
lineright()
cross(1000,0,0)
cross(1000,-20,20)
cross(1000,10,10)
lineright()
cross(1000,0,0)
cross(1000,-25,25)
mm.run_forever(duty_cycle_sp=-50)
time.sleep(3)
mm.run_forever(duty_cycle_sp=0)
cross(1000,-30,-30)
cross(2000,-40,40)
def tob():
lineleft()
cross(1000,-10,10)
lineright()
cross(1000,-20,20)
cross(1000,13,13)
lineright()
cross(1000,-20,20)
cross(1000,13,13)
lineright()
cross(1000,0,0)
cross(1000,-17,17)
cross(1000,0,0)
catch()
lineleft()
cross(1000,20,-20)
cross(1000,13,13)
lineleft()
cross(1000,20,-20)
cross(1000,40,13)
lineright()
cross(1000,0,0)
cross(1000,36,-36)
lineright()
cross(1000,0,0)
cross(1000,-20,20)
mm.run_forever(duty_cycle_sp=-50)
time.sleep(3)
mm.run_forever(duty_cycle_sp=0)
cross(1000,-30,-30)
def toc():
lineright()
cross(1000,-17,17)
cross(1000,30,-30)
cross(1000,10,10)
lineright()
cross(1000,-20,20)
cross(1000,13,13)
lineright()
cross(1000,-20,20)
cross(1000,13,13)
catch()
lineright()
cross(1000,0,0)
cross(1000,17,-17)
cross(1000,13,13)
lineright()
cross(1000,0,0)
cross(1000,-22,22)
cross(1000,0,0)
lineright()
cross(1000,0,0)
cross(1000,-25,25)
mm.run_forever(duty_cycle_sp=-50)
time.sleep(3)
mm.run_forever(duty_cycle_sp=0)
cross(1000,-30,-30)
cross(1500,-50,50)
mm.run_forever(duty_cycle_sp=-50)
time.sleep(3.5)
mm.run_forever(duty_cycle_sp=0)
tob()
cross(1000,-13,13)
tob()
少し長いですが、ここでは課題2と同様にライントレースをする...
toa、tob、tocというのは、to'A'、to'B'、to'C'ということで...
**紙コップ積み上げロボット [#i1bb5e8e]
#!/usr/bin/python
import ev3dev.ev3 as ev3
import time
m1 = ev3.LargeMotor('outA')
m2 = ev3.MediumMotor('outB')
m3 = ev3.MediumMotor('outC')
m4 = ev3.LargeMotor('outD')
us = ev3.UltrasonicSensor('in1')
先ほどと同じようにして文字を設定しています。
def search(p):
t0 = time.time()
while time.time() - t0 < 0.001:
if us.value() > p:
m4.run_forever(duty_cycle_sp=50)
t0 = time.time()
else:
m4.stop()
ここでは、センサーを利用して回収ロボットによって回収され...
def bring(x,y):
m4.run_forever(duty_cycle_sp=x)
time.sleep(y)
m4.stop()
def close():
m1.run_forever(duty_cycle_sp=-37.5)
time.sleep(0.32)
m1.stop()
def up():
m3.run_forever(duty_cycle_sp=-50)
m2.run_forever(duty_cycle_sp=50)
time.sleep(2.25)
m2.stop()
m3.stop()
def down():
m3.run_forever(duty_cycle_sp=50)
m2.run_forever(duty_cycle_sp=-50)
time.sleep(1.5)
m2.stop()
m3.stop()
def open(a,b):
m1.run_forever(duty_cycle_sp=a)
time.sleep(b)
m1.stop()
search(60)
bring(45,0.2)
close()
up()
search(60)
open(20,0.275)
bring(45,0.2)
down()
open(27.5,0.325)
bring(-40,7.5)
ここではdefの後に続く英語で分かる通り、ベルトコンベアを回...
*反省と感想 [#k1b94d95]
結果は失敗でした。~
本番では、ロボットがうまく動かず、課題をクリアすることが...
授業外で班のメンバーで集まり、制作に取り組みましたが、時...
反省点としては、もっと積極的に時間を作って、集まればよか...
結果はうまくいきませんでしたが、課題1、2、そして最終課題...
毎回、時間の少なさ、プログラミング知識少なさ故に苦労を強...
また、プログラミングをする機会があると思うので、その時は...
ページ名: