[[2015b/Member]]

#contents

*課題 [#na5f6bce]
&size(20){書道ロボットの作成};

 書道ロボットを作成し、七画以上の文字を書く。

  注意点
-マクロや関数、サブルーチンなどを使い、main関数がなるべく単純になるようにプログラムを作ること。
-定数名やマクロなどは分かりやすい名前を用いること。
-余裕をもってA4の紙の中に収まる大きさにすること。読める範囲ならばいくら小さくてもよい。
-ペン以外はキットの部品を使うこと。
-輪ゴムは切れやすく高価なので慎重に扱い、張力がかかりすぎないようにすること。


 今回は
&size(18){「佑」};
という字を書くことを目標とする。


*ロボット [#oc042f75]
これが私たちが作成したロボットである。

**仕組み [#s9718552]
それぞれ3つのモーターを使い、x軸,y軸,z軸の三方向に独立して移動するように作られている。それぞれの移動について以下に示す。
***x軸 [#f25cb0e5]
タイヤを使い本体ごと移動させる。
***y軸 [#g133b08e]
モーターは本体に固定し、アームを使い前後にペンを移動させる。
***z軸 [#a8e81e21]
常にペンと共に移動し、必要に応じて上げ下げする。

*作品 [#ae2ed8d7]
ほぼ書き順通りである。三画目と四画目を文字のバランスをとるため逆にした。

辺とつくりのバランスがよくとれたと思う。


*プログラム [#h12036f6]
**マクロ [#t7f8da3c]
メインタスクを簡単にするため、このように定義した。
|xup|x軸正の方向に移動||xdown|x軸負の方向に移動|
|yup|y軸正の方向に移動||ydown|y軸負の方向に移動|
|zup|z軸正の方向に移動||zdown|z軸負の方向に移動|
|nnm|斜めの方向に移動 |

軸に関しては以下の図で定義する。

**タスク [#v2769d24]
コメント文の「○□移動」とは○画目を終え、□画目の書き始めまでの移動である。

*最後に [#dcf6b213]
**工夫点 [#taf53169]
***ロボット [#b3feac46]
-歯車

  x軸をより正確に動かすため、モーターとタイヤをつなぐのに二種類の歯車を使用した。それによりモーターの回転数の1/3がタイヤに伝わり、3倍の力がかかるようにでき、細かな移動ができるようになった。やはり字を書く上で細かい動きは必要不可欠なものとなるのでこのような仕組みはとても大切なものとなる。

***プログラム [#je04a68e]
-z軸の細かな動き

  z軸の働きはペンを傾けて浮かすことである。しかしその傾けるという動きにより、y軸移動に支障をきたしてしまう。そこで少しでもその被害を抑えるため、z軸の移動は必要最低限の細かな動きが必須となった。授業で習ったOnFwdでは細かな動きを指示するのが難しい。そこで
&color(blue){&size(20){RotateMotor};};
を使った。OnFwdは時間で制御するのに対してRotateMotorは
&color(blue){&size(20){角度};};
で制御できる。これで細かな動きも簡単に指示することができた。

RotateMotor(OUT_C,スピード,角度)

-マクロ

  プログラムを簡単に、かつ理解しやすく、そして操作しやすくするために大きく7つの操作のみにした。x,y,zのそれぞれの上下(up,down)、そしてななめ(nnm)である。プログラムはこの7つのみで構成されているため作るのは容易であった。

**壁 [#idd6e1fd]
-z軸の移動

  初めz軸も本体から操作する予定だった。しかし移動するy軸を考慮に入れると、任意の位置でのz軸移動が困難であることが分かった。z軸のモーターも一緒にy軸と移動するのは重過ぎると考えたためそこで作業が滞った。しかしその課題もy軸のレール強化したことにより解決することができた。
-ななめ

  x軸,y軸が独立して動くため、ななめの線を書くためには同時に二つの軸を動かさなくてはいけない。ななめの線を書くといっても45°の線を書くのか60°の線を書くのかでプログラムは変わってくる。思い通りの角度で書くために何回も微調整を繰り返してやっと書くことができた。

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS