- 追加された行はこの色です。
- 削除された行はこの色です。
*課題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]