2018a/Member/gear/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2018a/Member]]
#contents
*課題1の説明[#j4fe118d]
**内容 [#sa10fea0]
これまで住んだことのある都道府県名、市町村名、地区名など...
**方針 [#i3d32ce4]
-前述の条件および扱いやすさから「千曲」という文字を書くこ...
-装置についてはプログラミングのしやすさを考え,独立した横...
-動力についてはモーターを用いたものにして,タイヤで移動す...
-プログラミングについては2種類動作パターン(縦方向と横方向...
*扱うロボット AwithB の説明 [#s52bba27]
**ロボットの全体像 [#i969c979]
&ref(2018a/Member/gear/Mission1/robot_full.JPG,80%,ロボッ...
&ref(2018a/Member/gear/Mission1/robot_deviceA.jpg,50%,装...
&ref(2018a/Member/gear/Mission1/robot_deviceB.jpg,50%,装...
&ref(2018a/Member/gear/Mission1/robot_rail.jpg,50%,レール...
&size(20){1:ロボット(完成形)⇒分解すると...⇒ 2:装置A ...
~
製作したロボットのメカニズムはいたってシンプルである.紙...
**装置Aの説明 [#j5279fe1]
装置Aは装置B,レール,EV3本体の三つの重量がある物体を運ぶ...
~
&ref(2018a/Member/gear/Mission1/robot_deviceA.jpg,45%,装...
&ref(2018a/Member/gear/Mission1/robot_problem1.png,45%,装...
&ref(2018a/Member/gear/Mission1/robot_deviceA_detail.jpg,...
~
~
EV3本体を乗せる部分には,レールと装置A間の歪みを抑えるた...
**装置Bの説明 [#ue72c49c]
&ref(2018a/Member/gear/Mission1/robot_deviceB.jpg,45%,装...
&ref(2018a/Member/gear/Mission1/robot_deviceB_detail3.jpg...
~
装置Bはモーター部分を支えながらペン昇降機を運ぶ.この時,...
~
&ref(2018a/Member/gear/Mission1/robot_deviceB_detail1.JPG...
&ref(2018a/Member/gear/Mission1/robot_deviceB_detail2.jpg...
~
前者の問題は左の写真のように部品を取り付け揺れを抑え,後...
**ペン昇降機の説明[#rcd45529]
-&size(18){ペン昇降のメカニズム};~
&ref(2018a/Member/gear/Mission1/robot_dvc-pen.JPG,57%,ペ...
&ref(2018a/Member/gear/Mission1/robot_pen1.JPG,48%,ペン昇...
&ref(2018a/Member/gear/Mission1/robot_pen2.JPG,48%,ペン昇...
&ref(2018a/Member/gear/Mission1/robot_pen3.JPG,48%,ペン昇...
~
ペンの上げ下げに関しては鉛直方向の動きを扱うことにした....
上の写真より鉛直方向の運動が確認できる.
-&size(18){ペンの取り付けと固定};~
&ref(2018a/Member/gear/Mission1/robot_dvc-pen_detail.JPG,...
&ref(2018a/Member/gear/Mission1/robot_dvc-pen_detail2.jpg...
~
ペンの固定にあたって,二種類のパーツで囲うように固定する...
&ref(2018a/Member/gear/Mission1/pen_action.png,55%,ペンの...
*文字を書くにあたって [#h73ac276]
**書き順と装置の移動 [#j07a163a]
&ref(2018a/Member/gear/Mission1/write_order-chikuma.JPG,6...
~
今回は御覧の通り正式な筆順で書かない.ロボットの移動の効...
**注意点 [#o1eddf0f]
書く上で注意した点は以下の二つの項目である.
-プログラミング時に定義する数を減らすため,出来るだけ長さ...
⇒今回は縦方向が三パターン,横方向が六パターンで実行した.
-文字は大きすぎないようにして,装置Aの移動範囲を小さくす...
⇒文字が大きくなると,装置Bがレールの端に停止する場面が生...
*実行プログラムの説明 [#h7e28663]
**プログラムの導入 [#l8c52752]
今回はEV3を扱っているため,プログラミングにTera Termとい...
以下は定義までの導入である.~
#!/usr/bin/env python3
from ev3dev.ev3 import * # EV3を扱うモジュールをイン...
from time import sleep # timeモジュールからsleep関...
mA = LargeMotor('outA') # 装置AのモーターをmAとおく
mB = LargeMotor('outB') # 装置BのモーターをmBとおく
mC = MediumMotor('outC') # ペン昇降機のモーターをmC...
この設定だとtimeモジュールからはsleep関数以外は適用されな...
**定義の挿入 [#ef9a59e4]
正確に装置を動かしたいので,モーターの回転角度を指定する...
-描画と移動は以下の通りに定義した.
--装置Aの場合
def move_back1(): # ?,?,? (一画目から二画目,四...
mA.run_to_rel_pos(position_sp=-29,speed_sp=50,stop_a...
sleep(2)
def move_for2(): # ?,? (二画目から三画目ま...
mA.run_to_rel_pos(position_sp=65,speed_sp=50,stop_ac...
sleep(2)
def move_back2(): #? (八画目の描画)
mA.run_to_rel_pos(position_sp=-65,speed_sp=50,stop_a...
sleep(2)
def move_for3(): #? (九画目の描画)
mA.run_to_rel_pos(position_sp=98,speed_sp=50,stop_ac...
sleep(2)
def move_back3(): #21 (十画目の描画),
mA.run_to_rel_pos(position_sp=-98,speed_sp=50,stop_a...
sleep(2)
def move_back4(): #? (三画目の描画)
mA.run_to_rel_pos(position_sp=-115,speed_sp=50,stop...
sleep(2)
--装置Bの場合
def slide_for2(): #?,? (九画目から十画目,...
mB.run_to_rel_pos(position_sp=57,speed_sp=80,stop_ac...
sleep(2)
def slide_back2(): #? (一画目から二画目ま...
mB.run_to_rel_pos(position_sp=-57,speed_sp=80,stop_a...
sleep(2)
def slide_back3(): #? (三画目から四画目ま...
mB.run_to_rel_pos(position_sp=-81,speed_sp=80,stop_a...
sleep(2)
def slide_back4(): #? (二画目から三画目ま...
mB.run_to_rel_pos(position_sp=-100,speed_sp=80,stop_...
sleep(2)
def slide_for5(): #?,? (四画目,六画目の描...
mB.run_to_rel_pos(position_sp=172,speed_sp=80,stop_a...
sleep(2)
def slide_back5(): #? (五画目の描画)
mB.run_to_rel_pos(position_sp=-172,speed_sp=80,stop_...
sleep(2)
def slide_for6(): #? (二画目の描画)
mB.run_to_rel_pos(position_sp=220,speed_sp=80,stop_a...
sleep(2)
--一画目の斜めの動き
def move_cross(): #? (一画目の描画)
mA.run_to_rel_pos(position_sp=-46,speed_sp=30,stop_a...
mB.run_to_rel_pos(position_sp=-126,speed_sp=80,stop_...
sleep(2)
御覧の通り全ての動きが一括して定義されて番号で区別されて...
変数を用いて四画目から六画目までの繰り返しの移動を簡略化...
ちなみに定義するとしたら以下の通り.
def slide_for5(k): # position_spをkとおく
mB.run_to_rel_pos(position_sp=k,speed_sp=80,stop_act...
sleep(2)
def slide5-6():
move_pos = 172 # move_posという変数を定義し1...
slide_for5(move_pos) # (k)にはmove_pos = 172という...
move_back3()
move_pos *= -1 # move_posに新たに-1をかけた...
slide_for5(move_pos) # 五画目の描画
move_back3()
move_pos *= -1
slide_for5() # 六画目の描画
-ペンの昇降は以下の通りに定義した.
def pen_down(): # ペンの上昇
mC.run_to_rel_pos(position_sp=180,speed_sp=80,stop_a...
sleep(2)
def pen_up(): # ペンの降下
mC.run_to_rel_pos(position_sp=-180,speed_sp=80,stop_...
sleep(2)
**実際の作動プログラム [#d10a48ce]
前述の定義を踏まえ以下のようにプログラムし実行した.
mA.reset()
mB.reset()
mC.reset()
pen_down()
move_cross() #一画目 「千」描画開始
pen_up()
move_back1()
slide_back2()
pen_down()
slide_for6() #二画目
pen_up()
move_for2()
slide_back4()
pen_down()
move_back4() #三画目 「千」描画終了
pen_up()
slide_back3()
move_back2()
pen_down()
slide_for5() #四画目 「曲」描画開始
pen_up()
move_back1()
pen_down()
slide_back5() #五画目
pen_up()
move_back1()
pen_down()
slide_for5() #六画目
move_for2() #七画目
pen_up()
slide_back5()
pen_down()
move_back2() #八画目
pen_up()
slide_for2()
pen_down()
move_for3() #九画目
pen_up()
slide_for2()
pen_down()
move_back3() #十画目 「曲」描画終了
pen_up()
*実行した結果と考察(発表会にて) [#sc7fe799]
**発表会で書いた実物 [#idbe3702]
&ref(2018a/Member/gear/Mission1/letter-chikuma.jpg,50%,「...
&ref(2018a/Member/gear/Mission1/trial-chikuma.JPG,68%,「...
両方の写真から比較的形は安定していることがわかるが,本番...
また,他の人の発表と自分のを比較して,動きが結構遅いと感...
~
&ref(2018a/Member/gear/Mission1/「千曲」take2.JPG,50%,「...
~
やはり,ペンと紙面が接している以上動作は慎重に行わなけれ...
**生じた問題点とその考察 [#n34dc2c2]
実際に動かしてみて生じた問題点は「動きがずれる時がある」...
筆を降下させた時に,レールから筆先までの距離が紙面までの...
残念ながらこれを形にはしないが悪しからず.
*感想 [#pbcf37e7]
今回初めてロボットの設計とプログラミング行い,困難や思い...
訪問者合計&counter(all);
*おまけ [#v52c0894]
以下はあえなく挫折した当初の目標であった「長野」の産物で...
~
&ref(2018a/Member/gear/Mission1/letter_nagano.JPG,50%,「...
~
思いがけずもいい出来だった.中間テストの存在が私に「野」...
終了行:
[[2018a/Member]]
#contents
*課題1の説明[#j4fe118d]
**内容 [#sa10fea0]
これまで住んだことのある都道府県名、市町村名、地区名など...
**方針 [#i3d32ce4]
-前述の条件および扱いやすさから「千曲」という文字を書くこ...
-装置についてはプログラミングのしやすさを考え,独立した横...
-動力についてはモーターを用いたものにして,タイヤで移動す...
-プログラミングについては2種類動作パターン(縦方向と横方向...
*扱うロボット AwithB の説明 [#s52bba27]
**ロボットの全体像 [#i969c979]
&ref(2018a/Member/gear/Mission1/robot_full.JPG,80%,ロボッ...
&ref(2018a/Member/gear/Mission1/robot_deviceA.jpg,50%,装...
&ref(2018a/Member/gear/Mission1/robot_deviceB.jpg,50%,装...
&ref(2018a/Member/gear/Mission1/robot_rail.jpg,50%,レール...
&size(20){1:ロボット(完成形)⇒分解すると...⇒ 2:装置A ...
~
製作したロボットのメカニズムはいたってシンプルである.紙...
**装置Aの説明 [#j5279fe1]
装置Aは装置B,レール,EV3本体の三つの重量がある物体を運ぶ...
~
&ref(2018a/Member/gear/Mission1/robot_deviceA.jpg,45%,装...
&ref(2018a/Member/gear/Mission1/robot_problem1.png,45%,装...
&ref(2018a/Member/gear/Mission1/robot_deviceA_detail.jpg,...
~
~
EV3本体を乗せる部分には,レールと装置A間の歪みを抑えるた...
**装置Bの説明 [#ue72c49c]
&ref(2018a/Member/gear/Mission1/robot_deviceB.jpg,45%,装...
&ref(2018a/Member/gear/Mission1/robot_deviceB_detail3.jpg...
~
装置Bはモーター部分を支えながらペン昇降機を運ぶ.この時,...
~
&ref(2018a/Member/gear/Mission1/robot_deviceB_detail1.JPG...
&ref(2018a/Member/gear/Mission1/robot_deviceB_detail2.jpg...
~
前者の問題は左の写真のように部品を取り付け揺れを抑え,後...
**ペン昇降機の説明[#rcd45529]
-&size(18){ペン昇降のメカニズム};~
&ref(2018a/Member/gear/Mission1/robot_dvc-pen.JPG,57%,ペ...
&ref(2018a/Member/gear/Mission1/robot_pen1.JPG,48%,ペン昇...
&ref(2018a/Member/gear/Mission1/robot_pen2.JPG,48%,ペン昇...
&ref(2018a/Member/gear/Mission1/robot_pen3.JPG,48%,ペン昇...
~
ペンの上げ下げに関しては鉛直方向の動きを扱うことにした....
上の写真より鉛直方向の運動が確認できる.
-&size(18){ペンの取り付けと固定};~
&ref(2018a/Member/gear/Mission1/robot_dvc-pen_detail.JPG,...
&ref(2018a/Member/gear/Mission1/robot_dvc-pen_detail2.jpg...
~
ペンの固定にあたって,二種類のパーツで囲うように固定する...
&ref(2018a/Member/gear/Mission1/pen_action.png,55%,ペンの...
*文字を書くにあたって [#h73ac276]
**書き順と装置の移動 [#j07a163a]
&ref(2018a/Member/gear/Mission1/write_order-chikuma.JPG,6...
~
今回は御覧の通り正式な筆順で書かない.ロボットの移動の効...
**注意点 [#o1eddf0f]
書く上で注意した点は以下の二つの項目である.
-プログラミング時に定義する数を減らすため,出来るだけ長さ...
⇒今回は縦方向が三パターン,横方向が六パターンで実行した.
-文字は大きすぎないようにして,装置Aの移動範囲を小さくす...
⇒文字が大きくなると,装置Bがレールの端に停止する場面が生...
*実行プログラムの説明 [#h7e28663]
**プログラムの導入 [#l8c52752]
今回はEV3を扱っているため,プログラミングにTera Termとい...
以下は定義までの導入である.~
#!/usr/bin/env python3
from ev3dev.ev3 import * # EV3を扱うモジュールをイン...
from time import sleep # timeモジュールからsleep関...
mA = LargeMotor('outA') # 装置AのモーターをmAとおく
mB = LargeMotor('outB') # 装置BのモーターをmBとおく
mC = MediumMotor('outC') # ペン昇降機のモーターをmC...
この設定だとtimeモジュールからはsleep関数以外は適用されな...
**定義の挿入 [#ef9a59e4]
正確に装置を動かしたいので,モーターの回転角度を指定する...
-描画と移動は以下の通りに定義した.
--装置Aの場合
def move_back1(): # ?,?,? (一画目から二画目,四...
mA.run_to_rel_pos(position_sp=-29,speed_sp=50,stop_a...
sleep(2)
def move_for2(): # ?,? (二画目から三画目ま...
mA.run_to_rel_pos(position_sp=65,speed_sp=50,stop_ac...
sleep(2)
def move_back2(): #? (八画目の描画)
mA.run_to_rel_pos(position_sp=-65,speed_sp=50,stop_a...
sleep(2)
def move_for3(): #? (九画目の描画)
mA.run_to_rel_pos(position_sp=98,speed_sp=50,stop_ac...
sleep(2)
def move_back3(): #21 (十画目の描画),
mA.run_to_rel_pos(position_sp=-98,speed_sp=50,stop_a...
sleep(2)
def move_back4(): #? (三画目の描画)
mA.run_to_rel_pos(position_sp=-115,speed_sp=50,stop...
sleep(2)
--装置Bの場合
def slide_for2(): #?,? (九画目から十画目,...
mB.run_to_rel_pos(position_sp=57,speed_sp=80,stop_ac...
sleep(2)
def slide_back2(): #? (一画目から二画目ま...
mB.run_to_rel_pos(position_sp=-57,speed_sp=80,stop_a...
sleep(2)
def slide_back3(): #? (三画目から四画目ま...
mB.run_to_rel_pos(position_sp=-81,speed_sp=80,stop_a...
sleep(2)
def slide_back4(): #? (二画目から三画目ま...
mB.run_to_rel_pos(position_sp=-100,speed_sp=80,stop_...
sleep(2)
def slide_for5(): #?,? (四画目,六画目の描...
mB.run_to_rel_pos(position_sp=172,speed_sp=80,stop_a...
sleep(2)
def slide_back5(): #? (五画目の描画)
mB.run_to_rel_pos(position_sp=-172,speed_sp=80,stop_...
sleep(2)
def slide_for6(): #? (二画目の描画)
mB.run_to_rel_pos(position_sp=220,speed_sp=80,stop_a...
sleep(2)
--一画目の斜めの動き
def move_cross(): #? (一画目の描画)
mA.run_to_rel_pos(position_sp=-46,speed_sp=30,stop_a...
mB.run_to_rel_pos(position_sp=-126,speed_sp=80,stop_...
sleep(2)
御覧の通り全ての動きが一括して定義されて番号で区別されて...
変数を用いて四画目から六画目までの繰り返しの移動を簡略化...
ちなみに定義するとしたら以下の通り.
def slide_for5(k): # position_spをkとおく
mB.run_to_rel_pos(position_sp=k,speed_sp=80,stop_act...
sleep(2)
def slide5-6():
move_pos = 172 # move_posという変数を定義し1...
slide_for5(move_pos) # (k)にはmove_pos = 172という...
move_back3()
move_pos *= -1 # move_posに新たに-1をかけた...
slide_for5(move_pos) # 五画目の描画
move_back3()
move_pos *= -1
slide_for5() # 六画目の描画
-ペンの昇降は以下の通りに定義した.
def pen_down(): # ペンの上昇
mC.run_to_rel_pos(position_sp=180,speed_sp=80,stop_a...
sleep(2)
def pen_up(): # ペンの降下
mC.run_to_rel_pos(position_sp=-180,speed_sp=80,stop_...
sleep(2)
**実際の作動プログラム [#d10a48ce]
前述の定義を踏まえ以下のようにプログラムし実行した.
mA.reset()
mB.reset()
mC.reset()
pen_down()
move_cross() #一画目 「千」描画開始
pen_up()
move_back1()
slide_back2()
pen_down()
slide_for6() #二画目
pen_up()
move_for2()
slide_back4()
pen_down()
move_back4() #三画目 「千」描画終了
pen_up()
slide_back3()
move_back2()
pen_down()
slide_for5() #四画目 「曲」描画開始
pen_up()
move_back1()
pen_down()
slide_back5() #五画目
pen_up()
move_back1()
pen_down()
slide_for5() #六画目
move_for2() #七画目
pen_up()
slide_back5()
pen_down()
move_back2() #八画目
pen_up()
slide_for2()
pen_down()
move_for3() #九画目
pen_up()
slide_for2()
pen_down()
move_back3() #十画目 「曲」描画終了
pen_up()
*実行した結果と考察(発表会にて) [#sc7fe799]
**発表会で書いた実物 [#idbe3702]
&ref(2018a/Member/gear/Mission1/letter-chikuma.jpg,50%,「...
&ref(2018a/Member/gear/Mission1/trial-chikuma.JPG,68%,「...
両方の写真から比較的形は安定していることがわかるが,本番...
また,他の人の発表と自分のを比較して,動きが結構遅いと感...
~
&ref(2018a/Member/gear/Mission1/「千曲」take2.JPG,50%,「...
~
やはり,ペンと紙面が接している以上動作は慎重に行わなけれ...
**生じた問題点とその考察 [#n34dc2c2]
実際に動かしてみて生じた問題点は「動きがずれる時がある」...
筆を降下させた時に,レールから筆先までの距離が紙面までの...
残念ながらこれを形にはしないが悪しからず.
*感想 [#pbcf37e7]
今回初めてロボットの設計とプログラミング行い,困難や思い...
訪問者合計&counter(all);
*おまけ [#v52c0894]
以下はあえなく挫折した当初の目標であった「長野」の産物で...
~
&ref(2018a/Member/gear/Mission1/letter_nagano.JPG,50%,「...
~
思いがけずもいい出来だった.中間テストの存在が私に「野」...
ページ名: