*はじめに [#r748ebd3]
課題は書道ロボットの作成である。
詳しい内容は、各自の名前の中の一文字をA4用紙の中に書きなさい。
ただし7画以上の文字を選ぶこと。もし7画以上の文字がない場合には合計7画以上になるように複数の文字を書きなさい。
マクロや関数などを使い、main関数はなるべく単純になるようにプログラムを作ること。
今回は「棚」の文字を書いた。
*ロボットの説明 [#f5c5e614]
#ref(2015a/Member/youkosobarbonshophe/Mission1/IMG_2223.JPG,30%)
前後にのみ移動する本体に、左右に移動するアームをつけ、そのアームの上にペンを上下させるパーツがある構造である。
*ロボットの動作 [#w31d24da]
ロボットに求める動きは
・本体の前後進
・アームの伸び縮み
・ペンの上げ下げ
の3つが主となる。
*ペンの動作 [#edb81042]
ペンの上げ下げは、写真のようにモーターを進めるとペンが下がり、戻すとペンが上がるようにした。
#define pen_down OnFwd(OUT_C);Wait(5);Off(OUT_C);//ペンを下げる
#define pen_up OnRev(OUT_C);Wait(7);Off(OUT_C);//ペンを上げる
#ref(2015a/Member/youkosobarbonshophe/Mission1/IMG_2220.JPG,30%)
*字を書く [#g46172ae]
**書く順番 [#j4bd1ad1]
「棚」をかくために、
� 嵬據廚鮟颪�→�◆峽遏廚鮟颪�→��「月」を書く
2回目の「月」は「repeat」を使った
**プログラム [#gcdb9e5f]
始めに時間を定義しますが、横棒はすべて0.2秒、縦棒はすべて0.8秒とした。
#define base_time 20
#define straight_time 80
・「十」を書く
task main()
{
pen_down;
OnRev(OUT_B);
Wait(base_time);
Off(OUT_B);
pen_up;
OnFwd(OUT_B);
Wait(10);
OnRev(OUT_A);
Wait(20);
Off(OUT_A);
pen_down;
OnFwd(OUT_A);
Wait(straight_time);
Off(OUT_A);
pen_up;
OnRev(OUT_A);
Wait(60);
Off(OUT_A);
・「八」を書く
pen_down;
OnFwd(OUT_AB);
Wait(10);
Off(OUT_AB);
pen_up;
OnRev(OUT_AB);
Wait(10);
Off(OUT_AB);
pen_down;
Onfwd(OUT_A);
OnREv(OUT_B);
Wait(10);
Off(OUT_AB);
pen_up;
OnFwd(OUT_B);
OnRev(OUT_A);
Wait(10);
Off(OUT_AB);
Onfwd(OUT_A);
Wait(50);
Off(OUT_A);
OnRev(OUT_B);
Wait(bse_time);
Off(OUT_B);
「月」を書く
repeat(2){
pen_down;
OnRev(OUT_A);
Wait(straight_time);
Off(OUT_A);
OnFwd(OUT_B);
Wait(base_time);
Off(OUT_B);
Onfwd(OUT_A);
Wait(straight_time);
Off(OUT_A);
pen_up;
OnRev(OUT_A);
Wait(40);
Off(OUT_A);
pen_down;
OnFwd(OUT_B);
Wait(base_time);
Off(OUT_B);
pen_up;
OnRev(OUT_A);
Wait(base_time);
Off(OUT_A);
pen_down;
OnRev(OUT_B);
Wait(base_time);
Off(OUT_B);
pen_up;
OnFwd(OUT_A);
Wait(60);
Off(OUT_A);
OnRev(OUT_B);
Wait(base_time);
Off(OUT_B);
}
}
#ref(2015a/Member/youkosobarbonshophe/Mission1/IMG_2209.JPG,10%)
*感想・考察 [#r1b1ae1c]
「棚」は直線が多く、2回目の「月」でrepeatをつかえたため、画数が多いわりに
以外と簡単だった。
また、ロボットをアーム式にしたことによって、直角に曲がるときや、
斜めの動きのプログラミングも簡単にすることができた。
ただ、アームによって重心が偏るため、本体の反対側に重りとなるタイヤを
つけるという不格好な見た目になってしまった。
そして、ペンの紙への押さえつけが弱かったせいか、最後のほうで字が途切れ途切れ
になってしまった。次回からはプログラミングや機能はもちろん、見た目にも
こだわっていきたい。