- 追加された行はこの色です。
- 削除された行はこの色です。
[[2019a/Member]
#contents
*課題について [#ydd1bdf8]
これまで住んだことのある都道府県名,市町村名,地区名などの中から2文字以上,かつ合計12画以上のものを選び,それをA4の紙にかくロボットを制作せよ。
「信州」という地名を選んだ。
*ロボットの説明 [#mdcbc027]
3つのモーターを前後,左右,ペンの上げ下げに使った。
#ref(./IMG_5354.JPG,25%)
全体として動きやすくするために動力のタイヤ以外に本体の前やレールにタイヤを取り付けた。
#ref(./IMG_5355.JPG,25%)
滑らかに動かすために凹凸のない部分を使ってレールを作った。
また,歯車を2個使い,一つのモーターで2個のタイヤが動くようにした。(本体部分も同様)
#ref(./IMG_5356.JPG,25%)
ペンは止める位置を調節し,上げたときに止まるようにした。
*プログラムについて [#f7923aa0]
**プログラムについて意識したこと [#h8850904]
まずはペンを上げる,下げるなどを定義しました。
#define Up_Pen OnFwd(OUT_B);Wait(200);Off(OUT_B);
#define Down_Pen OnRev(OUT_B);Wait(10);Off(OUT_B);
信州の「言」の字は往復で横に線を6回書くことでプログラムの量を減らしています。
#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);
「州」の字は点と縦線を引くプログラムを3回繰り返して簡単にしています。
#define Tate
OnFwd(OUT_C);Wait(10);Off(OUT_C);Down_Pen;Up_Pen;OnFwd(OUT_A);OnRev(OUT_C);Wait(1);Off(OUT_A
C);Down_Pen;OnFwd(OUT_C);Wait(80);Off(OUT_C);Up_Pen;OnFwd(OUT_A);Wait(4);Off(OUT_A);OnRev(OU
T_C);Wait(60);Off(OUT_A);
**全体のプログラム [#s3e95140]
#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 Tate
OnFwd(OUT_C);Wait(10);Off(OUT_C);Down_Pen;Up_Pen;OnFwd(OUT_A);OnRev(OUT_C);Wait(1);Off(OUT_A
C);Down_Pen;OnFwd(OUT_C);Wait(80);Off(OUT_C);Up_Pen;OnFwd(OUT_A);Wait(4);Off(OUT_A);OnRev(OU
T_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);
}
**ロッボトで書いた字がこちら [#c4ba611f]
#ref(./IMG_5352.JPG,25%)
*まとめ [#p9b88766]
同じ動きを繰り返すことが多かったので比較的短いプログラムになったとは思いますが,歯車をあまり組み込まなかったので動きが速くなってしまい安定して書けることが少なかったと思います。一番書けたと思われる字もギリギリ読めるくらいになってしまったので少し残念でした。
今後はこの反省を生かし,納得のいくロボットを作りたいです。