*課題1 似顔絵を描くロボット [#x32c9908]
**課題 [#wfeff406]
床に置いた固定していないA4用紙に相棒の似顔絵を描くロボットを作る、というものでした。
**ロボット本体 [#u9edcaaf]
***概要 [#p8890003]
印刷機のようにペンを縦、横の移動させ絵(というか図)を描くというスタイルです。
***この形に至るまで・・・ [#ff4196f7]
実はこの形に行き着いたのは課題の発表直前、それ以前はアームでペンを持ち移動しながら図を描くロボットだったのですがどうにも上手くいかず、行き詰まってロボティクス入門ゼミのホームページの去年度のページからアイディアをもらい、大急ぎで組み上げました。
***問題点 [#te8a7f30]
実は組んでから気付いたのですがこのロボットにはペンを上下させる機能がありません。上記の通りあわてていたためかすっかり忘れていたのです。しかしロボットが完成した時疲れていた私と相方、tsutaya君は思った「一筆書きすればいいか・・・」。今思えばなぜ組み直さなっかたのだろう・・・。
**プログラム [#fb824550]
上記のように一筆書きで顔を描くために作ったプログラムです。コピー機をモデルにしたため単純な縦横の移動だけで組むことができ、時間が無いなかでも一応形にはなりました。
#define go_straight(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC);
#define go_back(t) OnRev(OUT_AC);Wait(t);Off(OUT_AC);
#define go_right(t) OnRev(OUT_B);Wait(t);Off(OUT_B);
#define go_left(t) OnFwd(OUT_B);Wait(t);Off(OUT_B);
task main()
{
go_back(100); //輪郭
go_right(25);
go_straight(40); //口
go_left(12);
go_back(40);
go_right(12);
go_straight(100);
go_left(9); //目
go_back(10);
go_right(6);
go_straight(10);
go_left(9);
go_back(50); //鼻
go_straight(50);
go_left(9);
go_back(10);
go_right(6);
go_straight(10);
go_left(9);
}
描いてみた結果
#ref(./img001.jpg,15%,結果)
怖いですねぇ。心霊写真みたいで。
薄いですがなんとか人の顔に見えます。
**感想 [#x6576d8e]
想像以上に難しいものでした。かなりのトライアンドエラーのも係わらず結局そのアイディアは放棄してしまったり、どこが悪いのかわからなかったり・・・。コピー機の考えが幸いしたのか、自分が雑なのか、プログラムは他のチームに比べコンパクトに作ることができたと思います。このページもかなりバタバタと書いていますので、次の課題はもっと計画的に取り組みたいです。