2019a/Member/Kaguya/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
&size(30){目次};
#contents(level=1)
*課題 [#q469560c]
文字を書くロボ、「書道ロボット」を作り、住んだことのある...
これに対し私は、実家のある地区名&size(25){北条};をロボに...
*ロボットの仕組み [#a7bf7315]
&ref(zentai+a.jpg);
?:筆を横に動かすためのミディアムモーター~
?:筆を上げ下げするためのラージモーター~
?:筆を本体ごと前後させるためのラージモーター~
この三つのモーターを使って、字を書いていく。~
モーターの駆動には''run_to_rel_pos''というメソッドを使う...
時間でモーターを動かすメソッドもあるが、それは速度と時間...
**?機構の説明 [#z74de350]
横方向の動きを作る部分。モーターに筆を取り付けた無限軌道...
&ref(yoko.jpg);
**?機構の説明 [#m39203b1]
筆を上げ下げする部分。モーターに十字棒を取り付けることに...
&ref(age.JPG);
**?機構の説明 [#x4a483fd]
縦方向の動きを作る部分。モーターをタイヤ二つに接続し、筆...
&ref(tate.JPG);
**文字書き理論 [#hde2b947]
各モーターの回転角度と長さの関係を調べ、縦180→13?・横360→...
(180や360は"run_to_rel_pos"メソッドの"position_sp"に入れ...
&ref(masu.jpg);
縦180と横360がほぼ同じ長さだったのでこれらで正方形のマス...
&ref(hou.jpg);
&ref(zyou.jpg);
こんな感じで文字を書いていく。プログラミング編へ。
*プログラミング [#yb4f898d]
**定義 [#a7036b8b]
字を書くコードの前にまずは準備。~
そのままだと呼びにくいのでモーターに名前を付けていく。
yoko = MediumMotor('outB')
tate = LargeMotor('outA')
mae = LargeMotor('outD')
英語で名前をつけた方がカッコイイが、打ちやすさを優先しロ...
次に、プログラミングを"def"を使って分かりやすく、かつ、簡...
def orosu():
tate.run_to_rel_pos(position_sp=-90, speed_sp=200...
def ageru():
tate.run_to_rel_pos(position_sp=90, speed_sp=200,...
def migi(a):
yoko.run_to_rel_pos(position_sp=-a, speed_sp=200,...
def hidari(b):
yoko.run_to_rel_pos(position_sp=b, speed_sp=200, ...
def susumu(c):
mae.run_to_rel_pos(position_sp=-c, speed_sp=200, ...
def sagaru(d):
mae.run_to_rel_pos(position_sp=d, speed_sp=200, s...
position_spの値には"a"やら"b"を入れておき、後から代入でき...
これにて準備完了。
**北 [#nce9ea12]
まずは「北」という文字を書いていく。書き順は次の通り。
&ref(hou kaki.jpg);
?のプログラム
def hou(t):
orosu()
sleep(t)
migi(120)
sleep(t)
ageru()
sleep(t)
migi(120)
sleep(t)
orosu()
sleep(t)
migi(120)
sleep(t)
ageru()
sleep(t)
試験運転や微調整のことを考え、一文字ごとにdefっておく。変...
漢字の書き順はロボットには関係ないので、できるだけ少ない...
?のプログラム
hidari(240)
susumu(60)
sleep(t)
orosu()
sleep(t)
sagaru(150)
sleep(t)
hidari(120)
sleep(t)
ageru()
sleep(t)
見ての通り、下がって左。?からの初期位置への移動を忘れずに。
?のプログラム
susumu(150)
migi(240)
sleep(t)
orosu()
sleep(t)
sagaru(150)
sleep(t)
migi(120)
sleep(t)
susumu(30)
sleep(t)
ageru()
ここでは少し問題があったが、それは後で説明する。~
この問題を問題Aとする。
**条 [#q920f23d]
次に「条」を書いていく。書き順は次の通り。
&ref(zyou kaki.jpg);
?のプログラム
def zyou(t):
orosu()
sleep(t)
sagaru(30)
hidari(60)
sleep(t)
ageru()
sleep(t)
「北」同様、こちらもdefって書いていく。
?のプログラム
susumu(30)
migi(60)
sleep(t)
orosu()
sleep(t)
migi(120)
sleep(t)
sagaru(90)
hidari(240)
sleep(t)
ageru()
sleep(t)
?のプログラム
susumu(90)
migi(120)
sleep(t)
orosu()
sleep(t)
sagaru(90)
migi(240)
sleep(t)
ageru()
sleep(t)
?のプログラム
susumu(30)
hidari(240)
sleep(t)
orosu()
sleep(t)
migi(120)
sleep(t)
ageru()
sleep(t)
?のプログラム
hidari(60)
susumu(30)
sleep(t)
orosu()
sleep(t)
sagaru(90)
sleep(t)
ageru()
sleep(t)
?,?のプログラム
susumu(90)
sleep(t)
orosu()
sleep(t)
hidari(100)
sagaru(60)
sleep(t)
ageru()
sleep(t)
migi(100)
susumu(60)
sleep(t)
orosu()
sleep(t)
migi(100)
sagaru(60)
sleep(t)
ageru()
?,?はVの逆みたいな書き順でまとめてやりたがったが、問題Aに...
hou(3)
sleep(3)
sagaru(100)
hidari(240)
sleep(3)
最後に「北」と「条」を合体し、初期位置の調整をして完成。...
完成した文字がこれ↓
&ref(kansei.JPG);
若干アンバランスに見えるが読めるので良しとする。
*問題及びその反省 [#i649360f]
**問題A [#w29be712]
保留してきた問題Aとは、下から上に書くと無限軌道がたわんじ...
筆が固定してある無限軌道は両端しか固定されていなく、中が...
より、下から上へは諦めた。
**反省A [#b1d55768]
筆を付ける部分はしっかりと固定しよう!
**問題B [#w0c4b98e]
試験運転の時、ひそかに起こっていた問題が、モーターが計算...
起こっていた現象は次の通り。
+モーターを120°回転させる。
+手動で初期位置に戻す。
+もう一度、120°回転させるよう入力する。
+と、240°程回転する。
おかしい。
**反省B [#l8f22ff5]
原因は"run_to_rel_pos"にあった。おそらくだが、このメソッ...
修正する方法は3つある。
-"run_to_rel_pos"の前にモーターをリセットする
-"run_to_abs_pos"を使う
-手動で戻した後にロボットとつなぎなおす
以上おわり
今までの訪問者数:&counter(all);人
終了行:
&size(30){目次};
#contents(level=1)
*課題 [#q469560c]
文字を書くロボ、「書道ロボット」を作り、住んだことのある...
これに対し私は、実家のある地区名&size(25){北条};をロボに...
*ロボットの仕組み [#a7bf7315]
&ref(zentai+a.jpg);
?:筆を横に動かすためのミディアムモーター~
?:筆を上げ下げするためのラージモーター~
?:筆を本体ごと前後させるためのラージモーター~
この三つのモーターを使って、字を書いていく。~
モーターの駆動には''run_to_rel_pos''というメソッドを使う...
時間でモーターを動かすメソッドもあるが、それは速度と時間...
**?機構の説明 [#z74de350]
横方向の動きを作る部分。モーターに筆を取り付けた無限軌道...
&ref(yoko.jpg);
**?機構の説明 [#m39203b1]
筆を上げ下げする部分。モーターに十字棒を取り付けることに...
&ref(age.JPG);
**?機構の説明 [#x4a483fd]
縦方向の動きを作る部分。モーターをタイヤ二つに接続し、筆...
&ref(tate.JPG);
**文字書き理論 [#hde2b947]
各モーターの回転角度と長さの関係を調べ、縦180→13?・横360→...
(180や360は"run_to_rel_pos"メソッドの"position_sp"に入れ...
&ref(masu.jpg);
縦180と横360がほぼ同じ長さだったのでこれらで正方形のマス...
&ref(hou.jpg);
&ref(zyou.jpg);
こんな感じで文字を書いていく。プログラミング編へ。
*プログラミング [#yb4f898d]
**定義 [#a7036b8b]
字を書くコードの前にまずは準備。~
そのままだと呼びにくいのでモーターに名前を付けていく。
yoko = MediumMotor('outB')
tate = LargeMotor('outA')
mae = LargeMotor('outD')
英語で名前をつけた方がカッコイイが、打ちやすさを優先しロ...
次に、プログラミングを"def"を使って分かりやすく、かつ、簡...
def orosu():
tate.run_to_rel_pos(position_sp=-90, speed_sp=200...
def ageru():
tate.run_to_rel_pos(position_sp=90, speed_sp=200,...
def migi(a):
yoko.run_to_rel_pos(position_sp=-a, speed_sp=200,...
def hidari(b):
yoko.run_to_rel_pos(position_sp=b, speed_sp=200, ...
def susumu(c):
mae.run_to_rel_pos(position_sp=-c, speed_sp=200, ...
def sagaru(d):
mae.run_to_rel_pos(position_sp=d, speed_sp=200, s...
position_spの値には"a"やら"b"を入れておき、後から代入でき...
これにて準備完了。
**北 [#nce9ea12]
まずは「北」という文字を書いていく。書き順は次の通り。
&ref(hou kaki.jpg);
?のプログラム
def hou(t):
orosu()
sleep(t)
migi(120)
sleep(t)
ageru()
sleep(t)
migi(120)
sleep(t)
orosu()
sleep(t)
migi(120)
sleep(t)
ageru()
sleep(t)
試験運転や微調整のことを考え、一文字ごとにdefっておく。変...
漢字の書き順はロボットには関係ないので、できるだけ少ない...
?のプログラム
hidari(240)
susumu(60)
sleep(t)
orosu()
sleep(t)
sagaru(150)
sleep(t)
hidari(120)
sleep(t)
ageru()
sleep(t)
見ての通り、下がって左。?からの初期位置への移動を忘れずに。
?のプログラム
susumu(150)
migi(240)
sleep(t)
orosu()
sleep(t)
sagaru(150)
sleep(t)
migi(120)
sleep(t)
susumu(30)
sleep(t)
ageru()
ここでは少し問題があったが、それは後で説明する。~
この問題を問題Aとする。
**条 [#q920f23d]
次に「条」を書いていく。書き順は次の通り。
&ref(zyou kaki.jpg);
?のプログラム
def zyou(t):
orosu()
sleep(t)
sagaru(30)
hidari(60)
sleep(t)
ageru()
sleep(t)
「北」同様、こちらもdefって書いていく。
?のプログラム
susumu(30)
migi(60)
sleep(t)
orosu()
sleep(t)
migi(120)
sleep(t)
sagaru(90)
hidari(240)
sleep(t)
ageru()
sleep(t)
?のプログラム
susumu(90)
migi(120)
sleep(t)
orosu()
sleep(t)
sagaru(90)
migi(240)
sleep(t)
ageru()
sleep(t)
?のプログラム
susumu(30)
hidari(240)
sleep(t)
orosu()
sleep(t)
migi(120)
sleep(t)
ageru()
sleep(t)
?のプログラム
hidari(60)
susumu(30)
sleep(t)
orosu()
sleep(t)
sagaru(90)
sleep(t)
ageru()
sleep(t)
?,?のプログラム
susumu(90)
sleep(t)
orosu()
sleep(t)
hidari(100)
sagaru(60)
sleep(t)
ageru()
sleep(t)
migi(100)
susumu(60)
sleep(t)
orosu()
sleep(t)
migi(100)
sagaru(60)
sleep(t)
ageru()
?,?はVの逆みたいな書き順でまとめてやりたがったが、問題Aに...
hou(3)
sleep(3)
sagaru(100)
hidari(240)
sleep(3)
最後に「北」と「条」を合体し、初期位置の調整をして完成。...
完成した文字がこれ↓
&ref(kansei.JPG);
若干アンバランスに見えるが読めるので良しとする。
*問題及びその反省 [#i649360f]
**問題A [#w29be712]
保留してきた問題Aとは、下から上に書くと無限軌道がたわんじ...
筆が固定してある無限軌道は両端しか固定されていなく、中が...
より、下から上へは諦めた。
**反省A [#b1d55768]
筆を付ける部分はしっかりと固定しよう!
**問題B [#w0c4b98e]
試験運転の時、ひそかに起こっていた問題が、モーターが計算...
起こっていた現象は次の通り。
+モーターを120°回転させる。
+手動で初期位置に戻す。
+もう一度、120°回転させるよう入力する。
+と、240°程回転する。
おかしい。
**反省B [#l8f22ff5]
原因は"run_to_rel_pos"にあった。おそらくだが、このメソッ...
修正する方法は3つある。
-"run_to_rel_pos"の前にモーターをリセットする
-"run_to_abs_pos"を使う
-手動で戻した後にロボットとつなぎなおす
以上おわり
今までの訪問者数:&counter(all);人
ページ名: