**はじめに [#x3fac1da] 今回の課題は自分の新生活を表す漢字一文字を書く書道ロボットを作ることである。 与えられた条件は ・150mm四方の正方形の中に納める ・七画以上の文字を選ぶ ・新生活を表す漢字一文字を選ぶ 今回は「幸」という字を書くロボットを作った。 **ロボットの説明 [#s7342443] *ロボットの概要 [#ka19766c] 今回のロボットはモーターを3つ使い、それぞれのモーターにx軸(前後)y軸(左右)z軸(ペンの上下動)の役割を与えた。こうすることによって、プログラミングを簡略化しバッテリーの消費による誤差の影響を受けにくくすることに成功した。 *台車(前後の動き) [#gd551a47] モーターを1つ使い自動車(FR)を参考にして、後輪をモーターで動かし前輪はそれに合わせて動くように取り付けた。モーター側のギアを小さく、車輪側のギアを大きくすることによって速度調整がしやすいようにした。 *アーム(左右の動き) [#a8d8fa33] レゴブロックを使って壁を作り、その間に歯をつけた細いレゴブロックをセットして出し抜きを可能にしました。ここで苦労したのは出し抜きする際に細いブロックがぶれないようにしたこととスムーズに動かすことです。下側は中歯車2つとその間に小歯車を挟んで、中歯車の回転をそろえつつ2つの歯車で支えることにより安定感を出しました。上側は黒く長いピンを壁のブロックに刺し、細いブロックを上から押さえつつスムーズに動かすことに成功しました。このアームの部分の調整が一番苦労しました。 *ペンの上下動 [#i98aeb9a] ペンの上下動はモーターを使ってペンを円運動させることによって行いました。工夫した点はアームの可動部分にモーターを付けてモーターをアームと連動して動かすようにしたことと、大歯車を使って動きの調整をしやすくしたことです。 **プログラミングの説明 [#u38f4bac] *文字の書き順 [#t303a3db] 書きやすいように実際の書き順とは異なる書き順で書いた。縦の線は上から下へ、横の線は左から右へ統一して書きペンのずれを少なくするようにした。 *プログラミング [#f879b6c1] #defineで動きを少しずつ定義することにより動きのずれを少なくなるようにした。ロボ本体の制作に力を入れた分プログラミングは比較的簡単にできた。 #define down OnFwd(OUT_C);Wait(10);Off(OUT_C);Wait(50); #define up OnRev(OUT_C);Wait(10);Off(OUT_C);Wait(50); #define mae OnRev(OUT_A);Wait(40);Off(OUT_A); #define usiro OnFwd(OUT_A);Wait(40);Off(OUT_A); #define hiku OnFwd(OUT_B);Wait(5);Off(OUT_B); #define osu OnRev(OUT_B);Wait(5);Off(OUT_B); task main() { down; mae; mae; up; mae; down; mae; mae; mae; mae; up; usiro; usiro; usiro; osu; osu; down; hiku; hiku; hiku; hiku; up; usiro; osu; osu; osu; osu; down; hiku; hiku; hiku; hiku; up; usiro; osu; osu; osu; osu; osu; down; hiku; hiku; hiku; hiku; hiku; hiku; up; osu; down; mae; up; osu; osu; usiro; down; mae; up; usiro; usiro; down; hiku; hiku; up; } **まとめ [#x128a6ad] *書いた文字 [#j8a95c3c] ペンの上下動を円運動で行ったため、線の右側が長くなってしまったが、なんとか「幸」と読むことが出来る作品が書けた。 *感想と考察 [#a0042fa6]