[[2009a]] *目次 [#o18a8d3e] #contents *課題 [#yd5cc038] **課題1 お絵描きロボット [#t79c203a] &size(18){A3の紙に相棒の似顔絵を書くロボットを作成せよ。}; ~・ひとりにつき一つ以上のプログラムを作成すること。 ~・ペン以外はキットに含まれる部品を使うこと。 ~・キットに付属の高価な輪ゴムは切れやすいので切れないように十分注意すること。 ~・改良や調整をしやすくするため、ロボット本体だけでなく、プログラムについても可能な部分についてはサブルーチンや関数、マクロなどを使って部品に分けること。 *ロボット(クリスティーナ)の概略 [#q115b59b] **コンセプト [#f355521d] ~・2輪駆動 ~・シンプルなつくり ~・カッコよさの追求 ~以上の3本柱を軸に作者(Haunt)の好きなフォーミュラカーを参考に、壱号機を完成させた。作者はコンセプトの最後にある「カッコ良さ」を追求しすぎたために、後に苦しむこととなる。ちなみに、壱号機完成時に「クリスティーナ」と名付けられる。 **変遷 [#v65961aa] 基本構造は同じであるが、プログラミングをするうえで、改造を施してきた。 ~・壱号機…前輪を固定していたため、うまく旋回が出来ず、すぐに改造された幻のマシーン。 ~・弐号機…前輪が自由に回転出来るようになり、滑らかに旋回が可能になる。しかし後輪が大きいために小回りが利かず、変更を余儀なくさせられる。作者にとって後輪の変更はカッコよさを追求する上で、マイナスポイントとなるため、最後まで変更を悩ませた。 ~・参号機…ついに決心して後輪のサイズを小さくする。小回りが利き、微妙な曲線も描けるようになる。最終的に納得のいく似顔絵を描くことにつながる。 ~それでは以下に各部位の構造と変遷を見ていこう。 **本体 [#mc7e9e28] ~壱号機は幻の如く写真すら残っていない…(汗) ~弐号機 #ref(弐号機.jpg) ~参号機 #ref(参号機.jpg) **足回り [#o6ae714e] **ペンとその取り付け [#vcd11d3f] #ref(pen.jpg) **工夫 [#q13ec8a2] *似顔絵 [#o7a3a983] **完成予定図と描く過程 [#ac09b57e] ***Hauntの完成図 [#z565743e] #ref(2009a/A7/課題1右/顔完成図.jpg,50%) ***Haunt描く過程 [#jd1b8d9c] #ref(過程.jpg) **プログラム [#n39b4df7] ***Hauntのプログラム [#s3291415] 基本操作 #define FW OUT_A+OUT_C #define FA OUT_A #define FB OUT_B #define FC OUT_C sub arm_down() //ペンを上げる { OnFwd(FB); Wait(15); Off(FB); } sub arm_up() //ペンを下げる { OnRev(FB); Wait(15); Off(FB); } void go_st(int t)//前進 { OnRev(FW); Wait(t); Off(FW);} void go_back(int t)//後退 { OnFwd(FW); Wait(t); Off(FW);} void turn_l(int t)//左折 { OnRev(FC); OnFwd(FA); Wait(t); Off(FW);} void turn_r(int t)//右折 { OnRev(FA); OnFwd(FC); Wait(t); Off(FW);} void turn_rb(int t)//右後退 { OnFwd(FA); OnRev(FC); Wait(t); Off(FW);} void turn_lb(int t)//左後退 { OnFwd(FC); OnRev(FA); Wait(t); Off(FW);} プログラム task main() { arm_down(); go_st(20); turn_l(130); arm_up(); turn_l(200); go_back(150); turn_lb(50); turn_rb(10); arm_down(); go_st(100);//輪郭1 arm_up(); go_st(72); turn_rb(50); go_back(60); arm_down(); go_st(35); SetPower(FC,8); SetPower(FA,0); OnRev(FW); Wait(80); Off(FA); Wait(180); Off(FC); arm_up(); go_st(100); SetPower(FA,8); turn_rb(120); go_back(80); OnRev(FA); Wait(42); Off(FA); arm_down(); OnRev(FA); Wait(30); OnRev(FC); Wait(80);// Off(FW); OnRev(FC); Wait(250); go_back(30); arm_up(); go_back(100); OnRev(FC); Wait(25); go_st(50); arm_down(); go_st(30); OnRev(FC); Wait(20); arm_up(); Wait(30); Off(FC); turn_l(10); arm_down(); turn_r(50); arm_up(); turn_r(65); go_back(40); arm_down(); go_back(30); arm_up(); go_back(30); arm_down(); go_back(30); arm_up(); } **実際には・・・ [#s224b73b] ***Hauntの作品 [#j4abed2e] #ref(2009a/A7/課題1右/CIMG0243.JPG,50%) *まとめ [#x9f3b023] *コメント [#ne0ff67a] コメントをどうぞ #comment CENTER:本日の訪問者&counter(today); CENTER:昨日の訪問者&counter(yesterday); CENTER:今日までの訪問者&counter(all);