- 追加された行はこの色です。
- 削除された行はこの色です。
[[2017a/Member]]
目次
#contents
*課題 [#cd9ddebd]
**制約 [#w52c2699]
A4サイズの紙に新たに始まる大学生活を漢字一文字で書くロボットの作製しなければなりません。
画数は7画以上にしなければなりません。
文字を15cm四方の紙に収めなければなりません。
ペン以外はキットの部品を使用しなければなりません。
キットの輪ゴムは高価なので扱いに注意しなければなりません。
改良・調整を容易にするため、ロボット本体だけでなく、プログラミングについても可能な部分についてはサブルーチンや関数、マクロなどを使って部品に分けなければなりません。
**選んだ漢字 [#fe7a73c4]
作
大学生活を「作る」、これからの人生を「作る」、新生活を「作る」、に因んで「作」という漢字を選定しました。
*プログラミングの説明 [#n0a3c1d0]
漢字も書き順通りにかけるようにした。ペンを出しきれなかったときのことを考えて、ペンを引っ込めるときは0,10秒出すときは0,11秒にした。floatを使って払いを微妙に意識した。
task main()
{
OnFwd(OUT_AC);
Wait(50);
Off(OUT_AC); //一画目 にんべんの斜め線 ペンを射出した状態で0,5秒前進
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
OnRev(OUT_AC);
Wait(120);
Off(OUT_AC);
OnFwd(OUT_C);
Wait(100);
Off(OUT_C);
OnFwd(OUT_B);
Wait(11);
Off(OUT_B);
OnFwd(OUT_AC);
Wait(80);
Off(OUT_AC); //二画目 にんべんの直線部分 ペンを戻し1,2秒後退し、1,0秒旋回し、ペンを射出し、0,8秒前進
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
OnRev(OUT_AC);
Wait(250);
Off(OUT_AC);
OnFwd(OUT_C);
Wait(300);
Off(OUT_C);
OnRev(OUT_AC);
Wait(50);
Off(OUT_AC);
OnFwd(OUT_B);
Wait(11);
Off(OUT_B);
OnRev(OUT_AC);
Wait(60);
Off(OUT_AC); //三画目 右側部分の斜め線部分 ペンを戻し 2,5秒後退し、3,0秒旋回し、0,5秒後退し、ペンを射出し、0,6秒前進
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
OnFwd(OUT_AC);
Wait(50);
Off(OUT_AC);
OnRev(OUT_C);
Wait(120);
Off(OUT_C);
OnFwd(OUT_AC);
Wait(100);
Off(OUT_AC);
OnFwd(OUT_B);
Wait(11);
Off(OUT_B);
OnFwd(OUT_AC);
Wait(70);
Wait(OUT_AC); //四画目 右側部分の一番上の横に直線部分 ペンを戻し、0,5秒前進し、1,2秒旋回し、1,0秒前進し、ペンを射出し、0,7秒前進する
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
OnRev(OUT_AC);
Wait(100);
Off(OUT_AC);
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(100);
Off(OUT_AC);
OnFwd(OUT_AC);
Wait(100);
Off(OUT_AC);
OnFwd(OUT_B);
Wait(11);
Off(OUT_B);
OnFwd(OUT_AC);
Wait(100);
Off(OUT_AC); //五画目 右側部分の縦に直線の部分 ペンを戻し、1,0秒後退し、1,0秒旋回し、ペンを射出し、1,0秒前進
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
OnRev(OUT_AC);
Wait(100);
Off(OUT_AC);
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(100);
Off(OUT_AC);
OnFwd(OUT_AC);
Wait(20);
Off(OUT_AC);
OnFwd(OUT_B);
Wait(11);
Off(OUT_B);
OnFwd(OUT_AC);
Wait(60);
Off(OUT_AC); //六画目 右側部分の上から二番目の横に直線部分 ペンを戻し、1,0秒後退し、1,0秒旋回し、0,2秒前進し、ペンを射出し、1,6秒前進
OnRev(OUT_B);
Wait(10);
Off(OUT_B);
OnRev(OUT_AC);
Wait(60);
Off(OUT_AC);
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(100);
Off(OUT_AC);
OnRev(OUT_AC);
Wait(40);
Off(OUT_AC);
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(100);
Off(OUT_AC);
OnFwd(OUT_B);
Wait(11);
Off(OUT_B);
OnFwd(OUT_AC);
Wait(60);
Off(OUT_AC); //七画目 右側部分の上から三番目の横に直線部分 ペンを戻し、0,6秒後退し、1,0秒旋回し、0,4秒後退し、1,0秒旋回し、ペンを射出し、0,6秒前進
}
漢字は書き順です。ペンの上げる時間よりも下げる時間をほんの少し長くすることによってペンが確実に紙に接触するようにしました。
漢字は書き順通りです。ペンの上げる時間よりも下げる時間をほんの少し長くすることによってペンが確実に紙に接触するようにしました。
*ロボットの説明 [#d6dd1a5e]
**ペンを上げ下げする構造 [#i2173a45]
#ref(./unnamed-3.jpg,50%,a)
できるだけ単純な構造にしました。ぺんの上げ下げの仕方はとても単純で、Bのタイヤをまわすことによってペンの上げ下げを可能にしました。このロボットの長所は構造がとても単純なので壊れたりしても、すぐに修復できる点です。短所はXY軸を使用していないので一画ずつ根気よくしなければならない点です。本体の中心とペン先の位置がズレ過ぎてしまうと、ロボットを回転させた時にペン先のズレが大きくなってしまうので、極力ペンとロボットの距離を近くしました。ペン先がぐらつかないようにブロックでペンを囲み、固定したことによって同じ角度で動かすことを成功しました。
タイヤでペンを挟み、タイヤを回すことでペンの上げ下げを成功させた。タイヤの数は2つではなく3つにすることで安定性をもたせた。また、毎回微妙に角度が変わってしまったりしたので、ペン先がぐらつかないようにブロックでペンを囲み、固定したことによって同じ角度で動かすことを成功させた。
**ロボットの外観 [#ped3d4ae]
#ref(./image11.JPG,50%,a)
とにかくコンパクトにシンプルにするために、最初の授業で作ったロボットを使って作成した。そのおかげで持ち運びも楽になったし、壊れても修復しやすかった。また、本体の中心とペン先の位置がズレ過ぎてしまうと、ロボットを回転させた時にペン先のズレが大きくなってしまうので、極力ペンとロボットの距離を近くした。
*結果 [#r7dbce1a]
#ref(./漢字.jpg,10%,a)
上手くいくときとそうでないときがありましたらそうでないときがありました。今回はあまり上手くいきませんでした。特に二画目と四画目の始めが上手くいくかいかないかで全体の出来が決まります。