*書道ロボットの概観 [#gdffac07] 3つのモーターを -車体の前後左右の移動(モーターA,C) -ペンの上下(モーターB) に用いて書道ロボットを製作した。 #ref(./DSC_0003 (2).JPG,20%) ペンと車体は一体化しており車体を動かすことで文字を書くようにした。 *製作上の問題点と苦労した点 [#s210a81e] **車体とペンのずれ [#a7fae28f] 上記のようにペンと車体を一体化したため、車体を大きく動かさなければならなくなった。 そのため車体の動きや、ペンと地面との摩擦などで少しずつずれが生じてしまい 書くたびに文字が変化するという事態が起こってしまった。 **車体のサイズ [#x5fea495] ペンが車体の前についているので車体の向きを変更するたびにペンの位置がずれてしまうため プログラミングの段階で、車体の大きさを考慮しなければならなかった。 **動力の力の差 [#t80d1772] 車体を動かすモーターに力の差が生じたため、直線のつもりが左に寄っていってしまい 方向転換の際に、まっすぐ進まないことを考慮しプログラミングしなければならなかった。 *プログラム [#of0af850] **「聡」を書くプログラム [#caa0642e] #define go OnFwd(OUT_AC); #define up OnRev(OUT_B);Wait(10);Off(OUT_B); #define down OnFwd(OUT_B);Wait(10);Off(OUT_B); #define left OnFwd(OUT_C);OnRev(OUT_A); #define right OnFwd(OUT_A);OnRev(OUT_C); #define back OnRev(OUT_AC); task main() { down go Wait(45); up back Wait(40); right Wait(90);Off(OUT_AC); go Wait(15); left Wait(90);Off(OUT_AC); down go Wait(15); up back Wait(30); right Wait(90);Off(OUT_AC); go Wait(15); left Wait(90);Off(OUT_AC); down go Wait(15); up back Wait(45); right Wait(90);Off(OUT_AC); go Wait(15); left Wait(90);Off(OUT_AC); down go Wait(30);Off(OUT_AC); up go Wait(70); left Wait(95);Off(OUT_AC); back Wait(60); down back Wait(70); up go Wait(30); left Wait(90);Off(OUT_AC); go Wait(15); right Wait(90);Off(OUT_AC); down go Wait(50); up right Wait(50); go Wait(25); left Wait(20); down back Wait(25); up right Wait(90);Off(OUT_AC); go Wait(15); left Wait(90);Off(OUT_AC); down go Wait(20); up go Wait(60); right Wait(55);Off(OUT_AC); back Wait(35); down back Wait(25); up go Wait(75); right Wait(52);Off(OUT_AC); back Wait(20); down back Wait(15); up left Wait(90);Off(OUT_AC); go Wait(25); right Wait(90);Off(OUT_AC); go Wait(15); down go Wait(30); left Wait(10);Off(OUT_AC); up right Wait(10);Off(OUT_AC); back Wait(20); left Wait(90);Off(OUT_AC); go Wait(15); right Wait(90);Off(OUT_AC); down go Wait(15);Off(OUT_AC); up left Wait(90);Off(OUT_AC); go Wait(25); right Wait(90);Off(OUT_AC); down back Wait(15); up back Wait(10); down back Wait(15); up left Wait(90);Off(OUT_AC); go Wait(25); right Wait(90);Off(OUT_AC); down go Wait(25); Off(OUT_AC); } *書道ロボットによる作品 [#n88cb7d6] #ref(./DSC_0005 (3).JPG,20%)