[[2006b/MemberOnly/進行状況A]] 課題1:A4の紙に自分の名前の中の4画以上の1文字を上手に描くロボットを作成せよ。 書く字は祐介の「介」です。 *ロボット [#ba265881] &ref(2006b/A4/課題1左/cimg0150_Medium.jpg,100%,書道ロボット); このロボットは、説明書にシークレットとして載っていたもので、少し特殊な動きをします。具体的には、「使用するモーターは一つで、前方回転で前進、後方回転で”右斜め後ろ”に進む」ということです。このことの利点は、 -足回りのモーターが一つで済み、プログラムが簡単になること。 欠点は、 -小回りが利かない -そのため、紙からはみ出し摩擦が変わると動きが大きく変わる -その場での旋回ができない -キャタピラなので毎回動きに誤差が出る 筆は、車体の真ん中に二つのタイヤではさんでおり、モーターの回転で上げ下げします。 *プログラム [#m2498583] task main() { OnFwd(OUT_C);Wait(25);Off(OUT_C); //筆を紙に下ろす OnFwd(OUT_A);Wait(300); //第一画目 OnRev(OUT_C);Wait(25);Off(OUT_C); //筆を上げる OnRev(OUT_A);Wait(540);Off(OUT_A); //二画目へ向かって移動、方向転換 OnFwd(OUT_A);Wait(100); //直進 OnFwd(OUT_C);Wait(25);Off(OUT_C); //筆を下ろす OnFwd(OUT_A);Wait(300); //二画目 OnRev(OUT_C);Wait(25);Off(OUT_C); //筆を上げる OnRev(OUT_A);Wait(950);OnFwd(OUT_A);Wait(480); //以下、三画目へ移動 OnRev(OUT_A);Wait(780); // OnFwd(OUT_A);Wait(50); // OnFwd(OUT_C);Wait(27);Off(OUT_C); //筆を下ろす OnFwd(OUT_A);Wait(200); //三画目 OnRev(OUT_C);Wait(25);Off(OUT_C); //筆を上げる OnRev(OUT_A);Wait(920);OnFwd(OUT_A);Wait(500); //以下、四画目へ移動 OnRev(OUT_A);Wait(1170); // OnFwd(OUT_A);Wait(250); // OnFwd(OUT_C);Wait(27);Off(OUT_C); //筆を下ろす OnFwd(OUT_A);Wait(300);Off(OUT_A); //四画目、停止 OnRev(OUT_C); //筆を放し、終了 } *工夫した点 [#jce67433] -なるべく誤差が小さくなるように、スタートの位置を試行錯誤した。 -どうしても紙からはみ出してしまうところは、はじめからはみ出すことを前提としてプログラムを作った。 *苦労した点 [#ed4b4bc7] -上記のように、欠点が多い -さらに、その欠点を根本的に排除することは、ロボット自体をかえることなしには不可能 *まとめ [#ec12cc10] この課題で最も苦労したのは、やはりキャタピラによる誤差です。しかも、ロボットを作り替える時間の余裕がなかったので、とにかくプログラムの調整を続けるしかありませんでした。それから紙が動かないように必死で押さえるのにもなかなか体力を使いました。以上のことから学んだことは、ロボットはシンプルなものが一番、ということです。 *コメントをどうぞ [#r133f274] #comment