- 追加された行はこの色です。
- 削除された行はこの色です。
[[2016a/Member]]
*ロボット本体 [#d41d76e8]
ロボットの全体像~
~
EV3ガイドに乗っている基本ロボットにペンを上げ下げする機構を追加してある。~
~
ペン先はプログラムを作りやすいようにロボットの中心になるようにした。~
~
また、EV3は小型のモーターがあるので、ペンを上げ下げする構造にしても比較的小さく作れるメリットがあったので、~
~
比較的簡単にモーターに直接アームをつけて、そこにペンをテープで止めるだけの構造にした。~
*ロボット本体 [#mdb01f06]
EV3ガイドに乗っている基本ロボットにペンを上げ下げする機構を追加してある。~
~
ペン先はプログラムを作りやすいようにロボットの中心になるように機構を作った。~
~
~
*ロボットの動作の説明 [#z81cd8b1]
ロボットに顔を描かせるために必要な動作をまとめると~
~
・ペンを上げ下げする~
・ロボット本体が前後する~
・ロボット本体が回転する~
~
などの動作の組み合わせによって顔を描かせる。~
~
これからのプログラムを簡単にするためにモーターなどを定義する。~
~
今回のプログラムでは~
~
モーターA(左タイヤ)=ml~
モーターB(右タイヤ)=mr~
モーターC(ペンの上げ下げ)=mf~
~
として以下の文を用いて定義した。~
ml = ev3.LargeMotor('outA') //左タイヤ
mr = ev3.LargeMotor('outB') //右タイヤ
mf = ev3.MediumMotor('outC') //ペンの上げ下げ~
~
また、簡単にロボットを動かすために以下の文によって「ロボットの前後」、「ペンの上げ下げ」を簡単に呼び出せるようにする。~
~
def go(t,dl,dr):
ml.run_forever(duty_cycle_sp=dl)
mr.run_forever(duty_cycle_sp=dr)
time.sleep(t/1000)
ml.stop()
mr.stop()
def pen(t,df):
mf.run_forever(duty_cycle_sp=df)
time.sleep(t/1000)
mf.stop()
~
~
・ロボットの前後 =「go」~
・ペンの上げ下げ =「pen」~
~で定義している。