*課題1 ロボッッタ君が水を書く♪ [#c6872e82] *〜ロボッッタ君〜 [#f970a5a1] &ref(kadaimizu.jpg); -このロボの特徴 2本の黄色いアームがペンを安定させる。 またアームの幅を変えることによりペンを自由に選べる。 *ぷろぐらむ1(試作) [#f6cfe69c] // 作成者:コミ // 作成日:2006-5-21 task main () { OnRev(OUT_B); //ペンを下げる Wait(4); Float(OUT_B); OnFwd(OUT_A+OUT_C); //1画目 AとCのモータ正回転 Wait(160); Float(OUT_A+OUT_C); OnRev(OUT_C); //Cのモータ逆回転(右回転) Wait(30); Float(OUT_C); OnFwd(OUT_B); //ペンを持ち上げる Wait(4); Float(OUT_B); OnFwd(OUT_C); //Cのモータ正回転 Wait(65); Float(OUT_C); OnRev(OUT_C); Wait(180); Float(OUT_C); OnRev(OUT_B); Wait(4); Float(OUT_B); OnFwd(OUT_A+OUT_C); //2画目 AとCのモータ正回転 Wait(60); Float(OUT_A+OUT_C); OnFwd(OUT_B); //ペンを持ち上げる Wait(4); Float(OUT_B); OnFwd(OUT_A+OUT_C); //AとCのモータ正回転 Wait(10); Float(OUT_A+OUT_C); OnRev(OUT_A); //Aのモータ逆回転(左回転) Wait(90); Float(OUT_A); OnRev(OUT_A+OUT_C); //AとCのモータ逆回転(後進) Wait(30); Float(OUT_A+OUT_C); OnRev(OUT_B); //ペンを下げる Wait(4); Float(OUT_B); OnFwd(OUT_A+OUT_C); //AとCのモ−タ正回転 Wait(85); Float(OUT_A+OUT_C); OnFwd(OUT_B); //ペンを持ち上げる Wait(4); Float(OUT_B); OnRev(OUT_A+OUT_C); //AとCのモータ逆回転 Wait(10); Float(OUT_A+OUT_C); OnRev(OUT_C); //Cのモータ逆回転 Wait(90); Float(OUT_C); OnRev(OUT_A+OUT_C); //AとCのモータ逆回転 Wait(100); Float(OUT_A+OUT_C); OnRev(OUT_B); //ペンを下げる Wait(4); Float(OUT_B); OnFwd(OUT_A+OUT_C); //3画目 AとCのモータ正回転 Wait(60); Float(OUT_A+OUT_C); OnFwd(OUT_B); //ペンを持ち上げる Wait(4); Float(OUT_B); OnFwd(OUT_A+OUT_C); //AとCのモータ正回転 Wait(100); Float(OUT_A+OUT_C); OnRev(OUT_A); //Aのモータ逆回転 Wait(175); Float(OUT_A); OnRev(OUT_B); //ペンを下げる Wait(4); Float(OUT_B); OnFwd(OUT_A+OUT_C); //4画目 AとCのモータ正回転 Wait(90); Float(OUT_A+OUT_C); OnFwd(OUT_B); //ペンを持ち上げる Wait(4); Float(OUT_B); } *難しかった点 [#ud29d33c] 水の2画目、3画目がたいへんだった。また、「水」という字のバランスをとるのが大変だった。 なので、何度もプログラムを直した。 しかしまだ微妙にバランスが悪い... *ぷろぐらむ2(改良) [#ycaf6234] // 作成者:コミ // 作成日:2006-5-24 #define PEN_UP 4 //ペンを持ち上げる #define PEN_DOWN 4 //ペンを下げる #define go_straight(t) OnFwd(OUT_A);OnFwd(OUT_C);Wait(t);Float(OUT_A+OUT_C); #define go_straight1(t) OnRev(OUT_A);OnRev(OUT_C);Wait(t);Float(OUT_A+OUT_C); #define turn_left(t) OnRev(OUT_A);Wait(t);Float(OUT_A); #define turn_right(t) OnRev(OUT_C);Wait(t);Float(OUT_C); #define turn_left1(t) OnFwd(OUT_C);Wait(t);Float(OUT_C); #define pen_up OnFwd(OUT_B);Wait(PEN_UP);Off(OUT_B); #define pen_down OnRev(OUT_B);Wait(PEN_DOWN);Off(OUT_B); task main() { pen_down; //1画目 go_straight(160); //1.6秒間前進 turn_right(30); //0.3秒間右旋回 pen_up; turn_left1(65); turn_right(180); //1.8秒間右旋回 pen_down; //2画目 go_straight(60); //0.6秒間前進 pen_up; go_straight(10); //0.1秒間前進 turn_left(90); //0.9秒間左旋回 go_straight1(30); //0.3秒間後進 pen_down; go_straight(85); //0.85秒間前進 pen_up; go_straight1(10); //0.1秒間前進 turn_right(90); //0.9秒間右旋回 go_straight1(100); //1秒間後進 pen_down; //3画目 go_straight(70); //0.7秒間前進 pen_up; go_straight(100); //1秒間前進 turn_left(175); //1.75秒間左旋回 pen_down; //4画目 go_straight(90); //0.9秒間前進 pen_up; } *工夫した点 [#c17b5b74] 試作プログラムをマクロを使って書き換えた。マクロを使うことによってプログラムが見やすくなった。 ロボットに固定させるアームをつけた事によりペンの安定感が増した。 *反省点 [#n81e64ec] プログラムはまだ試作なので、これを改良したプログラムを完成させたい。(5月23日) ペンを持ち上げる部分のギア比を変えてスピードを落とせばよかった。 たまに字が書けない時があるのが残念だ。 時間に余裕を持たせてやっていたつもりだったが、かなり時間がたりなかった。 なので次回はもっと余裕を持たせてやりたい。 *かんそう [#x557641d] 初めての課題だったので手探り状態だった。ペンを持たせるためにはどうすればいいかでかなり考えた。 「水」を書くぷろぐらむでも結構長いのに驚いた。 -ロボッッタ君のこと(5月12日/15日) ペンをどうやって持たせるか、どのようにして上げ下げするかでちょっと困った。。。 タイヤ?キャタピラ?相談の結果、タイヤに決定☆ が、しかし、ペンのためにタイヤを4個使ったため、 ロボッッタ君本体はかたむいているようだ(>_<) -ロボッッタ君が初めて字を書いた日(5月19日午後六時) ロボは紙からはみ出すくらい、おっきな水の一角めを書いた。 そこにあった蛍光ペンで、そこに落ちていた紙の上に… -今日(5月19日)の課題 いつの間にか点を打つだけのロボットになってしまった、ロボッッタ君。 ちゃんと字を書けるようにがんばって!!! *コメント [#ra358be9] -コメントをどうぞ -マクロやコメントをたくさん用いていて、良いですね。プログラムが見やすいです。 -- [[ゆき(TA)]] &new{2006-05-26 (金) 16:44:53}; -ロボットの構造についても、もっと説明があると良いと思います。 -- [[ゆき(TA)]] &new{2006-05-26 (金) 16:45:25}; #comment