[[2016a/Member]] 目次 #contents *はじめに [#fa6e3171] 課題は似顔絵ロボットである。 詳しい内容 自分またはチームメイトの似顔絵を描くロボットを製作しなさい。以下の点に注意すること。 マクロや関数、サブルーチンなどを使い、main関数がなるべく単純になるように プログラムを作ること。 定数名やマクロなどは分かりやすい名前を用いること 余裕をもってA4の紙の中に収まる大きさにすること。いくら小さくてもよい。 ペン以外はキットの部品を使うこと 輪ゴムは切れやすく高価なので慎重に扱い、張力がかかりすぎないようにすること。 今回は自分の似顔絵をロボットに描かせた。 *ロボットの説明 [#tfd6eea1] 私達の班は下の写真のような構造のロボットにした。 #ref(2016a/Member/tom/Mission1/IMG_2577.JPG) 鉛筆は二本のブロックで挟んで固定した。 #ref(2016a/Member/tom/Mission1/IMG_2576.JPG) 逆から見た写真 #ref(2016a/Member/tom/Mission1/IMG_2377.JPG) *プログラム [#peab2c8e] #define go_forward(t,s) OnFwd(OUT_BC,s);Wait(t);Off(OUT_BC) #define go_back(t,s) OnRev(OUT_BC,s);Wait(t);Off(OUT_BC); #define kaku Off(OUT_BC); OnRev(OUT_A,25); Wait(400); Off(OUT_A); #define hanasu Off(OUT_A); OnFwd(OUT_A,25); Wait(300); Off(OUT_A); #define turn_left Off(OUT_C); OnFwd(OUT_B,50); Wait(1100); Off(OUT_B); #define turn_right Off(OUT_B); OnFwd(OUT_C,50); Wait(1000); Off(OUT_C); task main (2016a/Member/tom/Mssion1/) { repeat(3){ kaku; go_forward(700,50); hanasu; go_forward(700,50); turn_left; go_back(1300,50); } kaku; go_forward(900,50); hanasu; turn_left; go_back(1100,50); kaku; go_forward(120,50); hanasu; go_forward(120,50); kaku; go_forward(200,50); hanasu; turn_right; turn_right; go_back(1800,50); kaku; go_back(300,50); hanasu; } *動作の説明 [#h78a246e] t秒間前進する #define go_forward(t,s) OnFwd(OUT_BC,s);Wait(t);Off(OUT_BC); t秒間後退する #define go_back(t,s) OnRev(OUT_BC,s);Wait(t);Off(OUT_BC); 鉛筆を下ろす #define kaku Off(OUT_BC); OnRev(OUT_A,25); Wait(400); Off(OUT_A); 鉛筆を上げる #define hanasu Off(OUT_A); OnFwd(OUT_A,25); Wait(300); Off(OUT_A); 左へ曲がる #define turn_left Off(OUT_C); OnFwd(OUT_B,50); Wait(1100); Off(OUT_B); 右へ曲がる #define turn_right Off(OUT_B); OnFwd(OUT_C,50); Wait(1000); Off(OUT_C); と定義し似顔絵を書くことにした。