2019b/Member

課題1:お絵かきロボット

詳細

ロボットの説明

今回、動作確認等に時間がかかったのと授業時間外でロボットを触る時間があまり取れなかったため、ロボットにはあまり工夫することができなかった。

robot

ペンを両側から固定した。ペンは筆圧のあまり関係ないボールペンを使用した。

プログラムの説明

今回は、Pythonのタートルグラフィックスで書いた物をプログラムそのまま(最初の一文のfrom turtle import*等一部を除く)でロボットに書かせることを目標とした。

ペンの上げ下げ

penup()、pendown()という関数を製作した

from ev3dev2.motor import MediumMotor OUTPUT_A

motor_arm = MediumMotor(OUTPUT_A)


def penup():
    motor_arm.for_on_degrees(5,30)

def pendown():
    motor_arm.for_on_degrees(-5,30)

前進、後退

forward(距離)、backward(距離)の関数を製作
forward(150)を速度=30でタイヤが一回転するとした

from ev3dev2.motor import MoveTank OUTPUT_B,OUTPUT_C

tank_drive = MoveTank(OUTPUT_B,OUTPUT_C)


def forward(a):
    tank_drive.for_on degrees(30,30,int(a)/150*360)

def backward(b):
    tank_drive.for_on_degrees(-30,-30,int(b)/150*360)

右左折

left(角度)、right(角度)の関数を製作
左回転の場合、右タイヤ速度=30、左=-30、角度685度で一回転したので、それを基準にした。
また、曲がったときペン先が曲がる前の位置とズレが生じるため、前進して曲がった後に後退する機構にした。

move

先っぽの黒点がペン先

def left(c):
    penup()
    forward(70)
    tank_drive.on_for_degrees(30,-30,int(c)/360*685)
    backward(60)
    pendown()
def right(d):
    penup()
    forward(70)
    tank_drive.on_for_degrees(-30,30,int(d)/360*685)
    backward(60)
    pendown()

turtle graphicsでのデザイン

都合上最初にgotoやsethを使用しているが、ロボットで動かす際は手動で行えば良いのでそちらでは省いている。

from turtle import*

penup()
goto(-100,100)
pendown()

seth(270)
forward(150)
left(55)
forward(110)
left(70)
forward(110)
left(55)
forward(150)

penup()
backward(40)
left(90)
forward(20)
pendown()
forward(50)
penup()
forward(40)
pendown()
forward(50)

penup()
backward(70)
left(90)
forward(40)
pendown()
forward(30)
left(45)
forward(15)

penup()
right(135)
forward(40)
left(90)
forward(40)
left(90)
pendown()

for i in range(5):
    forward(20)
    left(10)

mainloop()
done()

上を動かした物

turtle

結果と反省

e

停止時に緩やかな減速をさせる等の設定をしていなかった為、急ブレーキが掛かり線がブレてしまった。また、ターンするときの前進と後退の距離は、電池残量で大きく変わってしまうようで、設定時には正確だったが絵を描くときには少しズレてしまった。 ループ文を使って書いた曲線(口)は、思っていたよりも曲線になっていて安心した。
ターン等について得たことを、2つめ以降の課題で生かしたい。


添付ファイル: filerobot.jpg 2件 [詳細] filee.jpg 3件 [詳細] filemove.gif 5件 [詳細] fileturtle.png 3件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-11-21 (木) 16:27:54