- 追加された行はこの色です。
- 削除された行はこの色です。
*課題1* [#i7298d6a]
出身地の都道府県や市、町などの中から2文字を選び、それをA4のの用紙に書くロボットを製作せよ。
*選んだ文字* [#vd1baa0f]
滋賀県にある「高田」という文字を選びました。
*ロボットの説明* [#i0c4c560]
**アーム** [#c87f6dc2]
右や左に曲がったり、旋回しても筆ペンの用紙上での位置がブレないように前輪のある直線状の中点に設置した。また、アームのコンパクト化のために歯車を用いて、筆ペンを地面と垂直に固定したまま上下に動かせるようにした。
**車輪部分** [#j1bb9317]
シンプルな三輪構造で前輪が二輪、後輪が一輪となっている。前輪の二輪が駆動する。
*プログラミングにあたっての準備* [#s1616dcd]
**アームを上下させるプログラム** [#b424451f]
|#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 arm_down OnFwd(OUT_A,50);Wait(150);Off(OUT_A);
#define arm_up OnRev(OUT_A,50);Wait(150);Off(OUT_A);
**直進させるプログラム** [#xc911cb7]
|#define go_straight OnFwd(OUT_B,40);OnFwd(OUT_C,43);|
#define go_straight OnFwd(OUT_B,40);OnFwd(OUT_C,43);
左右の駆動力のバランスが異なるため調整した。
**左右それぞれに90度旋回するプログラム** [#o31edb19]
|#define turn_right OnFwd(OUT_C,25);OnRev(OUT_B,25);Wait(1650);Off(OUT_BC);|
|#define turn_left OnFwd(OUT_B,25);OnRev(OUT_C,25);Wait(1650);Off(OUT_BC);|
#define turn_right OnFwd(OUT_C,25);OnRev(OUT_B,25);Wait(1425);Off(OUT_BC);
#define turn_left OnFwd(OUT_B,25);OnRev(OUT_C,25);Wait(1425);Off(OUT_BC);
**左右それぞれに曲がるプログラム** [#ca401bd1]
|#define turn_R OnFwd(OUT_C,25);OnRev(OUT_B,25);|
|#define turn_L OnRev(OUT_C,25);OnFwd(OUT_B,25);|
#define turn_R OnFwd(OUT_C,25);OnRev(OUT_B,25);
#define turn_L OnRev(OUT_C,25);OnFwd(OUT_B,25);
**車輪を制止させるプログラム** [#wdfb00e5]
|#define off Off(OUT_BC);|
#define off Off(OUT_BC);
*プログラム本編* [#v6748922]
#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,43);
#define u_turn OnFwd(OUT_B,25);OnRev(OUT_C,25);Wait(3300);Off(OUT_BC);
#define turn_right OnFwd(OUT_C,25);OnRev(OUT_B,25);Wait(1650);Off(OUT_BC);
#define turn_left OnFwd(OUT_B,25);OnRev(OUT_C,25);Wait(1650);Off(OUT_BC);
#define turn_R OnFwd(OUT_C,25);OnRev(OUT_B,25);
#define turn_L OnRev(OUT_C,25);OnFwd(OUT_B,25);
#define off Off(OUT_BC);
task main()
{
**「高」を書くためのプログラム** [#z1f9ebf0]
arm_down
go_straight
Wait(150);
off
arm_up
turn_right
go_straight
Wait(350);
off
u_turn
arm_down
go_straight
Wait(700);
off
arm_up
turn_R
Wait(3200);
Wait(2700);
off
go_straight
Wait(650);
off
turn_L
Wait(1550);
Wait(1275);
off
arm_down
go_straight
Wait(150);
off
turn_left
go_straight
Wait(500);
off
turn_left
go_straight
Wait(150);
off
turn_left
go_straight
Wait(500);
off
turn_L
Wait(1100);
Wait(950);
off
go_straight
Wait(230);
off
turn_L
Wait(550);
Wait(425);
off
go_straight
Wait(500);
off
u_turn
arm_down
go_straight
Wait(500);
off
turn_right
go_straight
Wait(765);
off
turn_right
go_straight
Wait(500);
off
turn_right
turn_R
Wait(550);
Wait(425);
off
go_straight
Wait(150);
off
arm_up
go_straight
Wait(378);
off
turn_L
Wait(2200);
Wait(1850);
off
arm_down
go_straight
Wait(150);
off
turn_left
go_straight
Wait(150);
off
turn_left
go_straight
Wait(150);
off
turn_left
go_straight
Wait(150);
off
arm_up
turn_L
Wait(1100);
off
go_straight
Wait(310);
off
turn_L
Wait(550);
off
**「田」を書くためのプログラム** [#v9ddb1ce]
arm_down
go_straight
Wait(460);
off
turn_left
go_straight
Wait(460);
off
turn_left
go_straight
Wait(460);
off
turn_left
go_straight
Wait(460);
off
arm_up
turn_left
go_straight
Wait(230);
off
turn_left
arm_down
go_straight
Wait(430);
off
arm_up
turn_left
go_straight
Wait(230);
turn_left
go_straight
Wait(230);
off
turn_left
arm_down
go_straight
Wait(430);
off
arm_up
}