課題1の目次 #contents *課題 [#if4d069e] 今回は書道ロボットを作成するというかだいだった。 自分の漢字で7画以上の文字を書くという課題だったので「相」という漢字を選んだ。 *ロボットについて [#qedc3bab] 最初は、初めに作ったロボットにペンを上下させるモーターを取り付けただけだったが、そのやり方では字を綺麗に書くのが大変だったので次に、前後移動するロボットにアームを付けたロボットを作ろうとした。 しかしアームを取り付けるのが思っていたよりも難しく、結局前に作ったロボットを作り直し、工夫して文字を書くことにした。 #ref(image.jpg) *プログラム [#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] 字を書くときに本体後ろにペンがついているため曲がる時にペンが大きくずれてしまうので、そのずれを修正するために少し下がってからペンを下げる工夫をすることでずれをできるだけ小さくした。 修正する時には何度も動かしてその動きを見てプログラムを少しずつ修正していった。 また、ペンを前にして字を書こうとするとペン先がかすれてきてうまく書けなくなるので、ペンが後ろになるようにプログラムを書くことで字がかすれることなく書くことができた。