2016b/Member/being/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
* 初めに [#t02fdb26]
Ev3をnxcで動かそうとして時間を使いつづけた結果、作業...
結果、うまくいかない(クロスコンパイラのエラーが解消...
*課題について [#h56bfbb9]
課題1は “A4の紙に今年の大学生活を表す漢字一文字を書く...
多少迷走はしたが、自分は信を描くことになった。
*機体について [#w2023af9]
**機体全般について [#sf5c4651]
#ref(2016b/Member/being/Mission1/機体.jpg,100%,概観)
この機体で重視したのはまず、筆を上げずに超信地旋回したと...
そのためにまず、駆動輪を機体の真ん中に置き、できるだけ重...
また、一番の重量物であるEV3本体の真下には車輪などを設置せ...
しかし機体の端に重量物を設置したことで機体が接地物のないE...
解決策として反対側にEV3 IRビーコン&size(10){(EV3 IRセン...
また、ペンには筆ペンを使用した。ペン先がしなることである...
**筆の昇降機構について [#me1a8fe9]
#ref(2016b/Member/being/Mission1/筆先.jpg,100%,固定機構)
この機構に求められていたのは100回昇降を行ったら100回とも...
写真は最大まで上げた状態である。部品に隠れてしまっていて...
***ぶれの抑制機構 [#z00192c5]
この機構は、筆のぶれについて、機体の左右方向(写真の前後...
下の、棒についた二つの筆を挟むパーツの位置を微調整するこ...
***筆の上下運動機構 [#c09af240]
上記の筆のぶれの抑制機構を最大限活用するためには筆自体が...
***筆圧を出すために [#o5adcdad]
EV3のキットでは3つのモーターのうち二つがNXTのようなモータ...
授業中に解説されていたことだが、ウォームギヤは非常に強い...
**分解等について [#me423776]
#ref(2016b/Member/being/Mission1/分解図.jpg,100%,分解時)
機体が走行中に、歪んでしまうとまっすぐ走らなくなってしま...
*書き順について [#d6fa30d0]
下に添付した画像参照(左上から書き始める)~
&ref(2016b/Member/being/Mission1/書き順.jpg,100%,書き順);~
&size(10){(オレンジ色の縁取りの矢印がその動きの時の機体...
経路の途中にそれぞれアルファベットを振っており、プログラ...
*プログラム(syu-S_V2.py)について [#k4eec2e1]
**初めに [#nce2b298]
&size(10){(最初のプログラムは二人で作成したが、課題を勘...
A4一面に描くものと勘違いしていたため、そのようにプログラ...
というよりも、プログラム名からわかることだが最初 州 を書...
当日にA4サイズではなく15?四方だと知りそれに合わせて調整し...
しかし、後述の工夫があったためほとんど苦労せずにA4サイズ...
**プログラムについて [#xe6f911e]
***こまごました前提 [#l6369351]
極力時間制御を使い、角度制御をするのは機体を旋回させると...
調整をしやすくするために関数の引数をできるだけ減らし、ま...
さらに、プログラムを単純化するために直進する時間を4つ(初...
たまに右旋回と左旋回で一定角度旋回するのに必要な角度が異...
また、機体の停止時に倒れはしなくても揺れることがあるので...
----
***プログラムの解説 [#j1fa1cce]
***定数群&size(10){(これからずっと使う数字はここで定義し...
最初(syu-S.py)ではこの部分な次に様に定義されていた
F = 1 //FULLの略 一番長い人偏の直線部分を書くために定義...
H = 0.5 //HALFの略 言の短い様の横棒4本をかくために定義さ...
Q = 0.25 //QUARTERの略 口の縦棒を書くために定義された
HQ = 0.125 //HALF&QUARTERの略 言の長い横棒のために定義...
T = 185 //90°旋回時の角度の値 電圧によって微妙に変化す...
これをsyu-S_V2.pyではこう定義している
F = 0.4
H = 0.5/2
Q = 0.25/2
HQ = 0.125/2
T = 175
F以外の時間は単純に半分にしているだけである。これは半分に...
試走のデータはだいたいとってあるが、きれいに分かれていた...
左は90°回転するときのモーターの回転角度(T)が180,右は90°...
このような結果が出たためT=175に決定した。
***関数群 [#z1a327fb]
mw = ev3.MediumMotor('outA') //motor writeの略
mr = ev3.LargeMotor('outB') //motor rightの略
ml = ev3.LargeMotor('outC') //motor leftの略
def st(x,y): //srtraightの略。これはただ直進するための関...
mr.reset()
ml.reset()
mr.run_forever(duty_cycle_sp=x)
ml.run_forever(duty_cycle_sp=x)
time.sleep(y)
mr.stop(stop_command='brake')
ml.stop(stop_command='brake')
time.sleep(0.5)
def wri(x,y): //writeの略。筆を上下するための関数であり...
mw.reset()
mw.run_forever(duty_cycle_sp=x)
time.sleep(y)
mw.stop()
time.sleep(0.5)
補足 : 角度制御をここで行ったとする。○○度モーターを回転さ...
def cur(x,y,z): //カーブを描くためのプログラムxとy左右そ...
mr.reset()
ml.reset()
mr.run_forever(duty_cycle_sp=x)
ml.run_forever(duty_cycle_sp=y)
time.sleep(z)
mr.stop(stop_command='brake')
ml.stop(stop_command='brake')
time.sleep(0.5)
def turn(x): 左旋回するための関数。xの値を書きかえれば何...
mr.reset()
ml.reset()
mr.run_to_rel_pos(position_sp=x, duty_cycle_sp=30) ...
ml.run_to_rel_pos(position_sp=-x, duty_cycle_sp=30)
time.sleep(3)
mr.stop(stop_command='brake')
ml.stop(stop_command='brake')
time.sleep(0.5)
***本文&size(10){(プログラム内のABCDEFGは書き順の項と一...
#NINBEN //読んで字のごとく、人偏を書くプログラム群である。
wri(90,3) //ペンをおろし
cur(30,40,0.3) //曲線を描き
wri(-90,3) //ペンを上げ
cur(-20,-40,0.15) //縦棒を書き始める位置へ移動し
turn(10) //角度を修正し
st(30,0.1) //位置を修正し
wri(90,3) //ペンをおろし
st(50,H) //縦棒を書き(本来ここはFだったが調整中にHで問...
wri(-90,3) //ペンを上げ
ev3.Sound.speak('CHECK POINT! A')#A //周りにA地点に到達...
turn(T) //次への準備をして
#NINBEN OWARI //終わり
ここから口から上の点まで書きあがっていく。
#KUTI
st(50,Q)
ev3.Sound.speak('CHECK POINT! B')#B
wri(90,3)
st(50,H)
turn(T)
st(50,Q)
ev3.Sound.speak('CHECK POINT! C')#C
turn(T)
st(50,H)
turn(T)
st(50,Q)
wri(-90,3)
ev3.Sound.speak('CHECK POINT! D')#D
#kuti owari
同様に口を書き終わった。ここの特色は一筆書きする口を書き...
#OTHER//これまでと同じようなことをして書いていく
st(-50,Q+HQ)
ev3.Sound.speak('CHECK POINT! E')#E
turn(T)
wri(90,3)
st(50,H)
wri(-90,3)
turn(T)
st(50,HQ)
ev3.Sound.speak('CHECK POINT! F')#F
turn(T)
wri(90,3)
st(50,H)
wri(-90,3)
turn(T)
st(-50,HQ)
ev3.Sound.speak('CHECK POINT! G')#G
turn(T)
st(-50,HQ)
wri(90,3)
st(50,HQ*2+H)
wri(-90,3)
ev3.Sound.speak('CHECK POINT! H')#H
st(-50,0.15)
turn(T)
st(50,HQ)
wri(90,3)
st(50,HQ)
wri(-90,3)
#OWARI//最後の一筆は...何でもないです
*結果 [#u25f61e8]
#ref(2016b/Member/being/Mission1/本番.jpg,100%,結果)
電圧の関係で完璧とはいかなかったもののきれいにかけたと思う
*雑記 [#oeb261b4]
今回の課題の機体は自分が作成したものである。
自分がプログラムした信以外に、この機体を使ってbickyさんが...
自分が使いやすいようにした仕様のようなものは、ほかの人は...
終了行:
#contents
* 初めに [#t02fdb26]
Ev3をnxcで動かそうとして時間を使いつづけた結果、作業...
結果、うまくいかない(クロスコンパイラのエラーが解消...
*課題について [#h56bfbb9]
課題1は “A4の紙に今年の大学生活を表す漢字一文字を書く...
多少迷走はしたが、自分は信を描くことになった。
*機体について [#w2023af9]
**機体全般について [#sf5c4651]
#ref(2016b/Member/being/Mission1/機体.jpg,100%,概観)
この機体で重視したのはまず、筆を上げずに超信地旋回したと...
そのためにまず、駆動輪を機体の真ん中に置き、できるだけ重...
また、一番の重量物であるEV3本体の真下には車輪などを設置せ...
しかし機体の端に重量物を設置したことで機体が接地物のないE...
解決策として反対側にEV3 IRビーコン&size(10){(EV3 IRセン...
また、ペンには筆ペンを使用した。ペン先がしなることである...
**筆の昇降機構について [#me1a8fe9]
#ref(2016b/Member/being/Mission1/筆先.jpg,100%,固定機構)
この機構に求められていたのは100回昇降を行ったら100回とも...
写真は最大まで上げた状態である。部品に隠れてしまっていて...
***ぶれの抑制機構 [#z00192c5]
この機構は、筆のぶれについて、機体の左右方向(写真の前後...
下の、棒についた二つの筆を挟むパーツの位置を微調整するこ...
***筆の上下運動機構 [#c09af240]
上記の筆のぶれの抑制機構を最大限活用するためには筆自体が...
***筆圧を出すために [#o5adcdad]
EV3のキットでは3つのモーターのうち二つがNXTのようなモータ...
授業中に解説されていたことだが、ウォームギヤは非常に強い...
**分解等について [#me423776]
#ref(2016b/Member/being/Mission1/分解図.jpg,100%,分解時)
機体が走行中に、歪んでしまうとまっすぐ走らなくなってしま...
*書き順について [#d6fa30d0]
下に添付した画像参照(左上から書き始める)~
&ref(2016b/Member/being/Mission1/書き順.jpg,100%,書き順);~
&size(10){(オレンジ色の縁取りの矢印がその動きの時の機体...
経路の途中にそれぞれアルファベットを振っており、プログラ...
*プログラム(syu-S_V2.py)について [#k4eec2e1]
**初めに [#nce2b298]
&size(10){(最初のプログラムは二人で作成したが、課題を勘...
A4一面に描くものと勘違いしていたため、そのようにプログラ...
というよりも、プログラム名からわかることだが最初 州 を書...
当日にA4サイズではなく15?四方だと知りそれに合わせて調整し...
しかし、後述の工夫があったためほとんど苦労せずにA4サイズ...
**プログラムについて [#xe6f911e]
***こまごました前提 [#l6369351]
極力時間制御を使い、角度制御をするのは機体を旋回させると...
調整をしやすくするために関数の引数をできるだけ減らし、ま...
さらに、プログラムを単純化するために直進する時間を4つ(初...
たまに右旋回と左旋回で一定角度旋回するのに必要な角度が異...
また、機体の停止時に倒れはしなくても揺れることがあるので...
----
***プログラムの解説 [#j1fa1cce]
***定数群&size(10){(これからずっと使う数字はここで定義し...
最初(syu-S.py)ではこの部分な次に様に定義されていた
F = 1 //FULLの略 一番長い人偏の直線部分を書くために定義...
H = 0.5 //HALFの略 言の短い様の横棒4本をかくために定義さ...
Q = 0.25 //QUARTERの略 口の縦棒を書くために定義された
HQ = 0.125 //HALF&QUARTERの略 言の長い横棒のために定義...
T = 185 //90°旋回時の角度の値 電圧によって微妙に変化す...
これをsyu-S_V2.pyではこう定義している
F = 0.4
H = 0.5/2
Q = 0.25/2
HQ = 0.125/2
T = 175
F以外の時間は単純に半分にしているだけである。これは半分に...
試走のデータはだいたいとってあるが、きれいに分かれていた...
左は90°回転するときのモーターの回転角度(T)が180,右は90°...
このような結果が出たためT=175に決定した。
***関数群 [#z1a327fb]
mw = ev3.MediumMotor('outA') //motor writeの略
mr = ev3.LargeMotor('outB') //motor rightの略
ml = ev3.LargeMotor('outC') //motor leftの略
def st(x,y): //srtraightの略。これはただ直進するための関...
mr.reset()
ml.reset()
mr.run_forever(duty_cycle_sp=x)
ml.run_forever(duty_cycle_sp=x)
time.sleep(y)
mr.stop(stop_command='brake')
ml.stop(stop_command='brake')
time.sleep(0.5)
def wri(x,y): //writeの略。筆を上下するための関数であり...
mw.reset()
mw.run_forever(duty_cycle_sp=x)
time.sleep(y)
mw.stop()
time.sleep(0.5)
補足 : 角度制御をここで行ったとする。○○度モーターを回転さ...
def cur(x,y,z): //カーブを描くためのプログラムxとy左右そ...
mr.reset()
ml.reset()
mr.run_forever(duty_cycle_sp=x)
ml.run_forever(duty_cycle_sp=y)
time.sleep(z)
mr.stop(stop_command='brake')
ml.stop(stop_command='brake')
time.sleep(0.5)
def turn(x): 左旋回するための関数。xの値を書きかえれば何...
mr.reset()
ml.reset()
mr.run_to_rel_pos(position_sp=x, duty_cycle_sp=30) ...
ml.run_to_rel_pos(position_sp=-x, duty_cycle_sp=30)
time.sleep(3)
mr.stop(stop_command='brake')
ml.stop(stop_command='brake')
time.sleep(0.5)
***本文&size(10){(プログラム内のABCDEFGは書き順の項と一...
#NINBEN //読んで字のごとく、人偏を書くプログラム群である。
wri(90,3) //ペンをおろし
cur(30,40,0.3) //曲線を描き
wri(-90,3) //ペンを上げ
cur(-20,-40,0.15) //縦棒を書き始める位置へ移動し
turn(10) //角度を修正し
st(30,0.1) //位置を修正し
wri(90,3) //ペンをおろし
st(50,H) //縦棒を書き(本来ここはFだったが調整中にHで問...
wri(-90,3) //ペンを上げ
ev3.Sound.speak('CHECK POINT! A')#A //周りにA地点に到達...
turn(T) //次への準備をして
#NINBEN OWARI //終わり
ここから口から上の点まで書きあがっていく。
#KUTI
st(50,Q)
ev3.Sound.speak('CHECK POINT! B')#B
wri(90,3)
st(50,H)
turn(T)
st(50,Q)
ev3.Sound.speak('CHECK POINT! C')#C
turn(T)
st(50,H)
turn(T)
st(50,Q)
wri(-90,3)
ev3.Sound.speak('CHECK POINT! D')#D
#kuti owari
同様に口を書き終わった。ここの特色は一筆書きする口を書き...
#OTHER//これまでと同じようなことをして書いていく
st(-50,Q+HQ)
ev3.Sound.speak('CHECK POINT! E')#E
turn(T)
wri(90,3)
st(50,H)
wri(-90,3)
turn(T)
st(50,HQ)
ev3.Sound.speak('CHECK POINT! F')#F
turn(T)
wri(90,3)
st(50,H)
wri(-90,3)
turn(T)
st(-50,HQ)
ev3.Sound.speak('CHECK POINT! G')#G
turn(T)
st(-50,HQ)
wri(90,3)
st(50,HQ*2+H)
wri(-90,3)
ev3.Sound.speak('CHECK POINT! H')#H
st(-50,0.15)
turn(T)
st(50,HQ)
wri(90,3)
st(50,HQ)
wri(-90,3)
#OWARI//最後の一筆は...何でもないです
*結果 [#u25f61e8]
#ref(2016b/Member/being/Mission1/本番.jpg,100%,結果)
電圧の関係で完璧とはいかなかったもののきれいにかけたと思う
*雑記 [#oeb261b4]
今回の課題の機体は自分が作成したものである。
自分がプログラムした信以外に、この機体を使ってbickyさんが...
自分が使いやすいようにした仕様のようなものは、ほかの人は...
ページ名: