目次

課題

似顔絵を作成する。

ロボットの外形

hontai.png
penrotate.gif

ペンの上げ下げの機構を思いつかなかった単純にしたかったのでこの形にした。

しかし思ったよりペンが重く調整が難しくなってしまった。

プログラム

!/usr/bin/python
import ev3dev.ev3 as ev3
import time
left = ev3.LargeMotor('outD')
right = ev3.LargeMotor('outA')
arm = ev3.MediumMotor('outC')

 //定義文

 def forward(t,dl,dr): //ロボットを動かす。両車輪と時間を関数にしたのでこれだけでロボット本体の動きを定義できた。

      left.run_forever(duty_cycle_sp=dl)
      right.run_forever(duty_cycle_sp=dr)
      time.sleep(t/1000)
      left.stop()
      right.stop()

def rotatepen(da): //ペンの上げ下げの定義。何度か上げ下げを繰り返しこの値なら不備なく動くと判断した。daは±40の値をとらせた。

      arm.run_forever(duty_cycle_sp=da)
      time.sleep(1.1)
      arm.stop()
forward(1000,29,20)
forward(1000,38,10)
forward(2500,12,1) //輪郭(しずく型に近い楕円)を描く
forward(4100,30,-15)
forward(3100,-30,15)
forward(2400,38,-18) 
forward(2400,-40,24)
forward(2400,45,-20)
forward(2600,-38,20)
forward(2400,47,-23)
forward(2600,-35,25)
forward(2600,39,-24)
forward(2600,-32,24)
forward(2100,40,-21)
forward(1600,-32,24)
forward(1400,45,-23) //髪(ジグザグした線)を描く
time.sleep(1)
rotatepen(40)
forward(2100,45,-23)
forward(2230,27,2)
forward(1600,-50,-50)
forward(1000,20,20)
time.sleep(1)
rotatepen(-40)
time.sleep(1)
rotatepen(40)
forward(1000,20,20)
time.sleep(1)
forward(1000,35,35)
rotatepen(-40)
time.sleep(1)
rotatepen(40) //目(円2つ)を描く
forward(3900,-30,-30)
forward(1000,25,33)
time.sleep(1)
rotatepen(-40)
forward(1000,20,28) //口(直線)を描く。 

結果

結果.png

とても似顔絵とはいいがたいものを生み出してしまった。

反省・感想

このペンの上げ下げの機構のせいでペンが設置するごとに本体の向きがぶれて誤差がどんどん大きくなってしまったのでやはり機構をよく考えてからやらねばならないと思った。

また調整を聞かせるために関数を多く使ったプログラムを書いたが少々長くなってしまったのでその点もまた課題だと感じた。

また設計図を破棄してしまいプログラムの説明も完成目標も記載できずもどかしかった。


添付ファイル: file結果.png 78件 [詳細] filehontai.png 92件 [詳細] filepenrotate.gif 76件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-08-04 (木) 13:53:40