A3の紙に相棒の似顔絵を書くロボットを作成せよ。
•ひとりにつき一つ以上のプログラムを作成すること。
•ペン以外はキットに含まれる部品を使うこと。
•キットに付属の高価な輪ゴムは切れやすいので切れないように細心の注意を払うこと。
•改良や調整をしやすくするため、ロボット本体だけでなく、プログラムについても可能な部分についてはサブルーチンや関数、マクロなどを使って部品に分けること。
塚越&山本
マシンもプログラムもシンプルな仕上がりになりました。 あくまでゴムは補強的な役割ということで、ストッパーの役割をしています。
マジックペンを利用したことにより、筆圧は必要ありません。アームが下がればペンの自重で絵が描けるという仕様です。
そのため、ペンとアームの間は少し隙間があります。(そのせいで線はガタガタでしたが・・・)
#define turn_left(t) OnRev(OUT_A);OnFwd(OUT_C);Wait(t);Off(OUT_A+OUT_C); //前に進むためのプログラム #define turn_right(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);Off(OUT_A+OUT_C);//後ろに進むためのプログラム #define go_front(t) OnFwd(OUT_A);OnFwd(OUT_C);Wait(t);Off(OUT_A+OUT_C);//右に旋回 #define go_back(t) OnRev(OUT_A);OnRev(OUT_C);Wait(t);Off(OUT_A+OUT_C);//左に旋回 #define pen_up OnFwd(OUT_B);Wait(10);Off(OUT_B);//ペンを上げる #define pen_down OnRev(OUT_B);Wait(10);Off(OUT_B);//ペンを下げる
task main()
{pen_down;//輪郭を描く turn_right(400); pen_up; go_front(20); turn_right(90); go_back(10);
pen_down;//目の部分 go_front(40); pen_up; go_front(20); pen_down go_front(40); pen_up; go_back(50); turn_right(90); go_back(20); pen_down;
go_front(100);//鼻を描く turn_right(10); pen_up; go_front(50); turn_right(30);
pen_down;//口を描く turn_left(80); }
マクロの部分は同上
task main()
Wait(200); pen_down;//顔の輪郭を描く turn_right(360); pen_up;
go_back(130);//髪の毛を描く repeat(3) { pen_down; turn_right(62); pen_up; go_front(15); pen_down; turn_left(62); pen_up; go_front(15); }
go_front(50);//目を描く OnRev(OUT_C); Wait(62); go_back(20); pen_down; go_back(30); pen_up; go_back(20); pen_down; go_back(30); pen_up;
go_front(130);//口を描く turn_left(60); pen_down; turn_left(45); pen_up;
go_back(30);//鼻を描く pen_down; go_back(30); pen_up;
塚越の作品 シンプル!というか線しかないですね・・・ せめて身の毛だけでも描きたかった。顔のバランスが大変なことに。
山本の作品 ペンを固定していないということで、線がガタガタに・・・
・ロボットを組み立てるところからかなり難しいと思いました。今回の反省を今後に活かしたいと思います。(塚越)
・プログラムはマクロを使うと作りやすくなりましたが、転送に時間がかかるということがわかったので、次はサブルーチンを使って作っていきたいと思います。(山本)
・ペンの固定方法が甘かった。
・ペンの固定位置がタイヤから遠かったので、細かい作業に向かない。
・機体の重心が前の方になってしまったので不安定。
・ペンを下げると少し跳ね返ってしまうので、ペンをずり落ちるようにして跳ね返ってもかけるようにした。
・ペンを固定することが不完全でした。もっといい方法があったのではないかと思います。
・次はもっと自由度の高い設計にしたいと思います。(ペンが本体から遠すぎて細かい操作が難しかったので)
コメントをよろしくお願いします。