- 追加された行はこの色です。
- 削除された行はこの色です。
[[2019a/Member]]
test
#contents
*課題1 [#m73b4937]
これまで住んだことのある都道府県名、市町村名、地区名などの中から2文字以上、かつ合計10画以上のものを選び、それをA4の紙を書くロボットを製作せよ。
**今回書いた漢字 [#b58e722a]
今住んでいる地域の「信州」を選択しました。
*ロボットの説明 [#maf3e787]
#ref(./20190606_203429837.jpg,29%,今回制作したロボット)
縦方向を車のように動かし、ペンは上下にあげられるようにしました。
#ref(./20190606_203436382.jpg,20%,今回制作したロボット)
横方向は車の前に道を作りその上をタイヤで動かすという作りにしています。
**そしてこのロボットでかけた字がこちら [#n52b536a]
#ref(./line_1559820547263.jpg,25%,信州)
**プログラムと文字について意識したこと。 [#c1bde4d2]
まずはペンを上げる、下げるなどの繰り返す動きを定義しました。
#define Up_Pen OnFwd(OUT_B);Wait(200);Off(OUT_B);
#define Down_Pen OnRev(OUT_B);Wait(10);Off(OUT_B);
『Up_Pen』にて2秒間上げたまま止めたのは動きの間で少し余白が開くことでロボットへの負担が減ることと、なるべく繰り返し同じ動きができることに配慮したためです。
信州の「言」の字は往復で横に線を六度書くことでプログラムの量を減らしています。
#define Go OnFwd(OUT_C);Wait(20);Off(OUT_C);
#define Yoko
Down_Pen;OnFwd(OUT_A);Wait(20);Off(OUT_A);Up_Pen;OnRev(OUT_A);Wait(22);Off(OUT_A);
六度同じ動きをするので横に線を引いて元の位置に戻るプログラムと盾に少し動くプログラムを定義したうえで六度それを繰り返しています。
「州」の字は点とその横に縦線を引くというプログラムを三度繰り返すことで簡略化を図っています。
#define TateOnFwd(OUT_C);Wait(10);Off(OUT_C);Down_Pen;Up_Pen;OnFwd(OUT_A);
OnRev(OUT_C);Wait(1);Off(OUT_AC);Down_Pen;OnFwd(OUT_C);Wait(80);
Off(OUT_C);Up_Pen;OnFwd(OUT_A);Wait(4);Off(OUT_A);OnRev(OUT_C);Wait(60);Off(OUT_A);
基本的にはこのようなプログラムで成り立っています。
もう一つ工夫したところは「信」の字のにんべんの払いで縦横方向を同時に動かすことで、満足できる払いになりました。そのプログラムがこちら。
Down_Pen;
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(30);
Off(OUT_AC);
Up_Pen;
*全体のプログラム [#n3273a84]
#define Up_Pen OnFwd(OUT_B);Wait(200);Off(OUT_B);
#define Down_Pen OnRev(OUT_B);Wait(10);Off(OUT_B);
#define Go OnFwd(OUT_C);Wait(20);Off(OUT_C);
#define Yoko
Down_Pen;OnFwd(OUT_A);Wait(20);Off(OUT_A);Up_Pen;OnRev(OUT_A);Wait(22);Off(OUT_A);
#define TateOnFwd(OUT_C);Wait(10);Off(OUT_C);Down_Pen;Up_Pen;OnFwd(OUT_A);
OnRev(OUT_C);Wait(1);Off(OUT_AC);Down_Pen;OnFwd(OUT_C);Wait(80);
Off(OUT_C);Up_Pen;OnFwd(OUT_A);Wait(4);Off(OUT_A);OnRev(OUT_C);Wait(60);Off(OUT_A);
task main()
{
Up_Pen;
Wait(100);
Down_Pen;
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(30);
Off(OUT_AC);
Up_Pen;
OnFwd(OUT_A);
Wait(5);
Off(OUT_A);
Down_Pen;
OnFwd(OUT_C);
Wait(80);
Off(OUT_C);
Up_Pen;
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(10);
Off(OUT_A);
Wait(60);
Off(OUT_C);
Yoko;
Go;
Yoko;
Go;
Yoko;
Go;
Yoko;
Go;
Yoko;
Go;
Yoko;
Down_Pen;
OnFwd(OUT_C);
Wait(10);
Off(OUT_C);
Up_Pen;
OnRev(OUT_C);
OnFwd(OUT_A);
Wait(10);
Off(OUT_AC);
OnFwd(OUT_C);
Wait(20);
Off(OUT_C);
Down_Pen;
Up_Pen;
OnRev(OUT_A);
OnFwd(OUT_C);
Wait(30);
Off(OUT_AC);
Tate;
Tate;
Tate;
Off(OUT_C);
}
*まとめ [#scc2c1ac]
・良かった点
同じ動きを繰り返すことであまり長いプログラムにはならなかった。
払いがきれいにできるようになった。
・改善できる点
同じ動きを何度もするのでぎりぎり読めるか読めないかの字になってしまった。
「州」で棒の高さをそろえられなかった。