目次

課題1 ~書道ロボット~

7画以上の文字を選ぶこと、今年の大学生活を表す漢字一文字ということで、大学生として自主的な行動を起こせるようになりたいと思っていることから「自」の文字を選びました。

書き順

選んだ文字の特徴

プログラムの解説

書き順

書き順

NXCではうまくEV3が動作しなかったため今回はpython2.7でプログラミングをしました

#!/usr/bin/python
# -*- coding: utf-8 -*-

EV3は純正のものではなく、ev3devで動作させています

import ev3dev.ev3 as ev3

time という関数を導入し、時間によってロボットを制御させることができるようになります

import time

各モーターをロボットに認識させています

mw = ev3.MediumMotor('outA')           #MediumMotor をペンの上げ下げのために使用しており、このモーターを「mw」と名付けました。
mr = ev3.LargeMotor('outB')                #ロボット右側のタイヤをmrとする。motor rightの略
ml = ev3.LargeMotor('outC')                #ロボット左側のタイヤをmlとする。

今回の課題では誤差が生じやすいため、のちに定義する動作の調整が行いやすいようにしています

H = 0.5         #縦線
Q = 0.25     #横線 行き
R = 0.2      #横線 帰り
T = 173         #角度

プログラムの可読性を高めるため、ロボットの動作をそれぞれ定義しています

def st(x,y):                                               # 前進
   mr.reset()                                             # xの値が右輪
   ml.reset()                                             # yの値が左輪
   mr.run_forever(duty_cycle_sp=x)
   ml.run_forever(duty_cycle_sp=x)
   time.sleep(y)
   mr.stop(stop_command='brake')
   ml.stop(stop_command='brake')
   time.sleep(0.5)
def wri(x):                                               #ペンの上げ下げ(xの値が正の時はペンが上昇、負の時は下降する)
   mw.reset()
   mw.run_forever(duty_cycle_sp=x)
   time.sleep(0.5)
   mw.stop()
   time.sleep(0.5)
def turn(x):
   mr.reset()
   ml.reset()
   mr.run_to_rel_pos(position_sp=x, duty_cycle_sp=30)     #sp=720 : 360度
   ml.run_to_rel_pos(position_sp=-x, duty_cycle_sp=30)
   time.sleep(3)
   mr.stop(stop_command='brake')
   ml.stop(stop_command='brake')
   time.sleep(0.5)

ここからがロボットの動作に関するプラグラムになります

turn(-20)                #start
wri(90)        #過程1
st(30,0.3)
turn(20)
turn(T)        #過程2
st(50,Q)
st(-50,R)
turn(-T)

同じ動作で対処できるものは繰り返しの構文を使用しています

for i in range(2):  #過程3 ~ 過程4
   st(50,H/3)
   turn(T)
   st(50,Q)
   st(-50,R)
   turn(-T)
st(50,H/3)          #過程5
turn(T)
st(50,0.25)
turn(T)
st(50,H)
wri(-90)                 #end

工夫

ロボット本体の解説

駆動部分

上.JPG

EV3 Lモーター ×2 (税込4,644円/個)

ペン操作部分

横.JPG

EV3 Mモーター ×1(税込3,780円)

本体 ×1(税込36,720円)

補助パーツ ーロボットが転倒しないための球体のパーツ

後ろ1.JPG

工夫

今回のロボットは分解や組み立て、調整が行いやすいように設計されているため、使用するペンの形状や問題が発生した時にも対応しやすくなっています。そのため今回の課題だけでなく、これからの課題にも再利用できます。

分解

課題点

プログラム

ロボット本体

感想

今回の課題はロボット本体の制作はペアの beingさん が行っています。beingさん の「信」の文字のプログラムは途中までは2人で行い、そのあとはbeingさん が完成させました。「自」の文字は1人1文字という課題なので、自分も後日書き上げました。偶然ですが、ペアの文字と合わせると「自信」という熟語になることにレポート作成時に気がつきました。これからは大学生としての自信を持って物事に取り組めたらと思います。

[余談]普段はあまりターミナルの操作はしなかったのですが、今回の講座をきっかけに今ではターミナルでファイルの操作などを行うようになってきました。確かに早く操作ができ、さらにパソコンの動作を自動化できるため、これからはターミナルを活用していこうと思います。本来はNXCでプログラミングをする予定だったのですが、クロスコンパイラの環境構築がうまくいかなかったため断念しました。時間があり、余力が残っている時にでも勉強し、再挑戦できたらと思います。


添付ファイル: file後ろ1.JPG 174件 [詳細] file分解.JPG 255件 [詳細] file前.JPG 101件 [詳細] file上.JPG 216件 [詳細] file後ろ.JPG 82件 [詳細] file横.JPG 177件 [詳細] fileスキャン2.jpg 215件 [詳細] fileスキャン.jpg 203件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-12-22 (木) 00:56:09