詳しくは2017a/Mission1
ロボットの後ろにタイヤを2つ付けて、その間にペンを挟んでタイヤを動かすことによってペンを上下させるというとてもシンプルな構造にしました。歯車を2つ使い2つのタイヤを同じ速さで回転させることによりペンを上下に動かした。タイヤが外れないように支柱を2本取り付けた。
ペン先を安定させるためブロックを組み合わせた。 しかし、ペンが下がり過ぎるとロボットが浮いてしまったり、ペンと紙が強く触れてないと線がかけなかったりとうまく行かないことが多かったが、最初のペンの位置や秒数を変えてうまく調節した。 後ろにタイヤをつけた影響でロボットがOnRevdで前進、OnFwdで後進するようになってしまったが、混乱せずプログラミングを進めることができた。
ペンを上げる動き、下げる動きをそれぞれARM_UP,ARM_DOWNと定義した。また、右回りはTURN_RIGHT左回りはTURN_LEFTとした。
#define ARM_UP OnRev(OUT_B);Wait(30);Off(OUT_B); #define ARM_DOWN OnFwd(OUT_B);Wait(30);Off(OUT_B); #define TURN_LEFT OnRev(OUT_C);OnFwd(OUT_A); #define TURN_RIGHT OnFwd(OUT_C);OnRev(OUT_A);
書き順は無視した。 task main() {
ARM_DOWN; OnRev(OUT_AC); //にんべんの一画目 Wait(30); Off(OUT_AC); ARM_UP; OnFwd(OUT_AC); Wait(15); TURN_LEFT; Wait(40); Off(OUT_AC); OnRev(OUT_AC); Wait(10); Off(OUT_AC); ARM_DOWN; OnRev(OUT_AC); //にんべんの2画目 Wait(30); Off(OUT_AC); ARM_UP; TURN_LEFT; Wait(130); OnRev(OUT_AC); Wait(100); TURN_RIGHT; Wait(80); Off(OUT_AC); ARM_DOWN; OnRev(OUT_AC); //木の一画目 Wait(15); Off(OUT_AC); ARM_UP; TURN_LEFT; Wait(100); OnRev(OUT_AC); Wait(8); TURN_LEFT; Wait(70); Off(OUT_AC); ARM_DOWN; OnRev(OUT_AC); //木の二画目 Wait(50); Off(OUT_AC); ARM_UP; TURN_RIGHT; Wait(100); OnRev(OUT_AC); Wait(10); TURN_RIGHT; Wait(100); Off(OUT_AC); ARM_DOWN; OnRev(OUT_AC); //木の3画目 Wait(15);Off(OUT_AC); ARM_UP; TURN_RIGHT; Wait(100); OnRev(OUT_AC); Wait(10); Off(OUT_AC); ARM_DOWN; OnRev(OUT_AC); //木の4画目 Wait(15); Off(OUT_AC); ARM_UP; TURN_RIGHT; Wait(90); OnRev(OUT_AC); Wait(10); Off(OUT_AC); ARM_DOWN; OnRev(OUT_AC); //最後の1画 Wait(10); Off(OUT_AC);
}
僕は初めてロボットのプログラミングをしたので、プログラミングを書くのに時間がかかってしまった。しかし、漢字一文字を書くことができたのでよかった。 基本的なプログラミング言語はもう覚えたので、今度はもっと画数の多い漢字に挑戦してみようと思った。