- 追加された行はこの色です。
- 削除された行はこの色です。
[[2016a/Member]]
#define PEN_DOWN RotateMotor(OUT_A,25,30);
#define PEN_UP RotateMotor(OUT_A,-25,30);
#define GO_FORWARD(s) OnFwd(OUT_BC,25);Wait(s);Off(OUT_BC);
#define GO_BACK(u) OnRev(OUT_BC,25);Wait(u);Off(OUT_BC);
#define TURN_LEFT45 OnFwd(OUT_B,50);Wait(570);Off(OUT_B);
#define TURN_LEFT OnFwd(OUT_B,50);Wait(1140);Off(OUT_B);
#define TURN_LEFT2 OnRev(OUT_C,50);Wait(1140);Off(OUT_C);
#define TURN_RIGHT OnFwd(OUT_C,50);Wait(1140);Off(OUT_C);
#define TURN_RIGHT2 OnRev(OUT_B,50);Wait(1140);Off(OUT_B);
#contents
task main ()
{
PEN_DOWN
GO _FORWARD(800)
PEN_UP
GO_FORWARD(1920)
TURN_LEFT45
GO_BACK(2650)
PEN_DOWN
GO_FORWARD(480)
PEN_UP
GO_FORWARD(1750)
TURN_LEFT45
GO_BACK(2560)
PEN_DOWN
GO_FORWARD(320)
PEN_UP
GO_FORWARD(1520)
TURN_LEFT45
GO_BACK(2320)
PEN_DOWN
GO_FORWARD(480)
PEN_UP
GO_FORWARD(1840)
TURN_LEFT45
GO_BACK(2320)
PEN_DOWN
GO_FORWARD(800)
PEN_UP
GO_FORWARD(2560)
TURN_LEFT2
GO_BACK(1280)
PEN_DOWN
GO_FORWARD(960)
PEN_UP
GO_FORWARD(320)
TURN_RIGHT
GO_BACK(160)
TURN_LEFT2
GO_BACK(640)
PEN_DOWN
GO_BACK(240)
PEN_UP
GO_BACK(160)
PEN_DOWN
GO_BACK(240)
PEN_UP
GO_FORWARD(3200)
TURN_LEFT2
GO_BACK(1360)
PEN_DOWN
GO_BACK(160)
PEN_UP
GO_FORWARD(1520)
TURN_RIGHT
GO_FORWARD(240)
TURN_LEFT2
GO_BACK(1360)
PEN_DOWN
GO_BACK(160)
PEN_UP
GO_FORWARD(1520)
TURN_RIGHT
GO_FORWARD(160)
TURN_LEFT2
GO_BACK(1360)
PEN_DOWN
GO_BACK(160)
PEN_UP
GO_FORWARD(1520)
TURN_RIGHT
GO_FORWARD(240)
TURN_LEFT2
GO_BACK(1360)
PEN_DOWN
GO_BACK(160)
PEN_UP
TURN_LEFT
GO_FORWARD(320)
TURN_RIGHT2
GO_BACK(80)
PEN_DOWN
GO_FORWARD(320)
PEN_UP
GO_FORWARD(1600)
TURN_LEFT
GO_BACK(3360)
PEN_DOWN
GO_BACK(80)
PEN_UP
GO_FORWARD(3440)
TURN_RIGHT2
GO_FORWARD(320)
TURN_LEFT
GO_BACK(3200)
PEN_DOWN
GO_BACK(320)
}
*はじめに [#w8c85221]
課題は似顔絵を描くロボットである。
注意点は
・マクロや関数、サブルーチンなどを使い、main関数がなるべく単純になるようにプログラムを作る。
・定数名やマクロなどは分かりやすい名前を用いる。
・余裕をもってA4の紙の中に収まる大きさにする。いくら小さくてもよい。
・ペン以外はキットの部品を使う。
・輪ゴムは切れやすく高価なので慎重に扱い、張力がかかりすぎないようにする。
これらに注意をし、今回は自分の似顔絵を描いた。
*ロボットの説明 [#gd87beb3]
#define PEN_DOWN RotateMotor(OUT_A,25,30);
#define PEN_UP RotateMotor(OUT_A,-25,30);
#define GO_FORWARD(s) OnFwd(OUT_BC,25);Wait(s);Off(OUT_BC);
#define GO_BACK(u) OnRev(OUT_BC,25);Wait(u);Off(OUT_BC);
#define TURN_LEFT45 OnFwd(OUT_B,50);Wait(570);Off(OUT_B);
#define TURN_LEFT OnFwd(OUT_B,50);Wait(1140);Off(OUT_B);
#define TURN_LEFT2 OnRev(OUT_C,50);Wait(1140);Off(OUT_C);
#define TURN_RIGHT OnFwd(OUT_C,50);Wait(1140);Off(OUT_C);
#define TURN_RIGHT2 OnRev(OUT_B,50);Wait(1140);Off(OUT_B);
task main ()
{
PEN_DOWN
GO _FORWARD(800)
PEN_UP
GO_FORWARD(1920)
TURN_LEFT45
GO_BACK(2650)
PEN_DOWN
GO_FORWARD(480)
PEN_UP
GO_FORWARD(1750)
TURN_LEFT45
GO_BACK(2560)
PEN_DOWN
GO_FORWARD(320)
PEN_UP
GO_FORWARD(1520)
TURN_LEFT45
GO_BACK(2320)
PEN_DOWN
GO_FORWARD(480)
PEN_UP
GO_FORWARD(1840)
TURN_LEFT45
GO_BACK(2320)
PEN_DOWN
GO_FORWARD(800)
PEN_UP
GO_FORWARD(2560)
TURN_LEFT2
GO_BACK(1280)
PEN_DOWN
GO_FORWARD(960)
PEN_UP
GO_FORWARD(320)
TURN_RIGHT
GO_BACK(160)
TURN_LEFT2
GO_BACK(640)
PEN_DOWN
GO_BACK(240)
PEN_UP
GO_BACK(160)
PEN_DOWN
GO_BACK(240)
PEN_UP
GO_FORWARD(3200)
TURN_LEFT2
GO_BACK(1360)
PEN_DOWN
GO_BACK(160)
PEN_UP
GO_FORWARD(1520)
TURN_RIGHT
GO_FORWARD(240)
TURN_LEFT2
GO_BACK(1360)
PEN_DOWN
GO_BACK(160)
PEN_UP
GO_FORWARD(1520)
TURN_RIGHT
GO_FORWARD(160)
TURN_LEFT2
GO_BACK(1360)
PEN_DOWN
GO_BACK(160)
PEN_UP
GO_FORWARD(1520)
TURN_RIGHT
GO_FORWARD(240)
TURN_LEFT2
GO_BACK(1360)
PEN_DOWN
GO_BACK(160)
PEN_UP
TURN_LEFT
GO_FORWARD(320)
TURN_RIGHT2
GO_BACK(80)
PEN_DOWN
GO_FORWARD(320)
PEN_UP
GO_FORWARD(1600)
TURN_LEFT
GO_BACK(3360)
PEN_DOWN
GO_BACK(80)
PEN_UP
GO_FORWARD(3440)
TURN_RIGHT2
GO_FORWARD(320)
TURN_LEFT
GO_BACK(3200)
PEN_DOWN
GO_BACK(320)
}