2019b/Member/traffic/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2019b/Member]]
#contents
***課題1:お絵かきロボット [#z9cb326c]
[[詳細>http://yakushi.shinshu-u.ac.jp/robotics/?2019b/Mis...
**ロボットの説明 [#mb5fb24a]
今回、動作確認等に時間がかかったのと授業時間外でロボット...
#ref(2019b/Member/traffic/Mission1/robot.jpg,60%,robot)~
ペンを両側から固定した。ペンは筆圧のあまり関係ないボール...
**プログラムの説明 [#m1a588c3]
今回は、Pythonのタートルグラフィックスで書いた物をプログ...
*ペンの上げ下げ [#kb6102f2]
penup()、pendown()という関数を製作した~
ペンを上げる時は正の速度(5)、下げるときは負の速度(-5)でモ...
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)
*前進、後退 [#z0d9a34d]
前進: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)
*右左折 [#bd1c1798]
left(角度)、right(角度)の関数を製作~
''一連の動作:ペンを上げる→前進する→右(左)に曲がる→後退す...
左回転の場合、右タイヤ速度=30、左=-30、角度685度で一回転...
また、曲がったときペン先が曲がる前の位置とズレが生じるた...
#ref(2019b/Member/traffic/Mission1/move.gif,60%,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でのデザイン [#z66c4c97]
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()
上を動かした物(jupyter notebook使用)
#ref(2019b/Member/traffic/Mission1/turtle.png,40%,turtle)
**実際のプログラム [#l096f076]
from ev3dev2.motor import MoveTank, MediumMotor, OUTPUT_...
tank_drive = MoveTank(OUTPUT_B,OUTPUT_C)
motor_arm = MediumMotor(OUTPUT_A)
#関数の定義
def penup():
motor_arm.for_on_degrees(5,30)
def pendown():
motor_arm.for_on_degrees(-5,30)
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)
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()
#ここから絵を描くプログラム
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)
書き始めは左上の線なので、ロボットの初期方向は下向き(ター...
**結果と反省 [#d5101ee4]
#ref(2019b/Member/traffic/Mission1/e.jpg,60%,e)
停止時に緩やかな減速をさせる等の設定をしていなかった為、...
ループ文を使って書いた曲線(口)は、思っていたよりも曲線に...
ターン等について得たことを、2つめ以降の課題で生かしたい。
終了行:
[[2019b/Member]]
#contents
***課題1:お絵かきロボット [#z9cb326c]
[[詳細>http://yakushi.shinshu-u.ac.jp/robotics/?2019b/Mis...
**ロボットの説明 [#mb5fb24a]
今回、動作確認等に時間がかかったのと授業時間外でロボット...
#ref(2019b/Member/traffic/Mission1/robot.jpg,60%,robot)~
ペンを両側から固定した。ペンは筆圧のあまり関係ないボール...
**プログラムの説明 [#m1a588c3]
今回は、Pythonのタートルグラフィックスで書いた物をプログ...
*ペンの上げ下げ [#kb6102f2]
penup()、pendown()という関数を製作した~
ペンを上げる時は正の速度(5)、下げるときは負の速度(-5)でモ...
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)
*前進、後退 [#z0d9a34d]
前進: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)
*右左折 [#bd1c1798]
left(角度)、right(角度)の関数を製作~
''一連の動作:ペンを上げる→前進する→右(左)に曲がる→後退す...
左回転の場合、右タイヤ速度=30、左=-30、角度685度で一回転...
また、曲がったときペン先が曲がる前の位置とズレが生じるた...
#ref(2019b/Member/traffic/Mission1/move.gif,60%,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でのデザイン [#z66c4c97]
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()
上を動かした物(jupyter notebook使用)
#ref(2019b/Member/traffic/Mission1/turtle.png,40%,turtle)
**実際のプログラム [#l096f076]
from ev3dev2.motor import MoveTank, MediumMotor, OUTPUT_...
tank_drive = MoveTank(OUTPUT_B,OUTPUT_C)
motor_arm = MediumMotor(OUTPUT_A)
#関数の定義
def penup():
motor_arm.for_on_degrees(5,30)
def pendown():
motor_arm.for_on_degrees(-5,30)
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)
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()
#ここから絵を描くプログラム
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)
書き始めは左上の線なので、ロボットの初期方向は下向き(ター...
**結果と反省 [#d5101ee4]
#ref(2019b/Member/traffic/Mission1/e.jpg,60%,e)
停止時に緩やかな減速をさせる等の設定をしていなかった為、...
ループ文を使って書いた曲線(口)は、思っていたよりも曲線に...
ターン等について得たことを、2つめ以降の課題で生かしたい。
ページ名: