目次
#contents
*ロボット [#l703b418]
完成形はこちらである。
文字を書くロボット
最初に考えたのはコンパスのようにまわりながら書くものであった。
プリンター型のものを考えた。

ev3を乗せて車のように動かすとなるとどうしてもその重さや乗せる場所を考慮せねばならず、なかなか自由に作ることは困難であると考えたからである。さらにアームとベルトとタイヤの動きをそれぞれz,x,y軸での座標の移動とすることができるので、文字を書く際もプログラミングの時点で動かす前から完成形がある程度想定できるのでメリットが多いと考えた。

文字を書く上でベルトコンベアの高低差が大きな問題として立ちはだかった。

↑この部分だが車輪が真ん中に置かれていることでベルトコンベアがたるんでしまいペンの高さが変わってしまった。

そこでなるべくその差をなくせるように高さを可動式にした。こうすれば万が一動かすときに高さが合わなくてもすぐに修正が可能である。
そこでなるべくその差をなくせるように高さを可動式にした。こうすれば万が一動かすときに高さが合わなくてもすぐに修正が可能であると考えたからだ。

見事その作戦が功を奏し成功に至った。

*プログラミングの説明 [#o3b416bd]
**メインプログラム [#oead4d38]
 task_main()
 lift = MediumMotor('outA')
 belt = LargeMotor('outB')
 tire = LargeMotor('outC')
それぞれの出力の定義

 def motor_init():
        for m in [lift,belt,tire]:
                m.reset()
                m.speed_sp=100
                m.stop_action='hold'
 def liftup():
        lift.run_to_rel_pos(position_sp=-110)
        sleep(2)
 def liftdown():
        lift.run_to_rel_pos(position_sp=110)
        sleep(2)
 def beltmove(t):
        belt.run_to_rel_pos(position_sp=t)
 def tiremove(t):
        tire.run_to_rel_pos(position_sp=-t*0.9)
ここでタイヤ、ベルト、アームの動かしかたが定義できる。
 task_main()
    def kawa(t):
        tiremove(t*2)
        sleep(2)
        liftdown()
        tiremove(t*5)
        sleep(2)
        tiremove(t*3)
        beltmove(t*-2)
        sleep(2)
        liftup()
	tiremove(t*-7)
        sleep(3)
        beltmove(t*5)
        sleep(3)
        liftdown()
        tiremove(t*4)
        sleep(2)
        liftup()
        tiremove(t*-5)
        sleep(3)
        beltmove(t*3)
        sleep(2)
        liftdown()
	tiremove(t*8)
        sleep(3)
        liftup()
「川」の部分を書くプログラミング
 
    def higashi_zenhan(t):
        beltmove(t*-7)
        sleep(3)
        tiremove(t*2)
        sleep(3)
        liftdown()
        beltmove(t*8)
        sleep(3)
        liftup()
	tiremove(t*2)
        sleep(3)
        beltmove(-t)
        sleep(3)
        liftdown()
        tiremove(t*4)
        sleep(3)
        beltmove(t*-6)
        sleep(3)
        tiremove(t*-4)
        sleep(3)
        beltmove(t*6)
        sleep(3)
	liftup()
        tiremove(t*2)
        sleep(3)
        liftdown()
        beltmove(t*-6)
        sleep(3)
 
   def higashi_kouhan(t):
        liftup()
        tiremove(t*-5)
        sleep(3)
        beltmove(t*3)
        sleep(3)
        liftdown()
	tiremove(t*11)
        sleep(4)
        liftup()
        tiremove(t*-4)
        sleep(3)
        liftdown()
        tiremove(t*4)
        beltmove(t*4)
        sleep(2)
        liftup()
        tiremove(t*-4)
        sleep(2)
        beltmove(t*-4)
        liftdown()
        tiremove(t*4)
        beltmove(t*-4)
        sleep(3)
        liftup()

*書けた文字 [#v66428dc]
#ref(https://mail.google.com/mail/u/0?ui=2&ik=c4c80cb980&attid=0.1&permmsgid=msg-f:1616371877774114675&th=166e81a8afa83f73&view=fimg&sz=s0-l75-ft&attbid=ANGjdJ_4LNExjeHX4DbziyNmEphYKD4EgQVerDb-hnfXzRp8bdRwDwvDRAJrrkAZ7Br92fA-twBy_ptynHG56x_rBn5SxU4XJiRYZNstsn3TmV01DApSi64cA7z1I4o&disp=emb&realattid=166e81a4a5d8c4745b1)
#ref(2018b/Member/prague/Mission1/Kawahigashi.jpg,10%,川東);
*考察 [#aad30710]
文字を横方向に書くのにベルトコンベアを縦方向に書くのにタイヤをそれぞれ利用したことでプログラミングでの指定が座標できかなり手間がかからずプログラミングができた。確かに縦と横の移動には強かったが、斜めに描くところで線がひょろっとしてしまい、まっすぐに描くことができなかったので、もっとペンをつかむアームの部分を安定させることができれば複雑な字も書けたかもしれない。今回は「川東」と比較的狭くて知名度のないところを書いてしまったので、へんな空気になりかねなかった。もっとメジャーな「松本」や「長野」を書けば反応が良くなったかなと考えた。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS