- 追加された行はこの色です。
- 削除された行はこの色です。
課題1の目次
#contents
*課題 [#if4d069e]
今回は書道ロボットを作成するというかだいだった。
自分の漢字で7画以上の文字を書くという課題だったので「相」という漢字を選んだ。
*ロボットについて [#qedc3bab]
最初は、初めに作ったロボットにペンを上下させるモーターを取り付けただけだったが、そのやり方では字を綺麗に書くのが大変だったので次に、前後移動するロボットにアームを付けたロボットを作ろうとした。
しかしアームを取り付けるのが思っていたよりも難しく、結局前に作ったロボットを作り直し、工夫して文字を書くことにした。
*プログラム [#l8f1c31e]
#define turn_left OnFwd(OUT_A); OnRev(OUT_C); Wait(110);
#define turn_right OnRev(OUT_A); OnFwd(OUT_C); Wait(110);
#define up OnFwd(OUT_B); Wait(5); Off(OUT_B);
#define down OnRev(OUT_B); Wait(5); Off(OUT_B);
task main()
{
OnRev(OUT_AC);
Wait(70); //1画目
up;
OnFwd(OUT_AC);
Wait(110);
turn_right;
OnRev(OUT_AC);
Wait(50);
down;
OnRev(OUT_AC);
Wait(200); //2画目
up;
OnFwd(OUT_AC);
Wait(230);
OnRev(OUT_A);
OnFwd(OUT_C);
Wait(50);
OnRev(OUT_AC);
Wait(100);
down;
OnRev(OUT_AC);
Wait(50); //3画目
up;
OnFwd(OUT_AC);
Wait(170);
turn_left;
OnRev(OUT_AC);
Wait(70);
down;
OnRev(OUT_AC);
Wait(50); //4画目
up;
OnRev(OUT_A);
OnFwd(OUT_C);
Wait(50);
OnFwd(OUT_AC);
Wait(50);
turn_left;
OnFwd(OUT_AC);
Wait(50);
turn_right;
down;
OnRev(OUT_AC);
Wait(180); //5画目
up;
OnFwd(OUT_AC);
Wait(300);
turn_left;
OnRev(OUT_AC);
Wait(80);
down;
OnRev(OUT_AC);
Wait(50); //6-1画目
up;
OnFwd(OUT_AC);
Wait(100);
turn_right;
OnRev(OUT_AC);
Wait(100);
down;
OnRev(OUT_AC);
Wait(180); //6-2画目
up;
OnFwd(OUT_AC);
Wait(220);
turn_left;
OeRev(OUT_AC);
Wait(10);
down;
OnRev(OUT_AC);
Wait(50); //7画目
up;
turn_right;
OnRev(OUT_AC);
Wait(30);
turn_left;
OnFwd(OUT_AC);
Wait(20);
down;
OnRev(OUT_AC);
Wait(50); //8画目
up;
turn_right;
OnRev(OUT_AC);
Wait(40);
turn_left;
OnFwd(OUT_AC);
Wait(30);
down;
OnRev(OUT_AC);
Wait(50); //9画目
Off(OUT_AC);
*工夫した点 [#rf9b409f]
字を書くときに本体後ろにペンがついているため曲がる時にペンが大きくずれてしまうので、そのずれを修正するために少し下がってからペンを下げる工夫をすることでずれをできるだけ小さくした。
修正する時には何度も動かしてその動きを見てプログラムを少しずつ修正していった。
また、ペンを前にして字を書こうとするとペン先がかすれてきてうまく書けなくなるので、ペンが後ろになるようにプログラムを書くことで字がかすれることなく書くことができた。