*課題1 [#l3557eef]
これまで住んだことのある都道府県名、市町村名、地区名などの中から2文字以上のものを選び、それをA4の紙を書くロボットを製作せよ。
**選んだ文字 [#n085448b]
新潟の『上越』
*ロボットの説明 [#i4341026]
#ref(./robot1.jpg,81.9KB,ロボット)
*プログラムの準備 [#r734f8da]
#ref(./frame.png,36.2,プログラムを書く前の設計図)
プログラムを書く前にどこから書き始めるか決めた。そしてその後どういう動きをさせるか考えた。出来るだけ90°の曲がりで書けるようにした。&color(#ff0000,){赤マル};がプログラム開始地点、&color(#008000,){緑};がペンを下ろしての動き、&color(#ffa500,){オレンジ};と&color(#ffc0cb,){ピンク};がペンをあげての動き。数字は直進する出力を示す。ただし最終的なプログラムでは全て1.2倍となっている。同じ長さとすぐにわかるものは省略している。
*プログラム [#a3b3af49]
**定義 [#e949f8b4]
#define arm_down OnFwd(OUT_A,50);Wait(150);Off(OUT_A);
#define arm_up OnRev(OUT_A,50);Wait(150);Off(OUT_A);
#define go_straight OnFwd(OUT_B,40);OnFwd(OUT_C,41);
#define turn_right OnFwd(OUT_C,45);OnRev(OUT_B,45);Wait(700);Off(OUT_BC);
#define turn_left OnFwd(OUT_B,45);OnRev(OUT_C,45);Wait(700);Off(OUT_BC);
**プログラム [#s59e2564]
 task main()
 {
     arm_down
     go_straight
     Wait(450);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(180);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(540);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(180);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(120);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(120);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(360);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(270);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(120);
     Off(OUT_BC);
     arm_up
     
     //ここまで上//
     
     turn_left
     go_straight
     Wait(225);
     Off(OUT_BC);
     arm_down
     go_straight
     Wait(630);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(360);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(180);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(450);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(720);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(180);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(180);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(360);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(90);
     Off(OUT_BC);
     arm_up
     go_straight
     Wait(450);
     Off(OUT_BC);
     turn_right
     arm_down
     go_straight
     Wait(450);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(450);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(90);
     Off(OUT_BC);
     arm_up
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_right
     arm_down
     go_straight
     Wait(360);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(360);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(90);
     Off(OUT_BC);
     arm_up
     turn_left
     go_straight
     Wait(570);
     Off(OUT_BC);
     arm_down;
     go_straight
     Wait(420);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(510);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(600);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(510);
     Off(OUT_BC);
     arm_up
     go_straight
     Wait(180);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(90);
     Off(OUT_BC);
     OnFwd(OUT_C,35);//斜めに回転//
     OnRev(OUT_B,35);
     Wait(700);
     Off(OUT_BC);
     arm_down
     go_straight
     Wait(600);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(180);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(180);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(600);
     Off(OUT_BC);
     turn_left
     go_straight
     Wait(90);
     Off(OUT_BC);
     arm_up
     turn_left
     turn_left
     go_straight
     Wait(180);
     Off(OUT_BC);
     arm_down
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(90);
     Off(OUT_BC);
     turn_right
     go_straight
     Wait(90);
     Off(OUT_BC);
     arm_up
 
 }

*書いた文字 [#y13eb1f8]


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS