2017a/Member/nami/mission1

課題1:書道ロボット

A4の紙に松本の大学生活を表す漢字一文字を書くロボットを製作せよ

漢字について

漢字は県の森の実行委員やバイトで新生活が辛かったので「辛」にしました。

書き順

書き方について

書き方についてはプリンターのように動くのが合理的に思ったので書き順は上からしたにむかうようなかたちにしました。

ロボットについて

全体

書き順

ロボットは最初は自走する形にしたが直角に曲がることが出来なかったため、前後をタイヤ移動左右をベルトコンベアで動く構造にした。

工夫点

書き順

このようにベルトコンベアが動かないようにガイドなようなものを上と下にとりつけてみた

プログラムについて

調整をしやすいようにすべてサブルーチン化をして右に移動するなどをまとめた。

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import ev3dev.ev3 as ev3
import time
motor_x = ev3.LargeMotor('outB')
motor_z = ev3.MediumMotor('outC')
motor_y = ev3.LargeMotor('outA')
def pen_down():
          motor_z.run_forever(duty_cycle_sp=50, speed_sp=250)
          time.sleep(0.3)
          motor_z.stop(stop_action='brake')
def pen_up():
          motor_z.run_forever(duty_cycle_sp=50, speed_sp=-250)
          time.sleep(0.3)
          motor_z.stop(stop_action='brake')
def go_right():
          motor_x.run_forever(duty_cycle_sp=50, speed_sp=250)
          time.sleep(0.36)
          motor_x.stop(stop_action='brake')
def go_right_half():
          motor_x.run_forever(duty_cycle_sp=50, speed_sp=250)
          time.sleep(0.18)
          motor_x.stop(stop_action='brake')
def go_left():
          motor_x.run_forever(duty_cycle_sp=50, speed_sp=-250)
          time.sleep(0.36)
          motor_x.stop(stop_action='brake')
def go_left_half():
          motor_x.run_forever(duty_cycle_sp=50, speed_sp=-250)
          time.sleep(0.18)
          motor_x.stop(stop_action='brake')
def go_front():
          motor_y.run_forever(duty_cycle_sp=50, speed_sp=-125)
          time.sleep(0.36)
          motor_y.stop(stop_action='brake')
def go_back():
          motor_y.run_forever(duty_cycle_sp=50, speed_sp=125)
          time.sleep(0.36)
          motor_y.stop(stop_action='brake')
pen_down()
go_front()
pen_up()
go_left()
pen_down()
go_right()
go_right()
pen_up()
go_left_half()
pen_down()
go_front()
pen_up()
go_left()
pen_down()
go_back()
pen_up()
go_front()
go_left_half()
pen_down()
go_right()
go_front()
pen_down()
go_back()
go_back()
motor_y.run_forever(duty_cycle_sp=50, speed_sp=120)
time.sleep(0.2)
motor_y.stop(stop_action='brake')
pen_up()

こうすることによりプログラムを簡単にすることに成功した。一番下のプログラムは最後誤差が出てしまいずれていたため微調整のために用意した。

反省点

ロボットについて

まずこちらのできた漢字をみていただきたい

書き順

御覧の通りがたがたになってしまっている。つまり安定性に欠けているので今後の課題は安定性です。

プログラミングについて

やはり単純化しすぎてしまったと思う。これではむしろわかりずらくなっているような気がするのでもう少し単純化するべきところはして、しないところはせずにきれいにプログラミングができるようにするのが今後の課題である


添付ファイル: filerobot2.jpg 312件 [詳細] filerobot1.jpg 341件 [詳細] filetura.jpg 240件 [詳細] filekakizyun.jpg 303件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-08-13 (日) 23:18:00