- 追加された行はこの色です。
- 削除された行はこの色です。
目次
#contents
*課題 [#n4119066]
A4の紙に松本の大学生活を表す漢字一文字を書く。
課題1[[2017a/Mission1]]
[[課題1>2017a/Mission1]]
**漢字について [#vc80521a]
大学に入ってからジャグリングと軟式テニスを始めたので、「球」にした。
*ロボットの説明 [#hf427889]
**ロボット全体 [#i4e7d039]
今回のロボットは、ペンを前後左右に動かすことで字を書く駆動である。
モーターは3つ使用しており、
ロボット本体の前後、ペンの左右、ペンの上下に動かしている。
初めはロボット本体を動かし字を書くロボットとプログラムを作っていたが、
プログラムが難しく途中でこのロボットに変更した。
また、持ち運びがしやすいように簡単に分解できるようにした。
&ref(2017a/Member/rock/Mission1/DSC_0241.JPG,50%);
&ref(2017a/Member/rock/Mission1/pic_ro1.jpg,50%);
**前後の動き [#xfbeb771]
ロボットを前後させるためのモーターを本体の内側にいれ、外側から見えないようにした。
また、タイヤを3つ使いロボットを安定させている。
#ref(./pic_ro5.jpg,50%)
**左右の動き [#fd359bcf]
ペンを左右させるためのレールに摩擦が少なくなるように丸い部品を使った。
また、固定されていない棒を使い、レールの振動を軽減させることと、スライドし過ぎてレールから外れないようにした。
&ref(2017a/Member/rock/Mission1/pic_ro6.jpg,50%);
&ref(2017a/Member/rock/Mission1/pic_ro2.jpg,50%);
**上下の動き [#n0b61248]
モーターを回転しペンを上げる。しかし、ペンを下げるのはモーターを止めることでやっているため、モーターには良くない仕様になってしまった。
#ref(./pic_ro7.jpg,50%)
*文字について [#hbcbdbe2]
今回、正しい書き順ではなく、プログラムが簡単になるように書き順を変更した。
#ref(./pic_ro8.jpg,50%)
*プログラムの説明 [#he8f61c0]
点の線と横線をサブルーチンでプログラムした。ペンを下したあとの振動がおさまるのをまつため、止まっている時間をつくった。また、ペンでレールでスライドさせたあと左右によりすぎるとスライドできなくなるので、再び動かせるように元の位置に戻すプログラムを追加した。
sub yoko()
{
Off(OUT_B);
Wait(100);
OnRev(OUT_A);
Wait(20);
Off(OUT_A);
OnRev(OUT_B); //球の横線を書く
}
sub ten()
{
Off(OUT_B);
Wait(150);
OnRev(OUT_C);
Wait(13);
Off(OUT_C);
OnRev(OUT_B); //求の点の部分を書く
}
task main()
{
yoko(); //1画目
OnFwd(OUT_A);
Wait(25);
Off(OUT_A);
OnFwd(OUT_C); //移動
Wait(17);
Off(OUT_C);
yoko(); //2画目
OnFwd(OUT_A);
Off(OUT_A);
OnFwd(OUT_C); //移動
Wait(17);
Off(OUT_C);
yoko(); //3画目
OnFwd(OUT_A);
Wait(15);
Off(OUT_A);
Off(OUT_B); //4画目
Wait(100);
OnRev(OUT_C);
Wait(33);
Off(OUT_C);
Wait(50);
OnRev(OUT_AB);
Wait(25);
Off(OUT_AB); //5画目
Wait(100);
OnFwd(OUT_C);
Wait(45);
Off(OUT_C);
OnRev(OUT_C); //移動
Wait(15);
Off(OUT_C);
Wait(100);
OnFwd(OUT_A);
Wait(9);
Off(OUT_A);
Wait(100);
yoko(); //6画目
OnFwd(OUT_C); //移動
Wait(15);
Off(OUT_C);
OnRev(OUT_B);
ten(); //7画目
OnRev(OUT_C); //移動
Wait(8);
Off(OUT_C);
Wait(20);
ten(); //8画目
OnRev(OUT_C); //移動
Wait(8);
Off(OUT_C);
Wait(20);
ten(); //9画目
OnFwd(OUT_A); //移動
Wait(20);
Off(OUT_A);
OnFwd(OUT_C);
Wait(20);
Off(OUT_C);
ten(); //10画目
OnRev(OUT_C); //移動
Wait(10);
Off(OUT_C);
Wait(20);
ten(); //11画目
Off(OUT_B);
}
*まとめ [#zf6ed14a]
**書けた漢字 [#k835a0cd]
「求」の点が斜めではなく、縦にした。
#ref(./pic_ro9.jpg,50%)
**感想 [#sa72611c]
私はロボットを組み立てるのがうまくなく、相方にたくさん助けてもらいロボットを作った。
また、プログラムが長々となってしまったので、今度はサブルーチンを使うなどで、できるだけ短くかきたい。漢字を書くとき、突き抜けてはいけない線が突き抜けると違う漢字になっていしまうところも難しく、毎回漢字を書くと変わってしまい何度もプログラムを変更するのが大変だった。しかし、思った通りに書けたときは何度でもうれしかった。このロボットでは斜めの線、曲線を書くことが難しく断念してしまった。次回はプログラムをきれいに書きたい。