[[2016a/Member]]
*課題 [#s4c6d3f7]
ロボティクス入門ゼミ課題1はロボットを使って自分の似顔絵を描くことでした。
これはその課題のレポートです。

*制作したロボットについて [#yf92bd68]
#ref(s_IMG_1266.JPG)
これが今回作成したロボットです。
#ref(s_IMG_1269.JPG)
似顔絵を描くということで、アームをつけました。
このアームは様々な太さのペンに対応できるようになっています。

*似顔絵のデザインについて [#e0979097]
#ref(s_IMG_1283.JPG)
顔の輪郭を丸以外、例えば四角にすると、
ペンを上げて方向転換した時に
線の終点と始点を合わせることが難しいと感じ、
輪郭を丸くしました。

*プログラムについて [#v251a672]
 #define SPEED 75
 #define turn_left(t,w1,w2) OnFwd(OUT_A,w1); OnRev(OUT_C,w2); Wait(t);Off(OUT_AC);
 #define turn_right(t,w1,w2) OnFwd(OUT_C,w1); OnRev(OUT_A,w2); Wait(t);Off(OUT_AC);
 #define pen_up OnFwd(OUT_B,5);Wait(1000);Off(OUT_B);
 #define pen_down OnRev(OUT_B,5);Wait(1010);Off(OUT_B);
	 //TURN_RIGHTというマクロを定義
 #define go_rev(t,s1,s2) OnRev(OUT_A,s1); OnRev(OUT_C,s2); Wait(t); Off(OUT_AC);
 #define go_fwd(t,s1,s2) OnFwd(OUT_A,s1);OnFwd(OUT_C,s2);Wait(t);Off(OUT_AC);
 #define en1 OnFwd(OUT_A,20);OnFwd(OUT_C,50);Wait(5600);Off(OUT_AC);
まず、左折、右折、ペンの上げ下げ、前進、後退について定義しました。

�[愕國�左右のモーターの出力が違うことや紙が歪んでしまうことから、綺麗な円を描くことは厳しかったです。
 pen_up ;
 pen_down ;
 en1 ;
 pen_up ;
 pen_down;

��髪の毛→ギザギザです。輪郭に収まるように調節することに苦労しました。
 int i;
 for(i=1;i<=7;i++){
 OnRev(OUT_A,30); 
 Wait(400);
 Off(OUT_AC);
 OnRev(OUT_C,30);
 Wait(400);
 Off(OUT_AC);
 }

���じ�、鼻→この2つの位置の調節が大変でした。
 pen_up;
 turn_right(300,50,50);
 go_fwd(500,50,50);
 pen_down;
 go_fwd(350,40,40);
 pen_up;
 go_rev(500,50,50);
 turn_left(300,30,30);
 go_fwd(300,40,40)
 pen_down;
 turn_right(300,30,30);
 go_fwd(200,30,30);
 pen_up;

�キμ棧�画像では目が髪のギザギザのところにありますが、ロボットの調子がいい時は普通の位置にあります。
最初に
 #define mabuta OnFwd(OUT_A,40);\
                OnFwd(OUT_C,35);\
                Wait(300);\
                Off(OUT_AC);
 #define modoru OnRev(OUT_A,40);\
                OnRev(OUT_C,35);\
                Wait(100);\
                Off(OUT_AC);
 #define kurome repeat(3){\
               OnRev(OUT_A,40); \
                OnFwd(OUT_C,30);\
                Wait(80);\
               OnRev(OUT_C,40); \
                OnFwd(OUT_A,30);\
                Wait(90);\
                Off(OUT_AC);\
                 }
と定義して、
 go_rev(400,40,40);
 turn_left(230,40,40);
 pen_down;
 mabuta;
 pen_up;
 modoru;
 pen_down; 
 kurome;
 pen_up;
 OnFwd(OUT_A,40);
 OnFwd(OUT_C,55);
 Wait(500);
 Off(OUT_AC);
 pen_down;
 mabuta;
 pen_up;
 modoru;
 pen_down;
 kurome;
としました。

*感想と反省 [#m3afac7b]
今回の課題はとても難しく感じました。ロボットのタイヤを回す2つのモーターの出力が異なることで、難易度が更に上がったと思います。ロボットをまっすぐ進ませるときや旋回させるときに、他の班より時間がかかっていました。
そんな中で自分たちで作ったロボットで似顔絵を描けた時はとても嬉しかったです。
改善点は、毎回同じものを描くことができないという点です。
これを解決するには、プログラムをもう少し工夫したり、髪をしっかり固定することが必要だと感じました。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS